@xchainjs/xchain-mayachain-amm 3.0.5 → 3.0.7
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/lib/index.esm.js +63 -23
- package/lib/index.js +44 -4
- package/lib/utils.d.ts +6 -0
- package/package.json +12 -11
package/lib/index.esm.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { AssetAETH, Client as Client$
|
|
2
|
-
import { BTCChain, Client as Client$
|
|
1
|
+
import { AssetAETH, Client as Client$7, defaultArbParams } from '@xchainjs/xchain-arbitrum';
|
|
2
|
+
import { BTCChain, Client as Client$6, defaultBTCParams } from '@xchainjs/xchain-bitcoin';
|
|
3
3
|
import { Network } from '@xchainjs/xchain-client';
|
|
4
|
-
import { DASHChain, Client as Client$
|
|
5
|
-
import { AssetETH as AssetETH$1, ETHChain, Client as Client$
|
|
4
|
+
import { DASHChain, Client as Client$4, defaultDashParams } from '@xchainjs/xchain-dash';
|
|
5
|
+
import { AssetETH as AssetETH$1, ETHChain, Client as Client$5, defaultEthParams } from '@xchainjs/xchain-ethereum';
|
|
6
6
|
import 'crypto';
|
|
7
7
|
import require$$0$4$1 from 'buffer';
|
|
8
8
|
import { ethers } from 'ethers';
|
|
9
|
-
import { KUJIChain, Client as Client$
|
|
10
|
-
import { MAYAChain, Client, AssetCacao, CACAO_DECIMAL } from '@xchainjs/xchain-mayachain';
|
|
9
|
+
import { KUJIChain, Client as Client$3, defaultKujiParams, AssetKUJI } from '@xchainjs/xchain-kujira';
|
|
10
|
+
import { MAYAChain, Client as Client$1, AssetCacao, CACAO_DECIMAL } from '@xchainjs/xchain-mayachain';
|
|
11
11
|
import { MayachainQuery } from '@xchainjs/xchain-mayachain-query';
|
|
12
|
-
import {
|
|
12
|
+
import { RadixChain, Client, generateAddressParam, AssetXRD, generateBucketParam, generateStringParam } from '@xchainjs/xchain-radix';
|
|
13
|
+
import { THORChain, Client as Client$2, AssetRuneNative } from '@xchainjs/xchain-thorchain';
|
|
13
14
|
import { Wallet as Wallet$1 } from '@xchainjs/xchain-wallet';
|
|
14
15
|
|
|
15
16
|
/******************************************************************************
|
|
@@ -89608,19 +89609,29 @@ const isTokenCryptoAmount = (amount) => {
|
|
|
89608
89609
|
const isProtocolBFTChain = (chain) => {
|
|
89609
89610
|
return [AssetKUJI.chain, AssetRuneNative.chain].includes(chain);
|
|
89610
89611
|
};
|
|
89612
|
+
/**
|
|
89613
|
+
* Check if a chain is Radix chain
|
|
89614
|
+
* @param {Chain} chain to check
|
|
89615
|
+
* @returns true if chain is Radix, otherwise, false
|
|
89616
|
+
*/
|
|
89617
|
+
const isRadixChain = (chain) => {
|
|
89618
|
+
return chain === RadixChain;
|
|
89619
|
+
};
|
|
89611
89620
|
const validateAddress = (network, chain, address) => {
|
|
89612
89621
|
switch (chain) {
|
|
89613
89622
|
case BTCChain:
|
|
89614
|
-
return new Client$
|
|
89623
|
+
return new Client$6(Object.assign(Object.assign({}, defaultBTCParams), { network })).validateAddress(address);
|
|
89615
89624
|
case ETHChain:
|
|
89616
|
-
return new Client$
|
|
89625
|
+
return new Client$5(Object.assign(Object.assign({}, defaultEthParams), { network })).validateAddress(address);
|
|
89617
89626
|
case DASHChain:
|
|
89618
|
-
return new Client$
|
|
89627
|
+
return new Client$4(Object.assign(Object.assign({}, defaultDashParams), { network })).validateAddress(address);
|
|
89619
89628
|
case KUJIChain:
|
|
89620
|
-
return new Client$
|
|
89629
|
+
return new Client$3(Object.assign(Object.assign({}, defaultKujiParams), { network })).validateAddress(address);
|
|
89621
89630
|
case THORChain:
|
|
89622
|
-
return new Client$
|
|
89631
|
+
return new Client$2({ network }).validateAddress(address);
|
|
89623
89632
|
case MAYAChain:
|
|
89633
|
+
return new Client$1({ network }).validateAddress(address);
|
|
89634
|
+
case RadixChain:
|
|
89624
89635
|
return new Client({ network }).validateAddress(address);
|
|
89625
89636
|
default:
|
|
89626
89637
|
throw Error('Unsupported chain');
|
|
@@ -89651,8 +89662,8 @@ class MayachainAction {
|
|
|
89651
89662
|
}
|
|
89652
89663
|
static makeNonProtocolAction({ wallet, assetAmount, recipient, memo, }) {
|
|
89653
89664
|
return __awaiter$8(this, void 0, void 0, function* () {
|
|
89654
|
-
// Non EVM actions
|
|
89655
|
-
if (!isProtocolEVMChain(assetAmount.asset.chain)) {
|
|
89665
|
+
// Non EVM actions and non Radix action
|
|
89666
|
+
if (!isProtocolEVMChain(assetAmount.asset.chain) && !eqAsset(assetAmount.asset, AssetXRD)) {
|
|
89656
89667
|
if (isProtocolBFTChain(assetAmount.asset.chain)) {
|
|
89657
89668
|
const hash = yield wallet.transfer({
|
|
89658
89669
|
asset: assetAmount.asset,
|
|
@@ -89665,7 +89676,12 @@ class MayachainAction {
|
|
|
89665
89676
|
url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
|
|
89666
89677
|
};
|
|
89667
89678
|
}
|
|
89668
|
-
const feeRates = yield wallet.
|
|
89679
|
+
const feeRates = yield wallet.estimateTransferFees({
|
|
89680
|
+
asset: assetAmount.asset,
|
|
89681
|
+
amount: assetAmount.baseAmount,
|
|
89682
|
+
recipient,
|
|
89683
|
+
memo,
|
|
89684
|
+
});
|
|
89669
89685
|
const hash = yield wallet.transfer({
|
|
89670
89686
|
asset: assetAmount.asset,
|
|
89671
89687
|
amount: assetAmount.baseAmount,
|
|
@@ -89678,11 +89694,34 @@ class MayachainAction {
|
|
|
89678
89694
|
url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
|
|
89679
89695
|
};
|
|
89680
89696
|
}
|
|
89681
|
-
// EVM actions
|
|
89697
|
+
// EVM actions and Radix go through the router
|
|
89682
89698
|
const mayachainQuery = new MayachainQuery();
|
|
89683
89699
|
const inboundDetails = yield mayachainQuery.getChainInboundDetails(assetAmount.asset.chain);
|
|
89684
89700
|
if (!inboundDetails.router)
|
|
89685
89701
|
throw Error(`Unknown router for ${assetAmount.asset.chain} chain`);
|
|
89702
|
+
if (isRadixChain(assetAmount.asset.chain)) {
|
|
89703
|
+
// Radix
|
|
89704
|
+
const hash = yield wallet.transfer({
|
|
89705
|
+
asset: assetAmount.asset,
|
|
89706
|
+
recipient: inboundDetails.router,
|
|
89707
|
+
amount: assetAmount.baseAmount,
|
|
89708
|
+
methodToCall: {
|
|
89709
|
+
address: inboundDetails.router,
|
|
89710
|
+
methodName: 'user_deposit',
|
|
89711
|
+
params: [
|
|
89712
|
+
generateAddressParam(yield wallet.getAddress(AssetXRD.chain)),
|
|
89713
|
+
generateAddressParam(recipient),
|
|
89714
|
+
generateBucketParam(0),
|
|
89715
|
+
generateStringParam(memo),
|
|
89716
|
+
],
|
|
89717
|
+
},
|
|
89718
|
+
});
|
|
89719
|
+
return {
|
|
89720
|
+
hash,
|
|
89721
|
+
url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
|
|
89722
|
+
};
|
|
89723
|
+
}
|
|
89724
|
+
// Evm
|
|
89686
89725
|
const isERC20 = isProtocolERC20Asset(assetAmount.asset);
|
|
89687
89726
|
const checkSummedContractAddress = isERC20
|
|
89688
89727
|
? ethers.utils.getAddress(getContractAddressFromAsset(assetAmount.asset))
|
|
@@ -89739,13 +89778,14 @@ class MayachainAMM {
|
|
|
89739
89778
|
* @returns {MayachainAMM} Returns the MayachainAMM instance.
|
|
89740
89779
|
*/
|
|
89741
89780
|
constructor(mayachainQuery = new MayachainQuery(), wallet = new Wallet$1({
|
|
89742
|
-
BTC: new Client$
|
|
89743
|
-
ETH: new Client$
|
|
89744
|
-
DASH: new Client$
|
|
89745
|
-
KUJI: new Client$
|
|
89746
|
-
ARB: new Client$
|
|
89747
|
-
THOR: new Client$
|
|
89748
|
-
MAYA: new Client({ network: Network.Mainnet }),
|
|
89781
|
+
BTC: new Client$6(Object.assign(Object.assign({}, defaultBTCParams), { network: Network.Mainnet })),
|
|
89782
|
+
ETH: new Client$5(Object.assign(Object.assign({}, defaultEthParams), { network: Network.Mainnet })),
|
|
89783
|
+
DASH: new Client$4(Object.assign(Object.assign({}, defaultDashParams), { network: Network.Mainnet })),
|
|
89784
|
+
KUJI: new Client$3(Object.assign(Object.assign({}, defaultKujiParams), { network: Network.Mainnet })),
|
|
89785
|
+
ARB: new Client$7(Object.assign(Object.assign({}, defaultArbParams), { network: Network.Mainnet })),
|
|
89786
|
+
THOR: new Client$2({ network: Network.Mainnet }),
|
|
89787
|
+
MAYA: new Client$1({ network: Network.Mainnet }),
|
|
89788
|
+
XRD: new Client({ network: Network.Mainnet }),
|
|
89749
89789
|
})) {
|
|
89750
89790
|
this.mayachainQuery = mayachainQuery;
|
|
89751
89791
|
this.wallet = wallet;
|
package/lib/index.js
CHANGED
|
@@ -13,6 +13,7 @@ var ethers = require('ethers');
|
|
|
13
13
|
var xchainKujira = require('@xchainjs/xchain-kujira');
|
|
14
14
|
var xchainMayachain = require('@xchainjs/xchain-mayachain');
|
|
15
15
|
var xchainMayachainQuery = require('@xchainjs/xchain-mayachain-query');
|
|
16
|
+
var xchainRadix = require('@xchainjs/xchain-radix');
|
|
16
17
|
var xchainThorchain = require('@xchainjs/xchain-thorchain');
|
|
17
18
|
var xchainWallet = require('@xchainjs/xchain-wallet');
|
|
18
19
|
|
|
@@ -89616,6 +89617,14 @@ const isTokenCryptoAmount = (amount) => {
|
|
|
89616
89617
|
const isProtocolBFTChain = (chain) => {
|
|
89617
89618
|
return [xchainKujira.AssetKUJI.chain, xchainThorchain.AssetRuneNative.chain].includes(chain);
|
|
89618
89619
|
};
|
|
89620
|
+
/**
|
|
89621
|
+
* Check if a chain is Radix chain
|
|
89622
|
+
* @param {Chain} chain to check
|
|
89623
|
+
* @returns true if chain is Radix, otherwise, false
|
|
89624
|
+
*/
|
|
89625
|
+
const isRadixChain = (chain) => {
|
|
89626
|
+
return chain === xchainRadix.RadixChain;
|
|
89627
|
+
};
|
|
89619
89628
|
const validateAddress = (network, chain, address) => {
|
|
89620
89629
|
switch (chain) {
|
|
89621
89630
|
case xchainBitcoin.BTCChain:
|
|
@@ -89630,6 +89639,8 @@ const validateAddress = (network, chain, address) => {
|
|
|
89630
89639
|
return new xchainThorchain.Client({ network }).validateAddress(address);
|
|
89631
89640
|
case xchainMayachain.MAYAChain:
|
|
89632
89641
|
return new xchainMayachain.Client({ network }).validateAddress(address);
|
|
89642
|
+
case xchainRadix.RadixChain:
|
|
89643
|
+
return new xchainRadix.Client({ network }).validateAddress(address);
|
|
89633
89644
|
default:
|
|
89634
89645
|
throw Error('Unsupported chain');
|
|
89635
89646
|
}
|
|
@@ -89659,8 +89670,8 @@ class MayachainAction {
|
|
|
89659
89670
|
}
|
|
89660
89671
|
static makeNonProtocolAction({ wallet, assetAmount, recipient, memo, }) {
|
|
89661
89672
|
return __awaiter$8(this, void 0, void 0, function* () {
|
|
89662
|
-
// Non EVM actions
|
|
89663
|
-
if (!isProtocolEVMChain(assetAmount.asset.chain)) {
|
|
89673
|
+
// Non EVM actions and non Radix action
|
|
89674
|
+
if (!isProtocolEVMChain(assetAmount.asset.chain) && !eqAsset(assetAmount.asset, xchainRadix.AssetXRD)) {
|
|
89664
89675
|
if (isProtocolBFTChain(assetAmount.asset.chain)) {
|
|
89665
89676
|
const hash = yield wallet.transfer({
|
|
89666
89677
|
asset: assetAmount.asset,
|
|
@@ -89673,7 +89684,12 @@ class MayachainAction {
|
|
|
89673
89684
|
url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
|
|
89674
89685
|
};
|
|
89675
89686
|
}
|
|
89676
|
-
const feeRates = yield wallet.
|
|
89687
|
+
const feeRates = yield wallet.estimateTransferFees({
|
|
89688
|
+
asset: assetAmount.asset,
|
|
89689
|
+
amount: assetAmount.baseAmount,
|
|
89690
|
+
recipient,
|
|
89691
|
+
memo,
|
|
89692
|
+
});
|
|
89677
89693
|
const hash = yield wallet.transfer({
|
|
89678
89694
|
asset: assetAmount.asset,
|
|
89679
89695
|
amount: assetAmount.baseAmount,
|
|
@@ -89686,11 +89702,34 @@ class MayachainAction {
|
|
|
89686
89702
|
url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
|
|
89687
89703
|
};
|
|
89688
89704
|
}
|
|
89689
|
-
// EVM actions
|
|
89705
|
+
// EVM actions and Radix go through the router
|
|
89690
89706
|
const mayachainQuery = new xchainMayachainQuery.MayachainQuery();
|
|
89691
89707
|
const inboundDetails = yield mayachainQuery.getChainInboundDetails(assetAmount.asset.chain);
|
|
89692
89708
|
if (!inboundDetails.router)
|
|
89693
89709
|
throw Error(`Unknown router for ${assetAmount.asset.chain} chain`);
|
|
89710
|
+
if (isRadixChain(assetAmount.asset.chain)) {
|
|
89711
|
+
// Radix
|
|
89712
|
+
const hash = yield wallet.transfer({
|
|
89713
|
+
asset: assetAmount.asset,
|
|
89714
|
+
recipient: inboundDetails.router,
|
|
89715
|
+
amount: assetAmount.baseAmount,
|
|
89716
|
+
methodToCall: {
|
|
89717
|
+
address: inboundDetails.router,
|
|
89718
|
+
methodName: 'user_deposit',
|
|
89719
|
+
params: [
|
|
89720
|
+
xchainRadix.generateAddressParam(yield wallet.getAddress(xchainRadix.AssetXRD.chain)),
|
|
89721
|
+
xchainRadix.generateAddressParam(recipient),
|
|
89722
|
+
xchainRadix.generateBucketParam(0),
|
|
89723
|
+
xchainRadix.generateStringParam(memo),
|
|
89724
|
+
],
|
|
89725
|
+
},
|
|
89726
|
+
});
|
|
89727
|
+
return {
|
|
89728
|
+
hash,
|
|
89729
|
+
url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
|
|
89730
|
+
};
|
|
89731
|
+
}
|
|
89732
|
+
// Evm
|
|
89694
89733
|
const isERC20 = isProtocolERC20Asset(assetAmount.asset);
|
|
89695
89734
|
const checkSummedContractAddress = isERC20
|
|
89696
89735
|
? ethers.ethers.utils.getAddress(getContractAddressFromAsset(assetAmount.asset))
|
|
@@ -89754,6 +89793,7 @@ class MayachainAMM {
|
|
|
89754
89793
|
ARB: new xchainArbitrum.Client(Object.assign(Object.assign({}, xchainArbitrum.defaultArbParams), { network: xchainClient.Network.Mainnet })),
|
|
89755
89794
|
THOR: new xchainThorchain.Client({ network: xchainClient.Network.Mainnet }),
|
|
89756
89795
|
MAYA: new xchainMayachain.Client({ network: xchainClient.Network.Mainnet }),
|
|
89796
|
+
XRD: new xchainRadix.Client({ network: xchainClient.Network.Mainnet }),
|
|
89757
89797
|
})) {
|
|
89758
89798
|
this.mayachainQuery = mayachainQuery;
|
|
89759
89799
|
this.wallet = wallet;
|
package/lib/utils.d.ts
CHANGED
|
@@ -25,4 +25,10 @@ export declare const isTokenCryptoAmount: (amount: CryptoAmount) => amount is To
|
|
|
25
25
|
* @returns true if chain is EVM, otherwise, false
|
|
26
26
|
*/
|
|
27
27
|
export declare const isProtocolBFTChain: (chain: Chain) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check if a chain is Radix chain
|
|
30
|
+
* @param {Chain} chain to check
|
|
31
|
+
* @returns true if chain is Radix, otherwise, false
|
|
32
|
+
*/
|
|
33
|
+
export declare const isRadixChain: (chain: Chain) => boolean;
|
|
28
34
|
export declare const validateAddress: (network: Network, chain: Chain, address: Address) => boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xchainjs/xchain-mayachain-amm",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.7",
|
|
4
4
|
"description": "module that exposes estimating & swapping cryptocurrency assets on mayachain",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"MAYAChain",
|
|
@@ -36,16 +36,17 @@
|
|
|
36
36
|
"url": "https://github.com/xchainjs/xchainjs-lib/issues"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@xchainjs/xchain-arbitrum": "1.0.
|
|
40
|
-
"@xchainjs/xchain-bitcoin": "1.0.
|
|
41
|
-
"@xchainjs/xchain-client": "1.0.
|
|
42
|
-
"@xchainjs/xchain-dash": "1.0.
|
|
43
|
-
"@xchainjs/xchain-ethereum": "1.0.
|
|
44
|
-
"@xchainjs/xchain-kujira": "1.0.
|
|
45
|
-
"@xchainjs/xchain-mayachain": "2.0.
|
|
46
|
-
"@xchainjs/xchain-mayachain-query": "1.0.
|
|
47
|
-
"@xchainjs/xchain-
|
|
48
|
-
"@xchainjs/xchain-
|
|
39
|
+
"@xchainjs/xchain-arbitrum": "1.0.6",
|
|
40
|
+
"@xchainjs/xchain-bitcoin": "1.0.3",
|
|
41
|
+
"@xchainjs/xchain-client": "1.0.3",
|
|
42
|
+
"@xchainjs/xchain-dash": "1.0.3",
|
|
43
|
+
"@xchainjs/xchain-ethereum": "1.0.6",
|
|
44
|
+
"@xchainjs/xchain-kujira": "1.0.4",
|
|
45
|
+
"@xchainjs/xchain-mayachain": "2.0.4",
|
|
46
|
+
"@xchainjs/xchain-mayachain-query": "1.0.4",
|
|
47
|
+
"@xchainjs/xchain-radix": "1.1.0",
|
|
48
|
+
"@xchainjs/xchain-thorchain": "2.0.5",
|
|
49
|
+
"@xchainjs/xchain-wallet": "1.0.7",
|
|
49
50
|
"ethers": "5.7.2"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|