@shapeshiftoss/swapper 6.3.0 → 7.2.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 +25 -27
- package/dist/api.js +1 -0
- package/dist/manager/SwapperManager.d.ts +6 -5
- package/dist/swappercli.js +34 -17
- package/dist/swappers/cow/CowApprovalNeeded/CowApprovalNeeded.d.ts +3 -0
- package/dist/swappers/cow/CowApprovalNeeded/CowApprovalNeeded.js +42 -0
- package/dist/swappers/cow/CowApproveInfinite/CowApproveInfinite.d.ts +3 -0
- package/dist/swappers/cow/CowApproveInfinite/CowApproveInfinite.js +31 -0
- package/dist/swappers/cow/CowSwapper.d.ts +11 -7
- package/dist/swappers/cow/CowSwapper.js +13 -8
- package/dist/swappers/cow/getCowSwapMinMax/getCowSwapMinMax.d.ts +4 -0
- package/dist/swappers/cow/getCowSwapMinMax/getCowSwapMinMax.js +28 -0
- package/dist/swappers/cow/utils/blacklist.d.ts +1 -0
- package/dist/swappers/cow/utils/blacklist.js +9 -0
- package/dist/swappers/cow/utils/constants.d.ts +2 -0
- package/dist/swappers/cow/utils/constants.js +4 -0
- package/dist/swappers/index.d.ts +1 -0
- package/dist/swappers/index.js +1 -0
- package/dist/swappers/test/TestSwapper.d.ts +5 -5
- package/dist/swappers/thorchain/ThorchainSwapper.d.ts +6 -6
- package/dist/swappers/thorchain/ThorchainSwapper.js +6 -3
- package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.d.ts +2 -2
- package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.js +9 -5
- package/dist/swappers/thorchain/utils/txFeeHelpers/ethTxFees/getEthTxFees.js +7 -1
- package/dist/swappers/{zrx/utils → utils}/abi/erc20-abi.d.ts +0 -0
- package/dist/swappers/{zrx/utils → utils}/abi/erc20-abi.js +0 -0
- package/dist/swappers/{zrx/utils → utils}/abi/erc20Allowance-abi.d.ts +0 -0
- package/dist/swappers/{zrx/utils → utils}/abi/erc20Allowance-abi.js +0 -0
- package/dist/swappers/utils/helpers/helpers.d.ts +33 -0
- package/dist/swappers/utils/helpers/helpers.js +98 -1
- package/dist/swappers/utils/test-data/assets.js +0 -13
- package/dist/swappers/utils/test-data/setupDeps.d.ts +6 -0
- package/dist/swappers/utils/test-data/setupDeps.js +48 -0
- package/dist/swappers/utils/test-data/setupSwapQuote.d.ts +8 -0
- package/dist/swappers/utils/test-data/setupSwapQuote.js +30 -0
- package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.d.ts +1 -1
- package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.js +3 -4
- package/dist/swappers/zrx/ZrxApproveInfinite/ZrxApproveInfinite.d.ts +1 -2
- package/dist/swappers/zrx/ZrxApproveInfinite/ZrxApproveInfinite.js +4 -4
- package/dist/swappers/zrx/ZrxSwapper.d.ts +7 -7
- package/dist/swappers/zrx/utils/helpers/helpers.d.ts +1 -33
- package/dist/swappers/zrx/utils/helpers/helpers.js +1 -97
- package/dist/swappers/zrx/utils/test-data/{setupSwapQuote.d.ts → setupZrxSwapQuote.d.ts} +0 -7
- package/dist/swappers/zrx/utils/test-data/{setupSwapQuote.js → setupZrxSwapQuote.js} +1 -27
- package/dist/swappers/zrx/zrxBuildTrade/zrxBuildTrade.d.ts +1 -2
- package/dist/swappers/zrx/zrxBuildTrade/zrxBuildTrade.js +10 -12
- package/dist/swappers/zrx/zrxExecuteTrade/zrxExecuteTrade.d.ts +1 -1
- package/dist/swappers/zrx/zrxExecuteTrade/zrxExecuteTrade.js +1 -2
- package/package.json +10 -10
- package/dist/swappers/zrx/utils/test-data/setupZrxDeps.d.ts +0 -32
- package/dist/swappers/zrx/utils/test-data/setupZrxDeps.js +0 -46
|
@@ -27,16 +27,15 @@ exports.zrxBuildTrade = void 0;
|
|
|
27
27
|
const caip_1 = require("@shapeshiftoss/caip");
|
|
28
28
|
const rax = __importStar(require("retry-axios"));
|
|
29
29
|
const __1 = require("../../..");
|
|
30
|
+
const erc20Allowance_abi_1 = require("../../utils/abi/erc20Allowance-abi");
|
|
30
31
|
const bignumber_1 = require("../../utils/bignumber");
|
|
31
32
|
const constants_1 = require("../../utils/constants");
|
|
32
|
-
const constants_2 = require("../../utils/constants");
|
|
33
33
|
const helpers_1 = require("../../utils/helpers/helpers");
|
|
34
|
-
const
|
|
34
|
+
const helpers_2 = require("../../utils/helpers/helpers");
|
|
35
35
|
const applyAxiosRetry_1 = require("../utils/applyAxiosRetry");
|
|
36
|
-
const
|
|
37
|
-
const helpers_2 = require("../utils/helpers/helpers");
|
|
36
|
+
const constants_2 = require("../utils/constants");
|
|
38
37
|
const zrxService_1 = require("../utils/zrxService");
|
|
39
|
-
async function zrxBuildTrade({
|
|
38
|
+
async function zrxBuildTrade({ adapter, web3 }, input) {
|
|
40
39
|
var _a, _b, _c;
|
|
41
40
|
const { sellAsset, buyAsset, sellAmount, slippage, sellAssetAccountNumber, buyAssetAccountNumber, wallet } = input;
|
|
42
41
|
try {
|
|
@@ -50,8 +49,7 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
50
49
|
details: { chainId: sellAsset.chainId }
|
|
51
50
|
});
|
|
52
51
|
}
|
|
53
|
-
const
|
|
54
|
-
const bip44Params = adapter.buildBIP44Params({ accountNumber: buyAssetAccountNumber });
|
|
52
|
+
const bip44Params = adapter.buildBIP44Params({ accountNumber: Number(buyAssetAccountNumber) });
|
|
55
53
|
const receiveAddress = await adapter.getAddress({ wallet, bip44Params });
|
|
56
54
|
const slippagePercentage = slippage ? (0, bignumber_1.bnOrZero)(slippage).div(100).toString() : constants_1.DEFAULT_SLIPPAGE;
|
|
57
55
|
/**
|
|
@@ -83,11 +81,11 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
83
81
|
params: {
|
|
84
82
|
buyToken,
|
|
85
83
|
sellToken,
|
|
86
|
-
sellAmount: (0,
|
|
84
|
+
sellAmount: (0, helpers_2.normalizeAmount)(sellAmount),
|
|
87
85
|
takerAddress: receiveAddress,
|
|
88
86
|
slippagePercentage,
|
|
89
87
|
skipValidation: false,
|
|
90
|
-
affiliateAddress:
|
|
88
|
+
affiliateAddress: constants_2.AFFILIATE_ADDRESS
|
|
91
89
|
}
|
|
92
90
|
});
|
|
93
91
|
const { data } = quoteResponse;
|
|
@@ -110,9 +108,9 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
110
108
|
txData: data.data,
|
|
111
109
|
sellAmount: data.sellAmount,
|
|
112
110
|
buyAmount: data.buyAmount,
|
|
113
|
-
sources: ((_a = data.sources) === null || _a === void 0 ? void 0 : _a.filter((s) => parseFloat(s.proportion) > 0)) ||
|
|
111
|
+
sources: ((_a = data.sources) === null || _a === void 0 ? void 0 : _a.filter((s) => parseFloat(s.proportion) > 0)) || constants_2.DEFAULT_SOURCE
|
|
114
112
|
};
|
|
115
|
-
const allowanceRequired = await (0,
|
|
113
|
+
const allowanceRequired = await (0, helpers_1.getAllowanceRequired)({
|
|
116
114
|
sellAsset,
|
|
117
115
|
allowanceContract: data.allowanceTarget,
|
|
118
116
|
receiveAddress,
|
|
@@ -125,7 +123,7 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
125
123
|
fee: ((_b = trade.feeData) === null || _b === void 0 ? void 0 : _b.fee) || '0',
|
|
126
124
|
chainSpecific: {
|
|
127
125
|
...(_c = trade.feeData) === null || _c === void 0 ? void 0 : _c.chainSpecific,
|
|
128
|
-
approvalFee: (0, bignumber_1.bnOrZero)(
|
|
126
|
+
approvalFee: (0, bignumber_1.bnOrZero)(constants_1.APPROVAL_GAS_LIMIT).multipliedBy((0, bignumber_1.bnOrZero)(data.gasPrice)).toString()
|
|
129
127
|
},
|
|
130
128
|
tradeFee: '0'
|
|
131
129
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ExecuteTradeInput, TradeResult } from '../../../api';
|
|
2
2
|
import { ZrxSwapperDeps } from '../ZrxSwapper';
|
|
3
|
-
export declare function zrxExecuteTrade({
|
|
3
|
+
export declare function zrxExecuteTrade({ adapter }: ZrxSwapperDeps, { trade, wallet }: ExecuteTradeInput<'eip155:1'>): Promise<TradeResult>;
|
|
@@ -3,14 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.zrxExecuteTrade = void 0;
|
|
4
4
|
const web3_utils_1 = require("web3-utils");
|
|
5
5
|
const api_1 = require("../../../api");
|
|
6
|
-
async function zrxExecuteTrade({
|
|
6
|
+
async function zrxExecuteTrade({ adapter }, { trade, wallet }) {
|
|
7
7
|
var _a, _b, _c, _d, _e, _f;
|
|
8
8
|
const zrxTrade = trade;
|
|
9
9
|
const { sellAsset } = zrxTrade;
|
|
10
10
|
try {
|
|
11
11
|
// value is 0 for erc20s
|
|
12
12
|
const value = sellAsset.assetId === 'eip155:1/slip44:60' ? trade.sellAmount : '0';
|
|
13
|
-
const adapter = await adapterManager.byChainId(sellAsset.chainId);
|
|
14
13
|
const bip44Params = adapter.buildBIP44Params({
|
|
15
14
|
accountNumber: trade.sellAssetAccountNumber
|
|
16
15
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/swapper",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "7.2.0",
|
|
4
|
+
"description": "An interface and implementations to trade coins via various protocols",
|
|
5
5
|
"repository": "https://github.com/shapeshift/lib",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
"web3": "^1.7.3"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@shapeshiftoss/asset-service": "^
|
|
34
|
-
"@shapeshiftoss/caip": "^5.
|
|
35
|
-
"@shapeshiftoss/chain-adapters": "^
|
|
33
|
+
"@shapeshiftoss/asset-service": "^5.0.0",
|
|
34
|
+
"@shapeshiftoss/caip": "^5.3.0",
|
|
35
|
+
"@shapeshiftoss/chain-adapters": "^6.0.1",
|
|
36
36
|
"@shapeshiftoss/errors": "^1.1.1",
|
|
37
37
|
"@shapeshiftoss/hdwallet-core": "^1.23.0",
|
|
38
|
-
"@shapeshiftoss/types": "^
|
|
38
|
+
"@shapeshiftoss/types": "^5.0.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@shapeshiftoss/asset-service": "^
|
|
42
|
-
"@shapeshiftoss/caip": "^5.
|
|
43
|
-
"@shapeshiftoss/chain-adapters": "^
|
|
41
|
+
"@shapeshiftoss/asset-service": "^5.0.0",
|
|
42
|
+
"@shapeshiftoss/caip": "^5.3.0",
|
|
43
|
+
"@shapeshiftoss/chain-adapters": "^6.0.1",
|
|
44
44
|
"@shapeshiftoss/errors": "^1.1.1",
|
|
45
45
|
"@shapeshiftoss/hdwallet-core": "^1.23.0",
|
|
46
|
-
"@shapeshiftoss/types": "^
|
|
46
|
+
"@shapeshiftoss/types": "^5.0.0",
|
|
47
47
|
"@types/readline-sync": "^1.4.4",
|
|
48
48
|
"readline-sync": "^1.4.10",
|
|
49
49
|
"web3-utils": "^1.7.3"
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { ChainAdapterManager } from '@shapeshiftoss/chain-adapters';
|
|
2
|
-
import Web3 from 'web3';
|
|
3
|
-
export declare const chainAdapterMockFuncs: {
|
|
4
|
-
buildBIP44Params: jest.Mock<{
|
|
5
|
-
purpose: number;
|
|
6
|
-
coinType: number;
|
|
7
|
-
accountNumber: number;
|
|
8
|
-
}, []>;
|
|
9
|
-
buildSendTransaction: jest.Mock<Promise<{
|
|
10
|
-
txToSign: {};
|
|
11
|
-
}>, []>;
|
|
12
|
-
signTransaction: jest.Mock<Promise<string>, []>;
|
|
13
|
-
broadcastTransaction: jest.Mock<Promise<string>, []>;
|
|
14
|
-
getAddress: jest.Mock<Promise<string>, []>;
|
|
15
|
-
getAccount: jest.Mock<Promise<{
|
|
16
|
-
chainSpecific: {
|
|
17
|
-
tokens: {
|
|
18
|
-
assetId: string;
|
|
19
|
-
balance: string;
|
|
20
|
-
}[];
|
|
21
|
-
};
|
|
22
|
-
}>, []>;
|
|
23
|
-
getFeeData: jest.Mock<Promise<{
|
|
24
|
-
average: {
|
|
25
|
-
txFee: string;
|
|
26
|
-
};
|
|
27
|
-
}>, []>;
|
|
28
|
-
};
|
|
29
|
-
export declare const setupZrxDeps: () => {
|
|
30
|
-
web3Instance: Web3;
|
|
31
|
-
adapterManager: ChainAdapterManager;
|
|
32
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
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.setupZrxDeps = exports.chainAdapterMockFuncs = void 0;
|
|
7
|
-
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
8
|
-
const types_1 = require("@shapeshiftoss/types");
|
|
9
|
-
const web3_1 = __importDefault(require("web3"));
|
|
10
|
-
jest.mock('@shapeshiftoss/chain-adapters');
|
|
11
|
-
exports.chainAdapterMockFuncs = {
|
|
12
|
-
buildBIP44Params: jest.fn(() => ({ purpose: 44, coinType: 60, accountNumber: 0 })),
|
|
13
|
-
buildSendTransaction: jest.fn(() => Promise.resolve({ txToSign: {} })),
|
|
14
|
-
signTransaction: jest.fn(() => Promise.resolve('signedTx')),
|
|
15
|
-
broadcastTransaction: jest.fn(() => Promise.resolve('broadcastedTx')),
|
|
16
|
-
getAddress: jest.fn(() => Promise.resolve('address')),
|
|
17
|
-
getAccount: jest.fn(() => Promise.resolve({
|
|
18
|
-
chainSpecific: { tokens: [{ assetId: 'eip155:1/erc20:contractAddress', balance: '1000000' }] }
|
|
19
|
-
})),
|
|
20
|
-
getFeeData: jest.fn(() => Promise.resolve({
|
|
21
|
-
[types_1.chainAdapters.FeeDataKey.Average]: { txFee: '10000' }
|
|
22
|
-
}))
|
|
23
|
-
};
|
|
24
|
-
// @ts-ignore
|
|
25
|
-
chain_adapters_1.ChainAdapterManager.mockImplementation(() => ({
|
|
26
|
-
byChain: jest.fn(() => exports.chainAdapterMockFuncs),
|
|
27
|
-
byChainId: jest.fn(() => exports.chainAdapterMockFuncs)
|
|
28
|
-
}));
|
|
29
|
-
const setupZrxDeps = () => {
|
|
30
|
-
const unchainedUrls = {
|
|
31
|
-
[types_1.ChainTypes.Bitcoin]: {
|
|
32
|
-
httpUrl: 'https://api.bitcoin.shapeshift.com',
|
|
33
|
-
wsUrl: 'wss://api.bitcoin.shapeshift.com'
|
|
34
|
-
},
|
|
35
|
-
[types_1.ChainTypes.Ethereum]: {
|
|
36
|
-
httpUrl: 'https://api.ethereum.shapeshift.com',
|
|
37
|
-
wsUrl: 'wss://api.ethereum.shapeshift.com'
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
const ethNodeUrl = 'http://localhost:1000';
|
|
41
|
-
const adapterManager = new chain_adapters_1.ChainAdapterManager(unchainedUrls);
|
|
42
|
-
const web3Provider = new web3_1.default.providers.HttpProvider(ethNodeUrl);
|
|
43
|
-
const web3Instance = new web3_1.default(web3Provider);
|
|
44
|
-
return { web3Instance, adapterManager };
|
|
45
|
-
};
|
|
46
|
-
exports.setupZrxDeps = setupZrxDeps;
|