@cryptorubic/sdk
Advanced tools
Comparing version 0.0.15 to 0.0.16
{ | ||
"name": "@cryptorubic/sdk", | ||
"version": "0.0.15", | ||
"version": "0.0.16", | ||
"dependencies": { | ||
@@ -5,0 +5,0 @@ "tslib": "^2.3.0" |
@@ -1,5 +0,6 @@ | ||
import { CrossChainTradeType, FeeInfo, OnChainTradeType, PriceTokenAmount, SwapType } from "@cryptorubic/core"; | ||
import { ChainType, CrossChainTradeType, FeeInfo, OnChainTradeType, PriceTokenAmount, SwapType } from "@cryptorubic/core"; | ||
import BigNumber from 'bignumber.js'; | ||
import { CreateTradeParams } from "./models/create-trade-params"; | ||
import { RubicStep } from "./models/rubic-step"; | ||
import { AdditionalInfo } from "./models/additional-info"; | ||
export declare class Trade { | ||
@@ -11,6 +12,3 @@ readonly id: string; | ||
readonly routePath: RubicStep[]; | ||
/** | ||
* Address to give allowance to for EVM like blockchains | ||
*/ | ||
readonly spenderAddress?: string; | ||
readonly spenderAddress: string | null; | ||
readonly warnings: Error[]; | ||
@@ -23,2 +21,5 @@ readonly fromToken: PriceTokenAmount; | ||
readonly priceImpact: number | null; | ||
readonly additionalInfo: AdditionalInfo | null; | ||
get chainType(): ChainType; | ||
get tradeType(): SwapType; | ||
private get walletAddress(); | ||
@@ -25,0 +26,0 @@ private get web3Adapter(); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Trade = void 0; | ||
const core_1 = require("@cryptorubic/core"); | ||
const adapter_utils_1 = require("./utils/adapter-utils"); | ||
const approve_manager_1 = require("./utils/approve-manager"); | ||
class Trade { | ||
get chainType() { | ||
const chain = this.fromToken.blockchain; | ||
return core_1.BlockchainsInfo.getChainType(chain); | ||
} | ||
get tradeType() { | ||
return this.fromToken.blockchain === this.toToken.blockchain ? 'on-chain' : 'cross-chain'; | ||
} | ||
get walletAddress() { | ||
@@ -14,31 +22,37 @@ return this.web3Adapter.walletAddress; | ||
} | ||
constructor(params) { | ||
this.promotions = []; | ||
this.id = params.id; | ||
this.swapType = params.swapType; | ||
this.providerType = params.providerType; | ||
this.feeInfo = params.feeInfo; | ||
this.fromToken = params.fromToken; | ||
this.toToken = params.toToken; | ||
// @TODO FIX | ||
this.routePath = []; | ||
this.warnings = []; | ||
this.spenderAddress = params?.spenderAddress; | ||
this.toTokenAmountMin = params.toTokenAmountMin; | ||
this.slippage = params.slippage; | ||
this.priceImpact = params.priceImpact; | ||
constructor(id, swapType, providerType, feeInfo, routePath, spenderAddress, warnings, fromToken, toToken, toTokenAmountMin, promotions = [], slippage, priceImpact, additionalInfo) { | ||
this.id = id; | ||
this.swapType = swapType; | ||
this.providerType = providerType; | ||
this.feeInfo = feeInfo; | ||
this.routePath = routePath; | ||
this.spenderAddress = spenderAddress; | ||
this.warnings = warnings; | ||
this.fromToken = fromToken; | ||
this.toToken = toToken; | ||
this.toTokenAmountMin = toTokenAmountMin; | ||
this.promotions = promotions; | ||
this.slippage = slippage; | ||
this.priceImpact = priceImpact; | ||
this.additionalInfo = additionalInfo; | ||
} | ||
async needApprove() { | ||
return approve_manager_1.ApproveManager.needApprove({ | ||
spenderAddress: this.spenderAddress, | ||
walletAddress: this.walletAddress, | ||
fromToken: this.fromToken | ||
}); | ||
if (this.spenderAddress) { | ||
return approve_manager_1.ApproveManager.needApprove({ | ||
spenderAddress: this.spenderAddress, | ||
walletAddress: this.walletAddress, | ||
fromToken: this.fromToken | ||
}); | ||
} | ||
return false; | ||
} | ||
async approve(checkNeedApprove = true, amount = 'infinity') { | ||
return approve_manager_1.ApproveManager.approve(checkNeedApprove, amount, { | ||
spenderAddress: this.spenderAddress, | ||
walletAddress: this.walletAddress, | ||
fromToken: this.fromToken | ||
}); | ||
if (this.spenderAddress) { | ||
return approve_manager_1.ApproveManager.approve(checkNeedApprove, amount, { | ||
spenderAddress: this.spenderAddress, | ||
walletAddress: this.walletAddress, | ||
fromToken: this.fromToken | ||
}); | ||
} | ||
throw new Error('No need to approve'); | ||
} | ||
@@ -65,5 +79,6 @@ // /** | ||
static createInstance(params) { | ||
return new this(params); | ||
const { id, swapType, providerType, feeInfo, fromToken, toToken, spenderAddress, toTokenAmountMin, slippage, priceImpact } = params; | ||
return new this(id, swapType, providerType, feeInfo, [], spenderAddress || null, [], fromToken, toToken, toTokenAmountMin, [], slippage, priceImpact, null); | ||
} | ||
} | ||
exports.Trade = Trade; |
42801
46
991