@shapeshiftoss/swapper 10.0.0 → 11.0.2
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/swappers/thorchain/ThorchainSwapper.js +2 -2
- package/dist/swappers/thorchain/buildThorTrade/buildThorTrade.js +2 -2
- package/dist/swappers/thorchain/getThorTradeQuote/getTradeQuote.js +10 -3
- package/dist/swappers/thorchain/thorTradeApprovalNeeded/thorTradeApprovalNeeded.js +1 -1
- package/package.json +3 -3
|
@@ -116,7 +116,7 @@ class ThorchainSwapper {
|
|
|
116
116
|
fn: 'executeTrade',
|
|
117
117
|
});
|
|
118
118
|
const { chainNamespace } = (0, caip_1.fromAssetId)(trade.sellAsset.assetId);
|
|
119
|
-
if (chainNamespace === caip_1.CHAIN_NAMESPACE.
|
|
119
|
+
if (chainNamespace === caip_1.CHAIN_NAMESPACE.Evm) {
|
|
120
120
|
const signedTx = await adapter.signTransaction({
|
|
121
121
|
txToSign: trade.txData,
|
|
122
122
|
wallet,
|
|
@@ -132,7 +132,7 @@ class ThorchainSwapper {
|
|
|
132
132
|
const txid = await adapter.broadcastTransaction(signedTx);
|
|
133
133
|
return { tradeId: txid };
|
|
134
134
|
}
|
|
135
|
-
else if (chainNamespace === caip_1.CHAIN_NAMESPACE.
|
|
135
|
+
else if (chainNamespace === caip_1.CHAIN_NAMESPACE.CosmosSdk) {
|
|
136
136
|
const signedTx = await adapter.signTransaction({
|
|
137
137
|
txToSign: trade.txData,
|
|
138
138
|
wallet,
|
|
@@ -22,7 +22,7 @@ const buildTrade = async ({ deps, input, }) => {
|
|
|
22
22
|
details: { sellAsset },
|
|
23
23
|
});
|
|
24
24
|
const { chainNamespace } = (0, caip_1.fromAssetId)(sellAsset.assetId);
|
|
25
|
-
if (chainNamespace === caip_1.CHAIN_NAMESPACE.
|
|
25
|
+
if (chainNamespace === caip_1.CHAIN_NAMESPACE.Evm) {
|
|
26
26
|
const sellAssetBip44Params = sellAdapter.buildBIP44Params({
|
|
27
27
|
accountNumber: sellAssetAccountNumber,
|
|
28
28
|
});
|
|
@@ -77,7 +77,7 @@ const buildTrade = async ({ deps, input, }) => {
|
|
|
77
77
|
txData: buildTxResponse.txToSign,
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
-
else if (chainNamespace === caip_1.CHAIN_NAMESPACE.
|
|
80
|
+
else if (chainNamespace === caip_1.CHAIN_NAMESPACE.CosmosSdk) {
|
|
81
81
|
const txData = await (0, cosmosTxData_1.cosmosTxData)({
|
|
82
82
|
deps,
|
|
83
83
|
sellAdapter: sellAdapter,
|
|
@@ -10,8 +10,10 @@ const constants_2 = require("../utils/constants");
|
|
|
10
10
|
const estimateTradeFee_1 = require("../utils/estimateTradeFee/estimateTradeFee");
|
|
11
11
|
const getThorTxData_2 = require("../utils/ethereum/utils/getThorTxData");
|
|
12
12
|
const getTradeRate_1 = require("../utils/getTradeRate/getTradeRate");
|
|
13
|
+
const getUsdRate_1 = require("../utils/getUsdRate/getUsdRate");
|
|
13
14
|
const getBtcTxFees_1 = require("../utils/txFeeHelpers/btcTxFees/getBtcTxFees");
|
|
14
15
|
const getEthTxFees_1 = require("../utils/txFeeHelpers/ethTxFees/getEthTxFees");
|
|
16
|
+
const MINIMUM_USD_TRADE_AMOUNT = (0, bignumber_1.bn)(1);
|
|
15
17
|
const getThorTradeQuote = async ({ deps, input }) => {
|
|
16
18
|
const { sellAsset, buyAsset, sellAmount, sellAssetAccountNumber, chainId, receiveAddress } = input;
|
|
17
19
|
try {
|
|
@@ -24,7 +26,12 @@ const getThorTradeQuote = async ({ deps, input }) => {
|
|
|
24
26
|
});
|
|
25
27
|
const rate = await (0, getTradeRate_1.getTradeRate)(sellAsset, buyAsset.assetId, sellAmount, deps);
|
|
26
28
|
const buyAmount = (0, bignumber_1.toBaseUnit)((0, bignumber_1.bnOrZero)((0, bignumber_1.fromBaseUnit)(sellAmount, sellAsset.precision)).times(rate), buyAsset.precision);
|
|
27
|
-
const
|
|
29
|
+
const estimatedTradeFee = await (0, estimateTradeFee_1.estimateTradeFee)(deps, buyAsset);
|
|
30
|
+
const buyAssetUsdRate = await (0, getUsdRate_1.getUsdRate)({ deps, input: { assetId: buyAsset.assetId } });
|
|
31
|
+
const minTradeFeeAmount = MINIMUM_USD_TRADE_AMOUNT.div(buyAssetUsdRate);
|
|
32
|
+
const tradeFee = minTradeFeeAmount.gt(estimatedTradeFee)
|
|
33
|
+
? minTradeFeeAmount.toString()
|
|
34
|
+
: estimatedTradeFee;
|
|
28
35
|
const sellAssetTradeFee = (0, bignumber_1.bnOrZero)(tradeFee).dividedBy((0, bignumber_1.bnOrZero)(rate));
|
|
29
36
|
// minimum is tradeFee padded by an amount to be sure they get something back
|
|
30
37
|
// usually it will be slightly more than the amount because sellAssetTradeFee is already a high estimate
|
|
@@ -42,7 +49,7 @@ const getThorTradeQuote = async ({ deps, input }) => {
|
|
|
42
49
|
};
|
|
43
50
|
const { chainNamespace } = (0, caip_1.fromAssetId)(sellAsset.assetId);
|
|
44
51
|
switch (chainNamespace) {
|
|
45
|
-
case caip_1.CHAIN_NAMESPACE.
|
|
52
|
+
case caip_1.CHAIN_NAMESPACE.Evm:
|
|
46
53
|
return (async () => {
|
|
47
54
|
const { router } = await (0, getThorTxData_2.getThorTxInfo)({
|
|
48
55
|
deps,
|
|
@@ -90,7 +97,7 @@ const getThorTradeQuote = async ({ deps, input }) => {
|
|
|
90
97
|
feeData,
|
|
91
98
|
};
|
|
92
99
|
})();
|
|
93
|
-
case caip_1.CHAIN_NAMESPACE.
|
|
100
|
+
case caip_1.CHAIN_NAMESPACE.CosmosSdk:
|
|
94
101
|
return (async () => {
|
|
95
102
|
const feeData = await sellAdapter.getFeeData({});
|
|
96
103
|
return {
|
|
@@ -14,7 +14,7 @@ const thorTradeApprovalNeeded = async ({ deps, input, }) => {
|
|
|
14
14
|
const { adapterManager, web3 } = deps;
|
|
15
15
|
const { assetReference: sellAssetErc20Address } = (0, caip_1.fromAssetId)(sellAsset.assetId);
|
|
16
16
|
const { chainNamespace } = (0, caip_1.fromChainId)(sellAsset.chainId);
|
|
17
|
-
if (chainNamespace !== caip_1.CHAIN_NAMESPACE.
|
|
17
|
+
if (chainNamespace !== caip_1.CHAIN_NAMESPACE.Evm)
|
|
18
18
|
return { approvalNeeded: false };
|
|
19
19
|
const accountNumber = quote.sellAssetAccountNumber;
|
|
20
20
|
const adapter = adapterManager.get(sellAsset.chainId);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/swapper",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.2",
|
|
4
4
|
"description": "An interface and implementations to trade coins via various protocols",
|
|
5
5
|
"repository": "https://github.com/shapeshift/lib",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@shapeshiftoss/asset-service": "^7.1.0",
|
|
34
|
-
"@shapeshiftoss/caip": "^
|
|
34
|
+
"@shapeshiftoss/caip": "^8.0.0",
|
|
35
35
|
"@shapeshiftoss/chain-adapters": "^7.13.0",
|
|
36
36
|
"@shapeshiftoss/errors": "^1.1.2",
|
|
37
37
|
"@shapeshiftoss/hdwallet-core": "^1.27.0",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@shapeshiftoss/asset-service": "^7.1.0",
|
|
42
|
-
"@shapeshiftoss/caip": "^
|
|
42
|
+
"@shapeshiftoss/caip": "^8.0.0",
|
|
43
43
|
"@shapeshiftoss/chain-adapters": "^7.13.0",
|
|
44
44
|
"@shapeshiftoss/errors": "^1.1.2",
|
|
45
45
|
"@shapeshiftoss/hdwallet-core": "^1.27.0",
|