Socket
Socket
Sign inDemoInstall

@orca-so/sdk

Package Overview
Dependencies
Maintainers
5
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@orca-so/sdk - npm Package Compare versions

Comparing version 1.2.25 to 1.2.26

29

dist/model/quote/constant-product-quote.js

@@ -19,2 +19,14 @@ "use strict";

*/
function calculateFee(inputTradeAmount, feeNumerator, feeDenominator) {
if (feeNumerator.eq(public_1.ZERO) || inputTradeAmount.eq(public_1.ZERO)) {
return public_1.ZERO;
}
const fee = inputTradeAmount.mul(feeNumerator).div(feeDenominator);
// minimum fee of one token
return fee.eq(public_1.ZERO) ? public_1.ONE : fee;
}
function getInputAmountLessFees(inputTradeAmount, params) {
const fees = getLPFees(inputTradeAmount, params);
return fees.gt(inputTradeAmount) ? new spl_token_1.u64(0) : inputTradeAmount.sub(fees);
}
function getRate(inputTradeAmountU64, params) {

@@ -35,2 +47,7 @@ if (inputTradeAmountU64.eq(public_1.ZERO)) {

const outputCountU64 = getExpectedOutputAmount(inputTradeAmount, params);
if (noSlippageOutputCountU64.isZero()) {
// The minimum fee of one token makes inputTradeLessFees zero when the input is minimal,
// and the output is also zero.
return new decimal_js_1.default(0);
}
const noSlippageOutputCount = public_1.DecimalUtil.fromU64(noSlippageOutputCountU64, params.outputToken.scale);

@@ -43,12 +60,8 @@ const outputCount = public_1.DecimalUtil.fromU64(outputCountU64, params.outputToken.scale);

const { feeStructure } = params;
const tradingFee = inputTradeAmount
.mul(feeStructure.traderFee.numerator)
.div(feeStructure.traderFee.denominator);
const ownerFee = inputTradeAmount
.mul(feeStructure.ownerFee.numerator)
.div(feeStructure.ownerFee.denominator);
const tradingFee = calculateFee(inputTradeAmount, feeStructure.traderFee.numerator, feeStructure.traderFee.denominator);
const ownerFee = calculateFee(inputTradeAmount, feeStructure.ownerFee.numerator, feeStructure.ownerFee.denominator);
return new spl_token_1.u64(tradingFee.add(ownerFee).toString());
}
function getExpectedOutputAmount(inputTradeAmount, params) {
const inputTradeLessFees = inputTradeAmount.sub(getLPFees(inputTradeAmount, params));
const inputTradeLessFees = getInputAmountLessFees(inputTradeAmount, params);
return getOutputAmount(inputTradeLessFees, params);

@@ -60,3 +73,3 @@ }

}
const inputTradeLessFees = inputTradeAmount.sub(getLPFees(inputTradeAmount, params));
const inputTradeLessFees = getInputAmountLessFees(inputTradeAmount, params);
return inputTradeLessFees.mul(params.outputTokenCount).div(params.inputTokenCount);

@@ -63,0 +76,0 @@ }

@@ -12,4 +12,13 @@ "use strict";

const tokens_1 = require("../../constants/tokens");
function calculateFee(inputTradeAmount, feeNumerator, feeDenominator) {
if (feeNumerator.eq(public_1.ZERO) || inputTradeAmount.eq(public_1.ZERO)) {
return public_1.ZERO;
}
const fee = inputTradeAmount.mul(feeNumerator).div(feeDenominator);
// minimum fee of one token
return fee.eq(public_1.ZERO) ? public_1.ONE : fee;
}
function getInputAmountLessFees(inputTradeAmount, params) {
return inputTradeAmount.sub(getLPFees(inputTradeAmount, params));
const fees = getLPFees(inputTradeAmount, params);
return fees.gt(inputTradeAmount) ? new spl_token_1.u64(0) : inputTradeAmount.sub(fees);
}

@@ -57,2 +66,7 @@ function getOutputAmountWithNoSlippage(inputTradeAmountLessFees, params) {

const outputCountU64 = getExpectedOutputAmount(inputTradeAmount, params);
if (noSlippageOutputCountU64.isZero()) {
// The minimum fee of one token makes inputTradeLessFees zero when the input is minimal,
// and the output is also zero.
return new decimal_js_1.default(0);
}
const noSlippageOutputCount = public_1.DecimalUtil.fromU64(noSlippageOutputCountU64, params.outputToken.scale);

@@ -65,12 +79,4 @@ const outputCount = public_1.DecimalUtil.fromU64(outputCountU64, params.outputToken.scale);

const { feeStructure } = params;
const tradingFee = feeStructure.traderFee.numerator === public_1.ZERO
? public_1.ZERO
: inputTradeAmount
.mul(feeStructure.traderFee.numerator)
.div(feeStructure.traderFee.denominator);
const ownerFee = feeStructure.ownerFee.numerator === public_1.ZERO
? public_1.ZERO
: inputTradeAmount
.mul(feeStructure.ownerFee.numerator)
.div(feeStructure.ownerFee.denominator);
const tradingFee = calculateFee(inputTradeAmount, feeStructure.traderFee.numerator, feeStructure.traderFee.denominator);
const ownerFee = calculateFee(inputTradeAmount, feeStructure.ownerFee.numerator, feeStructure.ownerFee.denominator);
return new spl_token_1.u64(tradingFee.add(ownerFee).toString());

@@ -77,0 +83,0 @@ }

{
"name": "@orca-so/sdk",
"version": "1.2.25",
"version": "1.2.26",
"description": "Typescript SDK for the Orca protocol.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -0,7 +1,19 @@

⚠️ **WARNING: DEPRECATED TYPESCRIPT SDK** ⚠️
This Typescript SDK is for the **legacy pools** which are **deprecated**. We highly recommend you to use the **Whirlpools SDK** for the new and improved pools. You can find it here:
🌊 [Whirlpools SDK on npmjs](https://www.npmjs.com/package/@orca-so/whirlpools-sdk) 🌊
Please update your implementations to avoid any issues or disruptions in the future.
# Orca Typescript SDK
The Orca SDK contains a set of simple to use APIs to allow developers to integrate with the Orca exchange platform.
The Orca SDK contains a set of simple to use APIs to allow developers to integrate with the Orca platform.
Learn more Orca [here](https://docs.orca.so).
### Orca Token Swap V2
- The [Orca Token Swap V2 program](https://solscan.io/account/9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP) uses the following commit hash of the SPL Token Swap program: [3613cea3](https://github.com/solana-labs/solana-program-library/tree/3613cea3cabbb5f7e4445d6203b7292d413732da/token-swap)
### Trading Orca Liquidity Pools

@@ -160,2 +172,3 @@

The example code above can be run on devnet by updating the import statement:
```typescript

@@ -162,0 +175,0 @@ import { getOrca, OrcaFarmConfig, OrcaPoolConfig, Network } from "@orca-so/sdk";

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc