@shapeshiftoss/swapper 6.2.0 → 7.0.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 +28 -30
- package/dist/manager/SwapperManager.d.ts +8 -7
- package/dist/swappercli.js +38 -20
- package/dist/swappers/cow/CowSwapper.d.ts +8 -8
- package/dist/swappers/test/TestSwapper.d.ts +5 -5
- package/dist/swappers/thorchain/ThorchainSwapper.d.ts +7 -7
- package/dist/swappers/thorchain/ThorchainSwapper.js +9 -5
- package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.d.ts +7 -0
- package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.js +98 -0
- package/dist/swappers/thorchain/utils/constants.d.ts +1 -0
- package/dist/swappers/thorchain/utils/constants.js +4 -0
- package/dist/swappers/thorchain/utils/ethereum/makeTradeTx.d.ts +0 -3
- package/dist/swappers/thorchain/utils/ethereum/makeTradeTx.js +9 -50
- package/dist/swappers/thorchain/utils/ethereum/utils/getThorTxData.d.ts +15 -0
- package/dist/swappers/thorchain/utils/ethereum/utils/getThorTxData.js +55 -0
- package/dist/swappers/thorchain/utils/getTradeRate/getTradeRate.js +4 -4
- package/dist/swappers/thorchain/utils/txFeeHelpers/ethTxFees/getEthTxFees.d.ts +15 -0
- package/dist/swappers/thorchain/utils/txFeeHelpers/ethTxFees/getEthTxFees.js +44 -0
- package/dist/swappers/utils/bignumber.d.ts +2 -0
- package/dist/swappers/utils/bignumber.js +14 -1
- package/dist/swappers/utils/constants.d.ts +2 -0
- package/dist/swappers/utils/constants.js +5 -0
- package/dist/swappers/utils/helpers/helpers.d.ts +7 -0
- package/dist/swappers/utils/helpers/helpers.js +13 -0
- package/dist/swappers/utils/test-data/assets.js +0 -13
- package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.d.ts +1 -1
- package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.js +2 -3
- package/dist/swappers/zrx/ZrxApproveInfinite/ZrxApproveInfinite.d.ts +1 -2
- package/dist/swappers/zrx/ZrxApproveInfinite/ZrxApproveInfinite.js +2 -2
- package/dist/swappers/zrx/ZrxSwapper.d.ts +7 -7
- package/dist/swappers/zrx/getZrxTradeQuote/getZrxTradeQuote.js +6 -5
- package/dist/swappers/zrx/utils/constants.d.ts +0 -4
- package/dist/swappers/zrx/utils/constants.js +1 -5
- package/dist/swappers/zrx/utils/helpers/helpers.d.ts +7 -16
- package/dist/swappers/zrx/utils/helpers/helpers.js +3 -16
- package/dist/swappers/zrx/utils/test-data/setupSwapQuote.d.ts +3 -3
- package/dist/swappers/zrx/utils/test-data/setupSwapQuote.js +5 -5
- package/dist/swappers/zrx/utils/test-data/setupZrxDeps.d.ts +3 -29
- package/dist/swappers/zrx/utils/test-data/setupZrxDeps.js +34 -32
- package/dist/swappers/zrx/zrxBuildTrade/zrxBuildTrade.d.ts +1 -2
- package/dist/swappers/zrx/zrxBuildTrade/zrxBuildTrade.js +11 -10
- package/dist/swappers/zrx/zrxExecuteTrade/zrxExecuteTrade.d.ts +1 -1
- package/dist/swappers/zrx/zrxExecuteTrade/zrxExecuteTrade.js +2 -4
- package/package.json +10 -10
|
@@ -1,46 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.setupZrxDeps =
|
|
29
|
+
exports.setupZrxDeps = void 0;
|
|
7
30
|
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
8
|
-
const
|
|
31
|
+
const unchained = __importStar(require("@shapeshiftoss/unchained-client"));
|
|
9
32
|
const web3_1 = __importDefault(require("web3"));
|
|
10
33
|
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
34
|
const setupZrxDeps = () => {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
const ethChainAdapter = new chain_adapters_1.ethereum.ChainAdapter({
|
|
36
|
+
providers: {
|
|
37
|
+
ws: new unchained.ws.Client('wss://dev-api.ethereum.shapeshift.com'),
|
|
38
|
+
http: new unchained.ethereum.V1Api(new unchained.ethereum.Configuration({
|
|
39
|
+
basePath: 'https://dev-api.ethereum.shapeshift.com'
|
|
40
|
+
}))
|
|
34
41
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
wsUrl: 'wss://api.ethereum.shapeshift.com'
|
|
38
|
-
}
|
|
39
|
-
};
|
|
42
|
+
rpcUrl: 'https://mainnet.infura.io/v3/d734c7eebcdf400185d7eb67322a7e57'
|
|
43
|
+
});
|
|
40
44
|
const ethNodeUrl = 'http://localhost:1000';
|
|
41
|
-
const adapterManager = new chain_adapters_1.ChainAdapterManager(unchainedUrls);
|
|
42
45
|
const web3Provider = new web3_1.default.providers.HttpProvider(ethNodeUrl);
|
|
43
|
-
|
|
44
|
-
return { web3Instance, adapterManager };
|
|
46
|
+
return { web3: new web3_1.default(web3Provider), adapter: ethChainAdapter };
|
|
45
47
|
};
|
|
46
48
|
exports.setupZrxDeps = setupZrxDeps;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SupportedChainIds } from '@shapeshiftoss/types';
|
|
2
1
|
import { BuildTradeInput, ZrxTrade } from '../../..';
|
|
3
2
|
import { ZrxSwapperDeps } from '../ZrxSwapper';
|
|
4
|
-
export declare function zrxBuildTrade({
|
|
3
|
+
export declare function zrxBuildTrade({ adapter, web3 }: ZrxSwapperDeps, input: BuildTradeInput): Promise<ZrxTrade>;
|
|
@@ -28,14 +28,16 @@ const caip_1 = require("@shapeshiftoss/caip");
|
|
|
28
28
|
const rax = __importStar(require("retry-axios"));
|
|
29
29
|
const __1 = require("../../..");
|
|
30
30
|
const bignumber_1 = require("../../utils/bignumber");
|
|
31
|
+
const constants_1 = require("../../utils/constants");
|
|
32
|
+
const helpers_1 = require("../../utils/helpers/helpers");
|
|
31
33
|
const erc20Allowance_abi_1 = require("../utils/abi/erc20Allowance-abi");
|
|
32
34
|
const applyAxiosRetry_1 = require("../utils/applyAxiosRetry");
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
+
const constants_2 = require("../utils/constants");
|
|
36
|
+
const helpers_2 = require("../utils/helpers/helpers");
|
|
35
37
|
const zrxService_1 = require("../utils/zrxService");
|
|
36
|
-
async function zrxBuildTrade({
|
|
38
|
+
async function zrxBuildTrade({ adapter, web3 }, input) {
|
|
37
39
|
var _a, _b, _c;
|
|
38
|
-
const { sellAsset, buyAsset, sellAmount, slippage,
|
|
40
|
+
const { sellAsset, buyAsset, sellAmount, slippage, sellAssetAccountNumber, buyAssetAccountNumber, wallet } = input;
|
|
39
41
|
try {
|
|
40
42
|
const { assetReference: buyAssetErc20Address, assetNamespace: buyAssetNamespace } = (0, caip_1.fromAssetId)(buyAsset.assetId);
|
|
41
43
|
const { assetReference: sellAssetErc20Address, assetNamespace: sellAssetNamespace } = (0, caip_1.fromAssetId)(sellAsset.assetId);
|
|
@@ -47,8 +49,7 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
47
49
|
details: { chainId: sellAsset.chainId }
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
|
-
const
|
|
51
|
-
const bip44Params = adapter.buildBIP44Params({ accountNumber: Number(buyAssetAccountId) });
|
|
52
|
+
const bip44Params = adapter.buildBIP44Params({ accountNumber: Number(buyAssetAccountNumber) });
|
|
52
53
|
const receiveAddress = await adapter.getAddress({ wallet, bip44Params });
|
|
53
54
|
const slippagePercentage = slippage ? (0, bignumber_1.bnOrZero)(slippage).div(100).toString() : constants_1.DEFAULT_SLIPPAGE;
|
|
54
55
|
/**
|
|
@@ -84,7 +85,7 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
84
85
|
takerAddress: receiveAddress,
|
|
85
86
|
slippagePercentage,
|
|
86
87
|
skipValidation: false,
|
|
87
|
-
affiliateAddress:
|
|
88
|
+
affiliateAddress: constants_2.AFFILIATE_ADDRESS
|
|
88
89
|
}
|
|
89
90
|
});
|
|
90
91
|
const { data } = quoteResponse;
|
|
@@ -92,7 +93,7 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
92
93
|
const trade = {
|
|
93
94
|
sellAsset,
|
|
94
95
|
buyAsset,
|
|
95
|
-
|
|
96
|
+
sellAssetAccountNumber,
|
|
96
97
|
receiveAddress,
|
|
97
98
|
rate: data.price,
|
|
98
99
|
depositAddress: data.to,
|
|
@@ -107,9 +108,9 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
|
|
|
107
108
|
txData: data.data,
|
|
108
109
|
sellAmount: data.sellAmount,
|
|
109
110
|
buyAmount: data.buyAmount,
|
|
110
|
-
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
|
|
111
112
|
};
|
|
112
|
-
const allowanceRequired = await (0,
|
|
113
|
+
const allowanceRequired = await (0, helpers_2.getAllowanceRequired)({
|
|
113
114
|
sellAsset,
|
|
114
115
|
allowanceContract: data.allowanceTarget,
|
|
115
116
|
receiveAddress,
|
|
@@ -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,17 +3,15 @@ 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
|
-
|
|
7
|
-
async function zrxExecuteTrade({ adapterManager }, { trade, wallet }) {
|
|
6
|
+
async function zrxExecuteTrade({ adapter }, { trade, wallet }) {
|
|
8
7
|
var _a, _b, _c, _d, _e, _f;
|
|
9
8
|
const zrxTrade = trade;
|
|
10
9
|
const { sellAsset } = zrxTrade;
|
|
11
10
|
try {
|
|
12
11
|
// value is 0 for erc20s
|
|
13
12
|
const value = sellAsset.assetId === 'eip155:1/slip44:60' ? trade.sellAmount : '0';
|
|
14
|
-
const adapter = await adapterManager.byChainId(sellAsset.chainId);
|
|
15
13
|
const bip44Params = adapter.buildBIP44Params({
|
|
16
|
-
accountNumber:
|
|
14
|
+
accountNumber: trade.sellAssetAccountNumber
|
|
17
15
|
});
|
|
18
16
|
const buildTxResponse = await adapter.buildSendTransaction({
|
|
19
17
|
value,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/swapper",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "7.0.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"
|