@orca-so/sdk
Advanced tools
Comparing version 1.1.14 to 1.2.0
import { Connection } from "@solana/web3.js"; | ||
import { OrcaPoolConfig, OrcaPool, OrcaFarmConfig, OrcaFarm } from ".."; | ||
import { OrcaPoolConfig, OrcaPool, OrcaFarmConfig, OrcaFarm, Network } from ".."; | ||
export declare class OrcaFactory { | ||
getPool(connection: Connection, config: OrcaPoolConfig): OrcaPool; | ||
getFarm(connection: Connection, config: OrcaFarmConfig): OrcaFarm; | ||
getPool(connection: Connection, network: Network, config: OrcaPoolConfig): OrcaPool; | ||
getFarm(connection: Connection, network: Network, config: OrcaFarmConfig): OrcaFarm; | ||
} |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.OrcaFactory = void 0; | ||
const __1 = require(".."); | ||
const constants_1 = require("../constants"); | ||
const devnet_1 = require("../constants/devnet"); | ||
const devnet_2 = require("../public/devnet"); | ||
const orca_farm_1 = require("./orca/farm/orca-farm"); | ||
const orca_pool_1 = require("./orca/pool/orca-pool"); | ||
class OrcaFactory { | ||
getPool(connection, config) { | ||
return new orca_pool_1.OrcaPoolImpl(connection, constants_1.orcaPoolConfigs[config]); | ||
getPool(connection, network, config) { | ||
if (network === __1.Network.DEVNET) { | ||
const devnetConfig = (0, devnet_2.getDevnetPool)(config); | ||
return new orca_pool_1.OrcaPoolImpl(connection, network, devnet_1.orcaDevnetPoolConfigs[devnetConfig]); | ||
} | ||
return new orca_pool_1.OrcaPoolImpl(connection, network, constants_1.orcaPoolConfigs[config]); | ||
} | ||
getFarm(connection, config) { | ||
getFarm(connection, network, config) { | ||
if (network === __1.Network.DEVNET) { | ||
const devnetConfig = (0, devnet_2.getDevnetFarm)(config); | ||
return new orca_farm_1.OrcaFarmImpl(connection, devnet_1.orcaDevnetFarmConfigs[devnetConfig]); | ||
} | ||
return new orca_farm_1.OrcaFarmImpl(connection, constants_1.orcaFarmConfigs[config]); | ||
@@ -13,0 +24,0 @@ } |
import { Connection } from "@solana/web3.js"; | ||
import { Orca, OrcaFarm, OrcaPool, OrcaPoolConfig, OrcaFarmConfig } from "../../public"; | ||
import { Orca, OrcaFarm, OrcaPool, OrcaPoolConfig, OrcaFarmConfig, Network } from "../../public"; | ||
export declare class OrcaImpl implements Orca { | ||
private connection; | ||
private network; | ||
private factory; | ||
constructor(connection: Connection); | ||
constructor(connection: Connection, network: Network); | ||
getPool(pool: OrcaPoolConfig): OrcaPool; | ||
getFarm(farm: OrcaFarmConfig): OrcaFarm; | ||
} |
@@ -6,13 +6,14 @@ "use strict"; | ||
class OrcaImpl { | ||
constructor(connection) { | ||
constructor(connection, network) { | ||
this.connection = connection; | ||
this.network = network; | ||
this.factory = new orca_factory_1.OrcaFactory(); | ||
} | ||
getPool(pool) { | ||
return this.factory.getPool(this.connection, pool); | ||
return this.factory.getPool(this.connection, this.network, pool); | ||
} | ||
getFarm(farm) { | ||
return this.factory.getFarm(this.connection, farm); | ||
return this.factory.getFarm(this.connection, this.network, farm); | ||
} | ||
} | ||
exports.OrcaImpl = OrcaImpl; |
import { Connection, PublicKey, Keypair } from "@solana/web3.js"; | ||
import Decimal from "decimal.js"; | ||
import { OrcaU64, OrcaPool, OrcaToken, OrcaPoolToken, Quote, TransactionPayload, DepositQuote, WithdrawQuote } from "../../../public"; | ||
import { OrcaU64, OrcaPool, OrcaToken, OrcaPoolToken, Quote, TransactionPayload, DepositQuote, WithdrawQuote, Network } from "../../../public"; | ||
import { OrcaPoolParams } from "./pool-types"; | ||
@@ -8,3 +8,4 @@ export declare class OrcaPoolImpl implements OrcaPool { | ||
private poolParams; | ||
constructor(connection: Connection, config: OrcaPoolParams); | ||
private orcaTokenSwapId; | ||
constructor(connection: Connection, network: Network, config: OrcaPoolParams); | ||
getTokenA(): OrcaPoolToken; | ||
@@ -11,0 +12,0 @@ getTokenB(): OrcaPoolToken; |
@@ -31,5 +31,7 @@ "use strict"; | ||
class OrcaPoolImpl { | ||
constructor(connection, config) { | ||
constructor(connection, network, config) { | ||
this.connection = connection; | ||
this.poolParams = config; | ||
this.orcaTokenSwapId = | ||
network === public_1.Network.MAINNET ? public_1.ORCA_TOKEN_SWAP_ID : public_1.ORCA_TOKEN_SWAP_ID_DEVNET; | ||
} | ||
@@ -99,3 +101,3 @@ getTokenA() { | ||
const _c = (0, pool_instructions_1.createApprovalInstruction)(ownerAddress, amountInU64, inputPoolTokenUserAddress), { userTransferAuthority } = _c, approvalInstruction = __rest(_c, ["userTransferAuthority"]); | ||
const swapInstruction = yield (0, pool_instructions_1.createSwapInstruction)(this.poolParams, _owner, inputPoolToken, inputPoolTokenUserAddress, outputPoolToken, outputPoolTokenUserAddress, amountInU64, minimumAmountOutU64, userTransferAuthority.publicKey); | ||
const swapInstruction = yield (0, pool_instructions_1.createSwapInstruction)(this.poolParams, _owner, inputPoolToken, inputPoolTokenUserAddress, outputPoolToken, outputPoolTokenUserAddress, amountInU64, minimumAmountOutU64, userTransferAuthority.publicKey, this.orcaTokenSwapId); | ||
return yield new public_1.TransactionBuilder(this.connection, ownerAddress, _owner) | ||
@@ -165,3 +167,3 @@ .addInstruction(resolveInputAddrInstructions) | ||
// Create the deposit instruction | ||
const depositInstruction = yield (0, pool_instructions_1.createDepositInstruction)(this.poolParams, userTransferAuthority.publicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, minPoolTokenAmountOut_U64, maxTokenAIn_U64, maxTokenBIn_U64, tokenA.addr, tokenB.addr, _owner); | ||
const depositInstruction = yield (0, pool_instructions_1.createDepositInstruction)(this.poolParams, userTransferAuthority.publicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, minPoolTokenAmountOut_U64, maxTokenAIn_U64, maxTokenBIn_U64, tokenA.addr, tokenB.addr, this.orcaTokenSwapId, _owner); | ||
return yield new public_1.TransactionBuilder(this.connection, ownerAddress, _owner) | ||
@@ -246,3 +248,3 @@ .addInstruction(resolveTokenAInstrucitons) | ||
// Create the withdraw instruction | ||
const withdrawInstruction = yield (0, pool_instructions_1.createWithdrawInstruction)(this.poolParams, userTransferAuthority.publicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, poolTokenAmountIn_U64, minTokenAOut_U64, minTokenBOut_U64, tokenA.addr, tokenB.addr, _owner); | ||
const withdrawInstruction = yield (0, pool_instructions_1.createWithdrawInstruction)(this.poolParams, userTransferAuthority.publicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, poolTokenAmountIn_U64, minTokenAOut_U64, minTokenBOut_U64, tokenA.addr, tokenB.addr, this.orcaTokenSwapId, _owner); | ||
return yield new public_1.TransactionBuilder(this.connection, ownerAddress, _owner) | ||
@@ -249,0 +251,0 @@ .addInstruction(resolveTokenAInstrucitons) |
import { Connection } from "@solana/web3.js"; | ||
import { Network } from ".."; | ||
import { Orca } from "./types"; | ||
@@ -8,2 +9,2 @@ /** | ||
*/ | ||
export declare function getOrca(connection: Connection): Orca; | ||
export declare function getOrca(connection: Connection, network?: Network): Orca; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getOrca = void 0; | ||
const __1 = require(".."); | ||
const orca_impl_1 = require("../../model/orca/orca-impl"); | ||
@@ -10,5 +11,5 @@ /** | ||
*/ | ||
function getOrca(connection) { | ||
return new orca_impl_1.OrcaImpl(connection); | ||
function getOrca(connection, network = __1.Network.MAINNET) { | ||
return new orca_impl_1.OrcaImpl(connection, network); | ||
} | ||
exports.getOrca = getOrca; |
import { PublicKey } from "@solana/web3.js"; | ||
export declare const ORCA_TOKEN_SWAP_ID: PublicKey; | ||
export declare const ORCA_TOKEN_SWAP_ID_DEVNET: PublicKey; | ||
export declare const SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID: PublicKey; | ||
export declare const ORCA_FARM_ID: PublicKey; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ORCA_FARM_ID = exports.SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID = exports.ORCA_TOKEN_SWAP_ID = void 0; | ||
exports.ORCA_FARM_ID = exports.SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID = exports.ORCA_TOKEN_SWAP_ID_DEVNET = exports.ORCA_TOKEN_SWAP_ID = void 0; | ||
const web3_js_1 = require("@solana/web3.js"); | ||
exports.ORCA_TOKEN_SWAP_ID = new web3_js_1.PublicKey("9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP"); | ||
exports.ORCA_TOKEN_SWAP_ID_DEVNET = new web3_js_1.PublicKey("3xQ8SWv2GaFXXpHZNqkXsdxq5DZciHBz6ZFoPPfbFd7U"); | ||
exports.SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID = new web3_js_1.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"); | ||
exports.ORCA_FARM_ID = new web3_js_1.PublicKey("82yxjeMsvaURa4MbZZ7WZZHfobirZYkH1zF8fmeGtyaQ"); |
@@ -7,1 +7,2 @@ export * from "./constants"; | ||
export * from "./web3"; | ||
export * from "./types"; |
@@ -19,1 +19,2 @@ "use strict"; | ||
__exportStar(require("./web3"), exports); | ||
__exportStar(require("./types"), exports); |
@@ -33,3 +33,3 @@ "use strict"; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (tokenMint !== tokens_1.solToken.mint) { | ||
if (!tokenMint.equals(tokens_1.solToken.mint)) { | ||
const derivedAddress = yield deriveAssociatedTokenAddress(owner.publicKey, tokenMint); | ||
@@ -36,0 +36,0 @@ // Check if current wallet has an ATA for this spl-token mint. If not, create one. |
@@ -10,4 +10,4 @@ import { u64 } from "@solana/spl-token"; | ||
} & Instruction; | ||
export declare const createSwapInstruction: (poolParams: OrcaPoolParams, owner: Owner, inputToken: OrcaPoolToken, inputTokenUserAddress: PublicKey, outputToken: OrcaPoolToken, outputTokenUserAddress: PublicKey, amountIn: u64, minimumAmountOut: u64, userTransferAuthority: PublicKey) => Promise<Instruction>; | ||
export declare const createDepositInstruction: (poolParams: OrcaPoolParams, userTransferAuthorityPublicKey: PublicKey, userTokenAPublicKey: PublicKey, userTokenBPublicKey: PublicKey, userPoolTokenPublicKey: PublicKey, poolTokenAmount: u64, maximumTokenA: u64, maximumTokenB: u64, tokenAPublicKey: PublicKey, tokenBPublicKey: PublicKey, owner: Owner) => Promise<Instruction>; | ||
export declare const createWithdrawInstruction: (poolParams: OrcaPoolParams, userTransferAuthorityPublicKey: PublicKey, userTokenAPublicKey: PublicKey, userTokenBPublicKey: PublicKey, userPoolTokenPublicKey: PublicKey, poolTokenAmount: u64, minimumTokenA: u64, minimumTokenB: u64, tokenAPublicKey: PublicKey, tokenBPublicKey: PublicKey, owner: Owner) => Promise<Instruction>; | ||
export declare const createSwapInstruction: (poolParams: OrcaPoolParams, owner: Owner, inputToken: OrcaPoolToken, inputTokenUserAddress: PublicKey, outputToken: OrcaPoolToken, outputTokenUserAddress: PublicKey, amountIn: u64, minimumAmountOut: u64, userTransferAuthority: PublicKey, orcaTokenSwapId: PublicKey) => Promise<Instruction>; | ||
export declare const createDepositInstruction: (poolParams: OrcaPoolParams, userTransferAuthorityPublicKey: PublicKey, userTokenAPublicKey: PublicKey, userTokenBPublicKey: PublicKey, userPoolTokenPublicKey: PublicKey, poolTokenAmount: u64, maximumTokenA: u64, maximumTokenB: u64, tokenAPublicKey: PublicKey, tokenBPublicKey: PublicKey, orcaTokenSwapId: PublicKey, owner: Owner) => Promise<Instruction>; | ||
export declare const createWithdrawInstruction: (poolParams: OrcaPoolParams, userTransferAuthorityPublicKey: PublicKey, userTokenAPublicKey: PublicKey, userTokenBPublicKey: PublicKey, userPoolTokenPublicKey: PublicKey, poolTokenAmount: u64, minimumTokenA: u64, minimumTokenB: u64, tokenAPublicKey: PublicKey, tokenBPublicKey: PublicKey, orcaTokenSwapId: PublicKey, owner: Owner) => Promise<Instruction>; |
@@ -16,3 +16,2 @@ "use strict"; | ||
const web3_js_1 = require("@solana/web3.js"); | ||
const constants_1 = require("../../constants"); | ||
const createApprovalInstruction = (ownerAddress, approveAmount, tokenUserAddress, userTransferAuthority) => { | ||
@@ -30,7 +29,7 @@ userTransferAuthority = userTransferAuthority || new web3_js_1.Keypair(); | ||
exports.createApprovalInstruction = createApprovalInstruction; | ||
const createSwapInstruction = (poolParams, owner, inputToken, inputTokenUserAddress, outputToken, outputTokenUserAddress, amountIn, minimumAmountOut, userTransferAuthority) => __awaiter(void 0, void 0, void 0, function* () { | ||
const createSwapInstruction = (poolParams, owner, inputToken, inputTokenUserAddress, outputToken, outputTokenUserAddress, amountIn, minimumAmountOut, userTransferAuthority, orcaTokenSwapId) => __awaiter(void 0, void 0, void 0, function* () { | ||
const amountInU64 = amountIn; | ||
const minimumAmountOutU64 = minimumAmountOut; | ||
const [authorityForPoolAddress] = yield web3_js_1.PublicKey.findProgramAddress([poolParams.address.toBuffer()], constants_1.ORCA_TOKEN_SWAP_ID); | ||
const swapInstruction = spl_token_swap_1.TokenSwap.swapInstruction(poolParams.address, authorityForPoolAddress, userTransferAuthority, inputTokenUserAddress, inputToken.addr, outputToken.addr, outputTokenUserAddress, poolParams.poolTokenMint, poolParams.feeAccount, null, constants_1.ORCA_TOKEN_SWAP_ID, spl_token_1.TOKEN_PROGRAM_ID, amountInU64, minimumAmountOutU64); | ||
const [authorityForPoolAddress] = yield web3_js_1.PublicKey.findProgramAddress([poolParams.address.toBuffer()], orcaTokenSwapId); | ||
const swapInstruction = spl_token_swap_1.TokenSwap.swapInstruction(poolParams.address, authorityForPoolAddress, userTransferAuthority, inputTokenUserAddress, inputToken.addr, outputToken.addr, outputTokenUserAddress, poolParams.poolTokenMint, poolParams.feeAccount, null, orcaTokenSwapId, spl_token_1.TOKEN_PROGRAM_ID, amountInU64, minimumAmountOutU64); | ||
return { | ||
@@ -43,4 +42,4 @@ instructions: [swapInstruction], | ||
exports.createSwapInstruction = createSwapInstruction; | ||
const createDepositInstruction = (poolParams, userTransferAuthorityPublicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, poolTokenAmount, maximumTokenA, maximumTokenB, tokenAPublicKey, tokenBPublicKey, owner) => __awaiter(void 0, void 0, void 0, function* () { | ||
const depositInstruction = spl_token_swap_1.TokenSwap.depositAllTokenTypesInstruction(poolParams.address, poolParams.authority, userTransferAuthorityPublicKey, userTokenAPublicKey, userTokenBPublicKey, tokenAPublicKey, tokenBPublicKey, poolParams.poolTokenMint, userPoolTokenPublicKey, constants_1.ORCA_TOKEN_SWAP_ID, spl_token_1.TOKEN_PROGRAM_ID, poolTokenAmount, maximumTokenA, maximumTokenB); | ||
const createDepositInstruction = (poolParams, userTransferAuthorityPublicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, poolTokenAmount, maximumTokenA, maximumTokenB, tokenAPublicKey, tokenBPublicKey, orcaTokenSwapId, owner) => __awaiter(void 0, void 0, void 0, function* () { | ||
const depositInstruction = spl_token_swap_1.TokenSwap.depositAllTokenTypesInstruction(poolParams.address, poolParams.authority, userTransferAuthorityPublicKey, userTokenAPublicKey, userTokenBPublicKey, tokenAPublicKey, tokenBPublicKey, poolParams.poolTokenMint, userPoolTokenPublicKey, orcaTokenSwapId, spl_token_1.TOKEN_PROGRAM_ID, poolTokenAmount, maximumTokenA, maximumTokenB); | ||
return { | ||
@@ -53,4 +52,4 @@ instructions: [depositInstruction], | ||
exports.createDepositInstruction = createDepositInstruction; | ||
const createWithdrawInstruction = (poolParams, userTransferAuthorityPublicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, poolTokenAmount, minimumTokenA, minimumTokenB, tokenAPublicKey, tokenBPublicKey, owner) => __awaiter(void 0, void 0, void 0, function* () { | ||
const withdrawInstruction = spl_token_swap_1.TokenSwap.withdrawAllTokenTypesInstruction(poolParams.address, poolParams.authority, userTransferAuthorityPublicKey, poolParams.poolTokenMint, poolParams.feeAccount, userPoolTokenPublicKey, tokenAPublicKey, tokenBPublicKey, userTokenAPublicKey, userTokenBPublicKey, constants_1.ORCA_TOKEN_SWAP_ID, spl_token_1.TOKEN_PROGRAM_ID, poolTokenAmount, minimumTokenA, minimumTokenB); | ||
const createWithdrawInstruction = (poolParams, userTransferAuthorityPublicKey, userTokenAPublicKey, userTokenBPublicKey, userPoolTokenPublicKey, poolTokenAmount, minimumTokenA, minimumTokenB, tokenAPublicKey, tokenBPublicKey, orcaTokenSwapId, owner) => __awaiter(void 0, void 0, void 0, function* () { | ||
const withdrawInstruction = spl_token_swap_1.TokenSwap.withdrawAllTokenTypesInstruction(poolParams.address, poolParams.authority, userTransferAuthorityPublicKey, poolParams.poolTokenMint, poolParams.feeAccount, userPoolTokenPublicKey, tokenAPublicKey, tokenBPublicKey, userTokenAPublicKey, userTokenBPublicKey, orcaTokenSwapId, spl_token_1.TOKEN_PROGRAM_ID, poolTokenAmount, minimumTokenA, minimumTokenB); | ||
return { | ||
@@ -57,0 +56,0 @@ instructions: [withdrawInstruction], |
{ | ||
"name": "@orca-so/sdk", | ||
"version": "1.1.14", | ||
"version": "1.2.0", | ||
"description": "Typescript SDK for the Orca protocol.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -157,2 +157,14 @@ # Orca Typescript SDK | ||
# Devnet Testing | ||
The example code above can be run on devnet by changing two lines of code like so: | ||
```typescript | ||
const connection = new Connection("https://api.devnet.solana.com", "singleGossip"); | ||
const orca = getOrca(connection, Network.DEVNET); | ||
``` | ||
One caveat to note is that there are only a few devnet pools avaialble, so if you try to access pools that are only | ||
available on mainnet, the code will throw an error. The example code uses ORCA_SOL, which exists on the devnet. | ||
# Technical Notes | ||
@@ -159,0 +171,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
390146
117
6158
196