@shapeshiftoss/swapper 6.2.1 → 7.1.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.
Files changed (49) hide show
  1. package/dist/api.d.ts +25 -27
  2. package/dist/manager/SwapperManager.d.ts +6 -5
  3. package/dist/swappercli.js +35 -17
  4. package/dist/swappers/cow/CowSwapper.d.ts +8 -8
  5. package/dist/swappers/cow/CowSwapper.js +9 -4
  6. package/dist/swappers/cow/getCowSwapMinMax/getCowSwapMinMax.d.ts +4 -0
  7. package/dist/swappers/cow/getCowSwapMinMax/getCowSwapMinMax.js +28 -0
  8. package/dist/swappers/cow/utils/blacklist.d.ts +1 -0
  9. package/dist/swappers/cow/utils/blacklist.js +9 -0
  10. package/dist/swappers/cow/utils/constants.d.ts +1 -0
  11. package/dist/swappers/cow/utils/constants.js +4 -0
  12. package/dist/swappers/test/TestSwapper.d.ts +5 -5
  13. package/dist/swappers/thorchain/ThorchainSwapper.d.ts +7 -7
  14. package/dist/swappers/thorchain/ThorchainSwapper.js +9 -5
  15. package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.d.ts +7 -0
  16. package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.js +98 -0
  17. package/dist/swappers/thorchain/utils/constants.d.ts +1 -0
  18. package/dist/swappers/thorchain/utils/constants.js +4 -0
  19. package/dist/swappers/thorchain/utils/ethereum/makeTradeTx.d.ts +0 -3
  20. package/dist/swappers/thorchain/utils/ethereum/makeTradeTx.js +9 -50
  21. package/dist/swappers/thorchain/utils/ethereum/utils/getThorTxData.d.ts +15 -0
  22. package/dist/swappers/thorchain/utils/ethereum/utils/getThorTxData.js +55 -0
  23. package/dist/swappers/thorchain/utils/getTradeRate/getTradeRate.js +4 -4
  24. package/dist/swappers/thorchain/utils/txFeeHelpers/ethTxFees/getEthTxFees.d.ts +15 -0
  25. package/dist/swappers/thorchain/utils/txFeeHelpers/ethTxFees/getEthTxFees.js +44 -0
  26. package/dist/swappers/utils/bignumber.d.ts +2 -0
  27. package/dist/swappers/utils/bignumber.js +14 -1
  28. package/dist/swappers/utils/constants.d.ts +2 -0
  29. package/dist/swappers/utils/constants.js +5 -0
  30. package/dist/swappers/utils/helpers/helpers.d.ts +7 -0
  31. package/dist/swappers/utils/helpers/helpers.js +13 -0
  32. package/dist/swappers/utils/test-data/assets.js +0 -13
  33. package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.d.ts +1 -1
  34. package/dist/swappers/zrx/ZrxApprovalNeeded/ZrxApprovalNeeded.js +1 -2
  35. package/dist/swappers/zrx/ZrxApproveInfinite/ZrxApproveInfinite.d.ts +1 -2
  36. package/dist/swappers/zrx/ZrxApproveInfinite/ZrxApproveInfinite.js +2 -2
  37. package/dist/swappers/zrx/ZrxSwapper.d.ts +7 -7
  38. package/dist/swappers/zrx/getZrxTradeQuote/getZrxTradeQuote.js +4 -3
  39. package/dist/swappers/zrx/utils/constants.d.ts +0 -4
  40. package/dist/swappers/zrx/utils/constants.js +1 -5
  41. package/dist/swappers/zrx/utils/helpers/helpers.d.ts +7 -16
  42. package/dist/swappers/zrx/utils/helpers/helpers.js +2 -15
  43. package/dist/swappers/zrx/utils/test-data/setupZrxDeps.d.ts +3 -29
  44. package/dist/swappers/zrx/utils/test-data/setupZrxDeps.js +34 -32
  45. package/dist/swappers/zrx/zrxBuildTrade/zrxBuildTrade.d.ts +1 -2
  46. package/dist/swappers/zrx/zrxBuildTrade/zrxBuildTrade.js +9 -8
  47. package/dist/swappers/zrx/zrxExecuteTrade/zrxExecuteTrade.d.ts +1 -1
  48. package/dist/swappers/zrx/zrxExecuteTrade/zrxExecuteTrade.js +1 -2
  49. 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 = exports.chainAdapterMockFuncs = void 0;
29
+ exports.setupZrxDeps = void 0;
7
30
  const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
8
- const types_1 = require("@shapeshiftoss/types");
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 unchainedUrls = {
31
- [types_1.ChainTypes.Bitcoin]: {
32
- httpUrl: 'https://api.bitcoin.shapeshift.com',
33
- wsUrl: 'wss://api.bitcoin.shapeshift.com'
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
- [types_1.ChainTypes.Ethereum]: {
36
- httpUrl: 'https://api.ethereum.shapeshift.com',
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
- const web3Instance = new web3_1.default(web3Provider);
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({ adapterManager, web3 }: ZrxSwapperDeps, input: BuildTradeInput): Promise<ZrxTrade<SupportedChainIds>>;
3
+ export declare function zrxBuildTrade({ adapter, web3 }: ZrxSwapperDeps, input: BuildTradeInput): Promise<ZrxTrade>;
@@ -28,12 +28,14 @@ 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 constants_1 = require("../utils/constants");
34
- const helpers_1 = require("../utils/helpers/helpers");
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({ adapterManager, web3 }, input) {
38
+ async function zrxBuildTrade({ adapter, web3 }, input) {
37
39
  var _a, _b, _c;
38
40
  const { sellAsset, buyAsset, sellAmount, slippage, sellAssetAccountNumber, buyAssetAccountNumber, wallet } = input;
39
41
  try {
@@ -47,8 +49,7 @@ async function zrxBuildTrade({ adapterManager, web3 }, input) {
47
49
  details: { chainId: sellAsset.chainId }
48
50
  });
49
51
  }
50
- const adapter = await adapterManager.byChainId(buyAsset.chainId);
51
- const bip44Params = adapter.buildBIP44Params({ accountNumber: buyAssetAccountNumber });
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: constants_1.AFFILIATE_ADDRESS
88
+ affiliateAddress: constants_2.AFFILIATE_ADDRESS
88
89
  }
89
90
  });
90
91
  const { data } = quoteResponse;
@@ -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)) || constants_1.DEFAULT_SOURCE
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, helpers_1.getAllowanceRequired)({
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({ adapterManager }: ZrxSwapperDeps, { trade, wallet }: ExecuteTradeInput<'eip155:1'>): Promise<TradeResult>;
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({ adapterManager }, { trade, wallet }) {
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": "6.2.1",
4
- "description": "TODO: description",
3
+ "version": "7.1.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": "^4.6.0",
34
- "@shapeshiftoss/caip": "^5.2.2",
35
- "@shapeshiftoss/chain-adapters": "^5.0.0",
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": "^4.4.0"
38
+ "@shapeshiftoss/types": "^5.0.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@shapeshiftoss/asset-service": "^4.6.0",
42
- "@shapeshiftoss/caip": "^5.2.2",
43
- "@shapeshiftoss/chain-adapters": "^5.0.0",
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": "^4.4.0",
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"