@shapeshiftoss/swapper 5.7.0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.d.ts +2 -7
- package/dist/api.js +1 -0
- package/dist/swappercli.js +2 -1
- package/dist/swappers/cow/CowSwapper.d.ts +1 -2
- package/dist/swappers/cow/CowSwapper.js +0 -4
- package/dist/swappers/test/TestSwapper.d.ts +1 -2
- package/dist/swappers/test/TestSwapper.js +0 -4
- package/dist/swappers/thorchain/ThorchainSwapper.d.ts +1 -2
- package/dist/swappers/thorchain/ThorchainSwapper.js +0 -4
- package/dist/swappers/thorchain/types.d.ts +10 -0
- package/dist/swappers/thorchain/utils/ethereum/makeTradeTx.d.ts +23 -0
- package/dist/swappers/thorchain/utils/ethereum/makeTradeTx.js +81 -0
- package/dist/swappers/thorchain/utils/getPriceRatio/getPriceRatio.d.ts +6 -0
- package/dist/swappers/thorchain/utils/getPriceRatio/getPriceRatio.js +38 -0
- package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.js +2 -5
- package/dist/swappers/zrx/ZrxSwapper.d.ts +1 -2
- package/dist/swappers/zrx/ZrxSwapper.js +0 -4
- package/package.json +3 -3
package/dist/api.d.ts
CHANGED
|
@@ -123,8 +123,6 @@ export declare type GetMinMaxInput = {
|
|
|
123
123
|
};
|
|
124
124
|
export declare type ApprovalNeededOutput = {
|
|
125
125
|
approvalNeeded: boolean;
|
|
126
|
-
gas?: string;
|
|
127
|
-
gasPrice?: string;
|
|
128
126
|
};
|
|
129
127
|
export declare enum SwapperType {
|
|
130
128
|
Zrx = "0x",
|
|
@@ -153,7 +151,8 @@ export declare enum SwapErrorTypes {
|
|
|
153
151
|
USD_RATE_FAILED = "USD_RATE_FAILED",
|
|
154
152
|
UNSUPPORTED_CHAIN = "UNSUPPORTED_CHAIN",
|
|
155
153
|
VALIDATION_FAILED = "VALIDATION_FAILED",
|
|
156
|
-
MAKE_MEMO_FAILED = "MAKE_MEMO_FAILED"
|
|
154
|
+
MAKE_MEMO_FAILED = "MAKE_MEMO_FAILED",
|
|
155
|
+
PRICE_RATIO_FAILED = "PRICE_RATIO_FAILED"
|
|
157
156
|
}
|
|
158
157
|
export interface Swapper {
|
|
159
158
|
/** perform any necessary async initialization */
|
|
@@ -172,10 +171,6 @@ export interface Swapper {
|
|
|
172
171
|
* Get the usd rate from either the assets symbol or tokenId
|
|
173
172
|
*/
|
|
174
173
|
getUsdRate(input: Pick<Asset, 'symbol' | 'tokenId'>): Promise<string>;
|
|
175
|
-
/**
|
|
176
|
-
* Get the minimum and maximum trade value of the sellAsset and buyAsset
|
|
177
|
-
*/
|
|
178
|
-
getMinMax(input: GetMinMaxInput): Promise<MinMaxOutput>;
|
|
179
174
|
/**
|
|
180
175
|
* Execute a trade built with buildTrade by signing and broadcasting
|
|
181
176
|
*/
|
package/dist/api.js
CHANGED
|
@@ -30,4 +30,5 @@ var SwapErrorTypes;
|
|
|
30
30
|
SwapErrorTypes["UNSUPPORTED_CHAIN"] = "UNSUPPORTED_CHAIN";
|
|
31
31
|
SwapErrorTypes["VALIDATION_FAILED"] = "VALIDATION_FAILED";
|
|
32
32
|
SwapErrorTypes["MAKE_MEMO_FAILED"] = "MAKE_MEMO_FAILED";
|
|
33
|
+
SwapErrorTypes["PRICE_RATIO_FAILED"] = "PRICE_RATIO_FAILED";
|
|
33
34
|
})(SwapErrorTypes = exports.SwapErrorTypes || (exports.SwapErrorTypes = {}));
|
package/dist/swappercli.js
CHANGED
|
@@ -84,7 +84,8 @@ const main = async () => {
|
|
|
84
84
|
const web3 = new web3_1.default(web3Provider);
|
|
85
85
|
const zrxSwapperDeps = { wallet, adapterManager, web3 };
|
|
86
86
|
const thorchainSwapperDeps = {
|
|
87
|
-
midgardUrl: 'https://midgard.thorchain.info/v2'
|
|
87
|
+
midgardUrl: 'https://midgard.thorchain.info/v2',
|
|
88
|
+
adapterManager: {}
|
|
88
89
|
};
|
|
89
90
|
const manager = new SwapperManager_1.SwapperManager();
|
|
90
91
|
const zrxSwapper = new ZrxSwapper_1.ZrxSwapper(zrxSwapperDeps);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AssetId } from '@shapeshiftoss/caip';
|
|
2
2
|
import { Asset, SupportedChainIds } from '@shapeshiftoss/types';
|
|
3
|
-
import { ApprovalNeededInput, ApprovalNeededOutput, ApproveInfiniteInput, BuildTradeInput, BuyAssetBySellIdInput, ExecuteTradeInput,
|
|
3
|
+
import { ApprovalNeededInput, ApprovalNeededOutput, ApproveInfiniteInput, BuildTradeInput, BuyAssetBySellIdInput, ExecuteTradeInput, GetTradeQuoteInput, Swapper, SwapperType, Trade, TradeQuote, TradeResult, TradeTxs } from '../../api';
|
|
4
4
|
export declare class CowSwapper implements Swapper {
|
|
5
5
|
static swapperName: string;
|
|
6
6
|
initialize(): Promise<void>;
|
|
@@ -8,7 +8,6 @@ export declare class CowSwapper implements Swapper {
|
|
|
8
8
|
buildTrade(args: BuildTradeInput): Promise<Trade<SupportedChainIds>>;
|
|
9
9
|
getTradeQuote(input: GetTradeQuoteInput): Promise<TradeQuote<SupportedChainIds>>;
|
|
10
10
|
getUsdRate(input: Pick<Asset, 'symbol' | 'assetId'>): Promise<string>;
|
|
11
|
-
getMinMax(input: GetMinMaxInput): Promise<MinMaxOutput>;
|
|
12
11
|
executeTrade(args: ExecuteTradeInput<SupportedChainIds>): Promise<TradeResult>;
|
|
13
12
|
approvalNeeded(args: ApprovalNeededInput<SupportedChainIds>): Promise<ApprovalNeededOutput>;
|
|
14
13
|
approveInfinite(args: ApproveInfiniteInput<SupportedChainIds>): Promise<string>;
|
|
@@ -20,10 +20,6 @@ class CowSwapper {
|
|
|
20
20
|
console.info(input);
|
|
21
21
|
throw new Error('CowSwapper: getUsdRate unimplemented');
|
|
22
22
|
}
|
|
23
|
-
getMinMax(input) {
|
|
24
|
-
console.info(input);
|
|
25
|
-
throw new Error('CowSwapper: getMinMax unimplemented');
|
|
26
|
-
}
|
|
27
23
|
async executeTrade(args) {
|
|
28
24
|
console.info(args);
|
|
29
25
|
throw new Error('CowSwapper: executeTrade unimplemented');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AssetId } from '@shapeshiftoss/caip';
|
|
2
2
|
import { Asset, SupportedChainIds } from '@shapeshiftoss/types';
|
|
3
|
-
import { ApprovalNeededOutput, BuyAssetBySellIdInput,
|
|
3
|
+
import { ApprovalNeededOutput, BuyAssetBySellIdInput, Swapper, SwapperType, Trade, TradeQuote, TradeResult, TradeTxs } from '../../api';
|
|
4
4
|
/**
|
|
5
5
|
* Playground for testing different scenarios of multiple swappers in the manager.
|
|
6
6
|
* Meant for local testing only
|
|
@@ -11,7 +11,6 @@ export declare class TestSwapper implements Swapper {
|
|
|
11
11
|
getType(): SwapperType;
|
|
12
12
|
constructor();
|
|
13
13
|
getUsdRate(input: Pick<Asset, 'symbol' | 'assetId'>): Promise<string>;
|
|
14
|
-
getMinMax(input: GetMinMaxInput): Promise<MinMaxOutput>;
|
|
15
14
|
approvalNeeded(): Promise<ApprovalNeededOutput>;
|
|
16
15
|
approveInfinite(): Promise<string>;
|
|
17
16
|
filterBuyAssetsBySellAssetId(args: BuyAssetBySellIdInput): AssetId[];
|
|
@@ -24,10 +24,6 @@ class TestSwapper {
|
|
|
24
24
|
console.info(input);
|
|
25
25
|
throw new Error('TestSwapper: getUsdRate unimplemented');
|
|
26
26
|
}
|
|
27
|
-
getMinMax(input) {
|
|
28
|
-
console.info(input);
|
|
29
|
-
throw new Error('TestSwapper: getMinMax unimplemented');
|
|
30
|
-
}
|
|
31
27
|
async approvalNeeded() {
|
|
32
28
|
throw new Error('TestSwapper: approvalNeeded unimplemented');
|
|
33
29
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AssetId } from '@shapeshiftoss/caip';
|
|
2
2
|
import { Asset, SupportedChainIds } from '@shapeshiftoss/types';
|
|
3
|
-
import { ApprovalNeededOutput, BuyAssetBySellIdInput,
|
|
3
|
+
import { ApprovalNeededOutput, BuyAssetBySellIdInput, Swapper, SwapperType, Trade, TradeQuote, TradeResult, TradeTxs } from '../../api';
|
|
4
4
|
import { ThorchainSwapperDeps } from './types';
|
|
5
5
|
export declare class ThorchainSwapper implements Swapper {
|
|
6
6
|
private supportedAssetIds;
|
|
@@ -9,7 +9,6 @@ export declare class ThorchainSwapper implements Swapper {
|
|
|
9
9
|
initialize(): Promise<void>;
|
|
10
10
|
getType(): SwapperType;
|
|
11
11
|
getUsdRate(input: Pick<Asset, 'symbol' | 'assetId'>): Promise<string>;
|
|
12
|
-
getMinMax(input: GetMinMaxInput): Promise<MinMaxOutput>;
|
|
13
12
|
approvalNeeded(): Promise<ApprovalNeededOutput>;
|
|
14
13
|
approveInfinite(): Promise<string>;
|
|
15
14
|
filterBuyAssetsBySellAssetId(args: BuyAssetBySellIdInput): AssetId[];
|
|
@@ -35,10 +35,6 @@ class ThorchainSwapper {
|
|
|
35
35
|
getUsdRate(input) {
|
|
36
36
|
return (0, getUsdRate_1.getUsdRate)({ deps: this.deps, input });
|
|
37
37
|
}
|
|
38
|
-
getMinMax(input) {
|
|
39
|
-
console.info(input);
|
|
40
|
-
throw new Error('ThorchainSwapper: getMinMax unimplemented');
|
|
41
|
-
}
|
|
42
38
|
async approvalNeeded() {
|
|
43
39
|
throw new Error('ThorchainSwapper: approvalNeeded unimplemented');
|
|
44
40
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChainAdapterManager } from '@shapeshiftoss/chain-adapters';
|
|
1
2
|
export declare type MidgardResponse = {
|
|
2
3
|
asset: string;
|
|
3
4
|
assetDepth: string;
|
|
@@ -12,6 +13,15 @@ export declare type MidgardResponse = {
|
|
|
12
13
|
units: string;
|
|
13
14
|
volume24h: string;
|
|
14
15
|
};
|
|
16
|
+
export declare type InboundResponse = {
|
|
17
|
+
chain: string;
|
|
18
|
+
pub_key: string;
|
|
19
|
+
address: string;
|
|
20
|
+
halted: boolean;
|
|
21
|
+
gas_rate: string;
|
|
22
|
+
router?: string;
|
|
23
|
+
};
|
|
15
24
|
export declare type ThorchainSwapperDeps = {
|
|
16
25
|
midgardUrl: string;
|
|
26
|
+
adapterManager: ChainAdapterManager;
|
|
17
27
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ethereum } from '@shapeshiftoss/chain-adapters';
|
|
2
|
+
import { ETHSignTx, HDWallet } from '@shapeshiftoss/hdwallet-core';
|
|
3
|
+
import { Asset, BIP44Params } from '@shapeshiftoss/types';
|
|
4
|
+
import BigNumber from 'bignumber.js';
|
|
5
|
+
import { ThorchainSwapperDeps } from '../../types';
|
|
6
|
+
export declare const fromBaseUnit: (value: BigNumber.Value, decimals: number, displayDecimals?: number) => string;
|
|
7
|
+
export declare const toBaseUnit: (amount: BigNumber.Value | undefined, precision: number) => string;
|
|
8
|
+
export declare const makeTradeTx: ({ wallet, bip44Params, sellAmount, buyAsset, sellAsset, destinationAddress, adapter, maxFeePerGas, maxPriorityFeePerGas, slippageTolerance, deps, gasLimit }: {
|
|
9
|
+
wallet: HDWallet;
|
|
10
|
+
bip44Params: BIP44Params;
|
|
11
|
+
sellAmount: string;
|
|
12
|
+
buyAsset: Asset;
|
|
13
|
+
sellAsset: Asset;
|
|
14
|
+
destinationAddress: string;
|
|
15
|
+
adapter: ethereum.ChainAdapter;
|
|
16
|
+
maxFeePerGas: string;
|
|
17
|
+
maxPriorityFeePerGas: string;
|
|
18
|
+
slippageTolerance: string;
|
|
19
|
+
deps: ThorchainSwapperDeps;
|
|
20
|
+
gasLimit: string;
|
|
21
|
+
}) => Promise<{
|
|
22
|
+
txToSign: ETHSignTx;
|
|
23
|
+
}>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeTradeTx = exports.toBaseUnit = exports.fromBaseUnit = void 0;
|
|
7
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
+
const api_1 = require("../../../../api");
|
|
10
|
+
const bignumber_1 = require("../../../zrx/utils/bignumber");
|
|
11
|
+
const getPriceRatio_1 = require("../getPriceRatio/getPriceRatio");
|
|
12
|
+
const makeSwapMemo_1 = require("../makeSwapMemo/makeSwapMemo");
|
|
13
|
+
const thorService_1 = require("../thorService");
|
|
14
|
+
const routerCalldata_1 = require("./routerCalldata");
|
|
15
|
+
const fromBaseUnit = (value, decimals, displayDecimals = 6) => {
|
|
16
|
+
return (0, bignumber_1.bnOrZero)(value)
|
|
17
|
+
.div(`1e+${decimals}`)
|
|
18
|
+
.decimalPlaces(displayDecimals, bignumber_js_1.default.ROUND_DOWN)
|
|
19
|
+
.toString();
|
|
20
|
+
};
|
|
21
|
+
exports.fromBaseUnit = fromBaseUnit;
|
|
22
|
+
const toBaseUnit = (amount, precision) => {
|
|
23
|
+
return (0, bignumber_1.bnOrZero)(amount)
|
|
24
|
+
.times(new bignumber_js_1.default(10).exponentiatedBy((0, bignumber_1.bnOrZero)(precision)))
|
|
25
|
+
.toFixed(0);
|
|
26
|
+
};
|
|
27
|
+
exports.toBaseUnit = toBaseUnit;
|
|
28
|
+
const makeTradeTx = async ({ wallet, bip44Params, sellAmount, buyAsset, sellAsset, destinationAddress, adapter, maxFeePerGas, maxPriorityFeePerGas, slippageTolerance, deps, gasLimit }) => {
|
|
29
|
+
try {
|
|
30
|
+
const { assetReference } = (0, caip_1.fromAssetId)(sellAsset.assetId);
|
|
31
|
+
const isErc20Trade = assetReference.startsWith('0x');
|
|
32
|
+
const { data: inboundAddresses } = await thorService_1.thorService.get(`${deps.midgardUrl}/thorchain/inbound_addresses`);
|
|
33
|
+
const ethInboundAddresses = inboundAddresses.find((inbound) => inbound.chain === 'ETH');
|
|
34
|
+
const vault = ethInboundAddresses === null || ethInboundAddresses === void 0 ? void 0 : ethInboundAddresses.address;
|
|
35
|
+
const router = ethInboundAddresses === null || ethInboundAddresses === void 0 ? void 0 : ethInboundAddresses.router;
|
|
36
|
+
if (!vault || !router)
|
|
37
|
+
throw new api_1.SwapError(`[getPriceRatio]: router or vault found for ETH`, {
|
|
38
|
+
code: api_1.SwapErrorTypes.RESPONSE_ERROR,
|
|
39
|
+
details: { inboundAddresses }
|
|
40
|
+
});
|
|
41
|
+
const priceRatio = await (0, getPriceRatio_1.getPriceRatio)(deps, {
|
|
42
|
+
buyAssetId: buyAsset.assetId,
|
|
43
|
+
sellAssetId: sellAsset.assetId
|
|
44
|
+
});
|
|
45
|
+
const expectedBuyAmount = (0, exports.toBaseUnit)((0, exports.fromBaseUnit)((0, bignumber_1.bnOrZero)(sellAmount).dividedBy(priceRatio), sellAsset.precision), buyAsset.precision);
|
|
46
|
+
if (!(0, bignumber_1.bnOrZero)(expectedBuyAmount).gte(0) ||
|
|
47
|
+
!((0, bignumber_1.bnOrZero)(slippageTolerance).gte(0) && (0, bignumber_1.bnOrZero)(slippageTolerance).lte(1)))
|
|
48
|
+
throw new api_1.SwapError('[makeTradeTx]: bad expected buy amount or bad slippage tolerance', {
|
|
49
|
+
code: api_1.SwapErrorTypes.BUILD_TRADE_FAILED
|
|
50
|
+
});
|
|
51
|
+
const limit = (0, bignumber_1.bnOrZero)(expectedBuyAmount)
|
|
52
|
+
.times(new bignumber_js_1.default(1).minus(slippageTolerance))
|
|
53
|
+
.decimalPlaces(0)
|
|
54
|
+
.toString();
|
|
55
|
+
const memo = (0, makeSwapMemo_1.makeSwapMemo)({
|
|
56
|
+
buyAssetId: buyAsset.assetId,
|
|
57
|
+
destinationAddress,
|
|
58
|
+
limit
|
|
59
|
+
});
|
|
60
|
+
const data = await (0, routerCalldata_1.deposit)(vault, router, isErc20Trade ? assetReference : '0x0000000000000000000000000000000000000000', sellAmount, memo);
|
|
61
|
+
return adapter.buildCustomTx({
|
|
62
|
+
wallet,
|
|
63
|
+
bip44Params,
|
|
64
|
+
to: router,
|
|
65
|
+
gasLimit,
|
|
66
|
+
maxFeePerGas,
|
|
67
|
+
maxPriorityFeePerGas,
|
|
68
|
+
value: isErc20Trade ? '0' : sellAmount,
|
|
69
|
+
data
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
if (e instanceof api_1.SwapError)
|
|
74
|
+
throw e;
|
|
75
|
+
throw new api_1.SwapError('[makeTradeTx]: error making trade tx', {
|
|
76
|
+
code: api_1.SwapErrorTypes.BUILD_TRADE_FAILED,
|
|
77
|
+
cause: e
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.makeTradeTx = makeTradeTx;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPriceRatio = void 0;
|
|
4
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
|
+
const api_1 = require("../../../../api");
|
|
6
|
+
const bignumber_1 = require("../../../zrx/utils/bignumber");
|
|
7
|
+
const thorService_1 = require("../thorService");
|
|
8
|
+
const getPriceRatio = async (deps, input) => {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
const { buyAssetId, sellAssetId } = input;
|
|
11
|
+
try {
|
|
12
|
+
const buyPoolId = caip_1.adapters.assetIdToPoolAssetId({ assetId: buyAssetId });
|
|
13
|
+
const sellPoolId = caip_1.adapters.assetIdToPoolAssetId({ assetId: sellAssetId });
|
|
14
|
+
if (!buyPoolId || !sellPoolId)
|
|
15
|
+
throw new api_1.SwapError(`[getPriceRatio]: No thorchain pool found`, {
|
|
16
|
+
code: api_1.SwapErrorTypes.RESPONSE_ERROR,
|
|
17
|
+
details: { buyPoolId, sellPoolId }
|
|
18
|
+
});
|
|
19
|
+
const { data: responseData } = await thorService_1.thorService.get(`${deps.midgardUrl}/pools`);
|
|
20
|
+
const buyUsdPrice = (_a = responseData.find((response) => response.asset === buyPoolId)) === null || _a === void 0 ? void 0 : _a.assetPrice;
|
|
21
|
+
const sellUsdPrice = (_b = responseData.find((response) => response.asset === sellPoolId)) === null || _b === void 0 ? void 0 : _b.assetPrice;
|
|
22
|
+
if (!buyUsdPrice || !sellUsdPrice)
|
|
23
|
+
throw new api_1.SwapError(`[getPriceRatio]: No rate found for pools`, {
|
|
24
|
+
code: api_1.SwapErrorTypes.RESPONSE_ERROR,
|
|
25
|
+
details: { buyPoolId, sellPoolId }
|
|
26
|
+
});
|
|
27
|
+
return (0, bignumber_1.bnOrZero)(buyUsdPrice).dividedBy(sellUsdPrice).toString();
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
if (e instanceof api_1.SwapError)
|
|
31
|
+
throw e;
|
|
32
|
+
throw new api_1.SwapError('[getUsdRate]: Thorchain getUsdRate failed', {
|
|
33
|
+
code: api_1.SwapErrorTypes.PRICE_RATIO_FAILED,
|
|
34
|
+
cause: e
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.getPriceRatio = getPriceRatio;
|
|
@@ -5,10 +5,9 @@ const caip_1 = require("@shapeshiftoss/caip");
|
|
|
5
5
|
const api_1 = require("../../../api");
|
|
6
6
|
const erc20Allowance_abi_1 = require("../utils/abi/erc20Allowance-abi");
|
|
7
7
|
const bignumber_1 = require("../utils/bignumber");
|
|
8
|
-
const constants_1 = require("../utils/constants");
|
|
9
8
|
const helpers_1 = require("../utils/helpers/helpers");
|
|
10
9
|
async function ZrxApprovalNeeded({ adapterManager, web3 }, { quote, wallet }) {
|
|
11
|
-
var _a
|
|
10
|
+
var _a;
|
|
12
11
|
const { sellAsset } = quote;
|
|
13
12
|
const { assetReference: sellAssetErc20Address } = (0, caip_1.fromAssetId)(sellAsset.assetId);
|
|
14
13
|
try {
|
|
@@ -46,9 +45,7 @@ async function ZrxApprovalNeeded({ adapterManager, web3 }, { quote, wallet }) {
|
|
|
46
45
|
details: { feeData: quote.feeData }
|
|
47
46
|
});
|
|
48
47
|
return {
|
|
49
|
-
approvalNeeded: allowanceOnChain.lte((0, bignumber_1.bnOrZero)(quote.sellAmount))
|
|
50
|
-
gas: constants_1.APPROVAL_GAS_LIMIT,
|
|
51
|
-
gasPrice: (_b = quote.feeData.chainSpecific) === null || _b === void 0 ? void 0 : _b.gasPrice
|
|
48
|
+
approvalNeeded: allowanceOnChain.lte((0, bignumber_1.bnOrZero)(quote.sellAmount))
|
|
52
49
|
};
|
|
53
50
|
}
|
|
54
51
|
catch (e) {
|
|
@@ -2,7 +2,7 @@ import { AssetId } from '@shapeshiftoss/caip';
|
|
|
2
2
|
import { ChainAdapterManager } from '@shapeshiftoss/chain-adapters';
|
|
3
3
|
import { Asset, SupportedChainIds } from '@shapeshiftoss/types';
|
|
4
4
|
import Web3 from 'web3';
|
|
5
|
-
import { ApprovalNeededInput, ApprovalNeededOutput, ApproveInfiniteInput, BuildTradeInput, BuyAssetBySellIdInput, ExecuteTradeInput,
|
|
5
|
+
import { ApprovalNeededInput, ApprovalNeededOutput, ApproveInfiniteInput, BuildTradeInput, BuyAssetBySellIdInput, ExecuteTradeInput, GetTradeQuoteInput, Swapper, SwapperType, TradeQuote, TradeResult, TradeTxs, ZrxTrade } from '../../api';
|
|
6
6
|
export declare type ZrxSwapperDeps = {
|
|
7
7
|
adapterManager: ChainAdapterManager;
|
|
8
8
|
web3: Web3;
|
|
@@ -16,7 +16,6 @@ export declare class ZrxSwapper implements Swapper {
|
|
|
16
16
|
buildTrade(args: BuildTradeInput): Promise<ZrxTrade<SupportedChainIds>>;
|
|
17
17
|
getTradeQuote(input: GetTradeQuoteInput): Promise<TradeQuote<SupportedChainIds>>;
|
|
18
18
|
getUsdRate(input: Pick<Asset, 'symbol' | 'assetId'>): Promise<string>;
|
|
19
|
-
getMinMax(input: GetMinMaxInput): Promise<MinMaxOutput>;
|
|
20
19
|
executeTrade(args: ExecuteTradeInput<SupportedChainIds>): Promise<TradeResult>;
|
|
21
20
|
approvalNeeded(args: ApprovalNeededInput<SupportedChainIds>): Promise<ApprovalNeededOutput>;
|
|
22
21
|
approveInfinite(args: ApproveInfiniteInput<SupportedChainIds>): Promise<string>;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZrxSwapper = void 0;
|
|
4
4
|
const api_1 = require("../../api");
|
|
5
|
-
const getZrxMinMax_1 = require("./getZrxMinMax/getZrxMinMax");
|
|
6
5
|
const getZrxTradeQuote_1 = require("./getZrxTradeQuote/getZrxTradeQuote");
|
|
7
6
|
const blacklist_1 = require("./utils/blacklist");
|
|
8
7
|
const helpers_1 = require("./utils/helpers/helpers");
|
|
@@ -29,9 +28,6 @@ class ZrxSwapper {
|
|
|
29
28
|
async getUsdRate(input) {
|
|
30
29
|
return (0, helpers_1.getUsdRate)(input);
|
|
31
30
|
}
|
|
32
|
-
async getMinMax(input) {
|
|
33
|
-
return (0, getZrxMinMax_1.getZrxMinMax)(input.sellAsset, input.buyAsset);
|
|
34
|
-
}
|
|
35
31
|
async executeTrade(args) {
|
|
36
32
|
return (0, zrxExecuteTrade_1.zrxExecuteTrade)(this.deps, args);
|
|
37
33
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/swapper",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.9.0",
|
|
4
4
|
"description": "TODO: description",
|
|
5
5
|
"repository": "https://github.com/shapeshift/lib",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@shapeshiftoss/caip": "^5.2.1",
|
|
35
35
|
"@shapeshiftoss/chain-adapters": "^4.3.3",
|
|
36
36
|
"@shapeshiftoss/hdwallet-core": "1.20.0",
|
|
37
|
-
"@shapeshiftoss/types": "
|
|
37
|
+
"@shapeshiftoss/types": "4.3.1",
|
|
38
38
|
"@shapeshiftoss/errors": "^1.1.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@shapeshiftoss/caip": "^5.2.1",
|
|
43
43
|
"@shapeshiftoss/chain-adapters": "^4.3.3",
|
|
44
44
|
"@shapeshiftoss/hdwallet-core": "^1.20.0",
|
|
45
|
-
"@shapeshiftoss/types": "
|
|
45
|
+
"@shapeshiftoss/types": "4.3.1",
|
|
46
46
|
"@shapeshiftoss/errors": "^1.1.0",
|
|
47
47
|
"@types/readline-sync": "^1.4.4",
|
|
48
48
|
"readline-sync": "^1.4.10",
|