@xchainjs/xchain-mayachain-amm 4.1.17 → 4.1.19

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 CHANGED
@@ -1,15 +1,16 @@
1
- import { AssetAETH, ARBChain, Client, defaultArbParams } from '@xchainjs/xchain-arbitrum';
2
- import { ZECChain, Client as Client$1, defaultZECParams } from '@xchainjs/xchain-zcash';
3
- import { BTCChain, Client as Client$8, defaultBTCParams } from '@xchainjs/xchain-bitcoin';
4
- import { Network } from '@xchainjs/xchain-client';
5
- import { DASHChain, Client as Client$6, defaultDashParams } from '@xchainjs/xchain-dash';
6
- import { AssetETH, ETHChain, Client as Client$7, defaultEthParams } from '@xchainjs/xchain-ethereum';
1
+ import { AssetAETH, ARBChain, Client as Client$1, defaultArbParams } from '@xchainjs/xchain-arbitrum';
2
+ import { ADAChain, Client, defaultAdaParams } from '@xchainjs/xchain-cardano';
3
+ import { ZECChain, Client as Client$2, defaultZECParams } from '@xchainjs/xchain-zcash';
4
+ import { BTCChain, Client as Client$9, defaultBTCParams } from '@xchainjs/xchain-bitcoin';
5
+ import { Network, Protocol } from '@xchainjs/xchain-client';
6
+ import { DASHChain, Client as Client$7, defaultDashParams } from '@xchainjs/xchain-dash';
7
+ import { AssetETH, ETHChain, Client as Client$8, defaultEthParams } from '@xchainjs/xchain-ethereum';
7
8
  import { abi, MAX_APPROVAL } from '@xchainjs/xchain-evm';
8
- import { AssetKUJI, KUJIChain, Client as Client$5, defaultKujiParams } from '@xchainjs/xchain-kujira';
9
- import { MAYAChain, Client as Client$3, AssetCacao, CACAO_DECIMAL } from '@xchainjs/xchain-mayachain';
9
+ import { AssetKUJI, KUJIChain, Client as Client$6, defaultKujiParams } from '@xchainjs/xchain-kujira';
10
+ import { MAYAChain, Client as Client$4, AssetCacao, CACAO_DECIMAL } from '@xchainjs/xchain-mayachain';
10
11
  import { MayachainQuery } from '@xchainjs/xchain-mayachain-query';
11
- import { RadixChain, Client as Client$2, AssetXRD, generateAddressParam, generateBucketParam, generateStringParam } from '@xchainjs/xchain-radix';
12
- import { AssetRuneNative, THORChain, Client as Client$4 } from '@xchainjs/xchain-thorchain';
12
+ import { RadixChain, Client as Client$3, AssetXRD, generateAddressParam, generateBucketParam, generateStringParam } from '@xchainjs/xchain-radix';
13
+ import { AssetRuneNative, THORChain, Client as Client$5 } from '@xchainjs/xchain-thorchain';
13
14
  import { eqAsset, isSynthAsset, getContractAddressFromAsset, baseAmount, isTradeAsset, CryptoAmount, assetToString, AssetCryptoAmount, AssetType } from '@xchainjs/xchain-util';
14
15
  import { Wallet } from '@xchainjs/xchain-wallet';
15
16
  import { getAddress, ZeroAddress, Contract } from 'ethers';
@@ -94,23 +95,25 @@ const isRadixChain = (chain) => {
94
95
  const validateAddress = (network, chain, address) => {
95
96
  switch (chain) {
96
97
  case BTCChain:
97
- return new Client$8(Object.assign(Object.assign({}, defaultBTCParams), { network })).validateAddress(address);
98
+ return new Client$9(Object.assign(Object.assign({}, defaultBTCParams), { network })).validateAddress(address);
98
99
  case ETHChain:
99
- return new Client$7(Object.assign(Object.assign({}, defaultEthParams), { network })).validateAddress(address);
100
+ return new Client$8(Object.assign(Object.assign({}, defaultEthParams), { network })).validateAddress(address);
100
101
  case DASHChain:
101
- return new Client$6(Object.assign(Object.assign({}, defaultDashParams), { network })).validateAddress(address);
102
+ return new Client$7(Object.assign(Object.assign({}, defaultDashParams), { network })).validateAddress(address);
102
103
  case KUJIChain:
103
- return new Client$5(Object.assign(Object.assign({}, defaultKujiParams), { network })).validateAddress(address);
104
+ return new Client$6(Object.assign(Object.assign({}, defaultKujiParams), { network })).validateAddress(address);
104
105
  case THORChain:
105
- return new Client$4({ network }).validateAddress(address);
106
+ return new Client$5({ network }).validateAddress(address);
106
107
  case MAYAChain:
107
- return new Client$3({ network }).validateAddress(address);
108
+ return new Client$4({ network }).validateAddress(address);
108
109
  case RadixChain:
109
- return new Client$2({ network }).validateAddress(address);
110
+ return new Client$3({ network }).validateAddress(address);
110
111
  case ZECChain:
111
- return new Client$1(Object.assign(Object.assign({}, defaultZECParams), { network })).validateAddress(address);
112
+ return new Client$2(Object.assign(Object.assign({}, defaultZECParams), { network })).validateAddress(address);
112
113
  case ARBChain:
113
- return new Client(Object.assign(Object.assign({}, defaultArbParams), { network: Network.Mainnet })).validateAddress(address);
114
+ return new Client$1(Object.assign(Object.assign({}, defaultArbParams), { network: Network.Mainnet })).validateAddress(address);
115
+ case ADAChain:
116
+ return new Client(Object.assign(Object.assign({}, defaultAdaParams), { network })).validateAddress(address);
114
117
  default:
115
118
  throw Error('Unsupported chain');
116
119
  }
@@ -125,12 +128,13 @@ class MayachainAction {
125
128
  });
126
129
  }
127
130
  static makeProtocolAction(_a) {
128
- return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, memo }) {
131
+ return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, memo, walletIndex, }) {
129
132
  const hash = yield wallet.deposit({
130
133
  chain: MAYAChain,
131
134
  asset: assetAmount.asset,
132
135
  amount: assetAmount.baseAmount,
133
136
  memo,
137
+ walletIndex,
134
138
  });
135
139
  return {
136
140
  hash,
@@ -139,33 +143,32 @@ class MayachainAction {
139
143
  });
140
144
  }
141
145
  static makeNonProtocolAction(_a) {
142
- return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, recipient, memo, }) {
146
+ return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, recipient, memo, walletIndex, }) {
143
147
  // Non EVM actions and non Radix action
144
148
  if (!isProtocolEVMChain(assetAmount.asset.chain) && !eqAsset(assetAmount.asset, AssetXRD)) {
145
- if (isProtocolBFTChain(assetAmount.asset.chain)) {
149
+ // BFT/Cosmos chains and Cardano derive their fee internally (Cardano from on-chain
150
+ // protocol params) and do not accept a caller-supplied per-byte feeRate, unlike UTXO chains.
151
+ if (isProtocolBFTChain(assetAmount.asset.chain) || assetAmount.asset.chain === ADAChain) {
146
152
  const hash = yield wallet.transfer({
147
153
  asset: assetAmount.asset,
148
154
  amount: assetAmount.baseAmount,
149
155
  recipient,
150
156
  memo,
157
+ walletIndex,
151
158
  });
152
159
  return {
153
160
  hash,
154
161
  url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
155
162
  };
156
163
  }
157
- const feeRates = yield wallet.estimateTransferFees({
158
- asset: assetAmount.asset,
159
- amount: assetAmount.baseAmount,
160
- recipient,
161
- memo,
162
- });
164
+ const feeRates = yield wallet.getFeeRates(assetAmount.asset.chain, Protocol.MAYACHAIN);
163
165
  const hash = yield wallet.transfer({
164
166
  asset: assetAmount.asset,
165
167
  amount: assetAmount.baseAmount,
166
168
  recipient,
167
169
  memo,
168
170
  feeRate: feeRates.fast,
171
+ walletIndex,
169
172
  });
170
173
  return {
171
174
  hash,
@@ -193,6 +196,7 @@ class MayachainAction {
193
196
  generateStringParam(memo),
194
197
  ],
195
198
  },
199
+ walletIndex,
196
200
  });
197
201
  return {
198
202
  hash,
@@ -225,7 +229,8 @@ class MayachainAction {
225
229
  isMemoEncoded: true,
226
230
  };
227
231
  const gasLimit = yield wallet.estimateGasLimit(tx);
228
- const hash = yield wallet.transfer(Object.assign(Object.assign({}, tx), { gasLimit }));
232
+ const hash = yield wallet.transfer(Object.assign(Object.assign({}, tx), { gasLimit,
233
+ walletIndex }));
229
234
  return {
230
235
  hash,
231
236
  url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
@@ -261,15 +266,16 @@ class MayachainAMM {
261
266
  * @returns {MayachainAMM} Returns the MayachainAMM instance.
262
267
  */
263
268
  constructor(mayachainQuery = new MayachainQuery(), wallet = new Wallet({
264
- BTC: new Client$8(Object.assign(Object.assign({}, defaultBTCParams), { network: Network.Mainnet })),
265
- ETH: new Client$7(Object.assign(Object.assign({}, defaultEthParams), { network: Network.Mainnet })),
266
- DASH: new Client$6(Object.assign(Object.assign({}, defaultDashParams), { network: Network.Mainnet })),
267
- KUJI: new Client$5(Object.assign(Object.assign({}, defaultKujiParams), { network: Network.Mainnet })),
268
- ARB: new Client(Object.assign(Object.assign({}, defaultArbParams), { network: Network.Mainnet })),
269
- THOR: new Client$4({ network: Network.Mainnet }),
270
- MAYA: new Client$3({ network: Network.Mainnet }),
271
- XRD: new Client$2({ network: Network.Mainnet }),
272
- ZEC: new Client$1(Object.assign(Object.assign({}, defaultZECParams), { network: Network.Mainnet })),
269
+ BTC: new Client$9(Object.assign(Object.assign({}, defaultBTCParams), { network: Network.Mainnet })),
270
+ ETH: new Client$8(Object.assign(Object.assign({}, defaultEthParams), { network: Network.Mainnet })),
271
+ DASH: new Client$7(Object.assign(Object.assign({}, defaultDashParams), { network: Network.Mainnet })),
272
+ KUJI: new Client$6(Object.assign(Object.assign({}, defaultKujiParams), { network: Network.Mainnet })),
273
+ ARB: new Client$1(Object.assign(Object.assign({}, defaultArbParams), { network: Network.Mainnet })),
274
+ THOR: new Client$5({ network: Network.Mainnet }),
275
+ MAYA: new Client$4({ network: Network.Mainnet }),
276
+ XRD: new Client$3({ network: Network.Mainnet }),
277
+ ZEC: new Client$2(Object.assign(Object.assign({}, defaultZECParams), { network: Network.Mainnet })),
278
+ ADA: new Client(Object.assign(Object.assign({}, defaultAdaParams), { network: Network.Mainnet })),
273
279
  })) {
274
280
  this.mayachainQuery = mayachainQuery;
275
281
  this.wallet = wallet;
package/lib/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var xchainArbitrum = require('@xchainjs/xchain-arbitrum');
4
+ var xchainCardano = require('@xchainjs/xchain-cardano');
4
5
  var xchainZcash = require('@xchainjs/xchain-zcash');
5
6
  var xchainBitcoin = require('@xchainjs/xchain-bitcoin');
6
7
  var xchainClient = require('@xchainjs/xchain-client');
@@ -113,6 +114,8 @@ const validateAddress = (network, chain, address) => {
113
114
  return new xchainZcash.Client(Object.assign(Object.assign({}, xchainZcash.defaultZECParams), { network })).validateAddress(address);
114
115
  case xchainArbitrum.ARBChain:
115
116
  return new xchainArbitrum.Client(Object.assign(Object.assign({}, xchainArbitrum.defaultArbParams), { network: xchainClient.Network.Mainnet })).validateAddress(address);
117
+ case xchainCardano.ADAChain:
118
+ return new xchainCardano.Client(Object.assign(Object.assign({}, xchainCardano.defaultAdaParams), { network })).validateAddress(address);
116
119
  default:
117
120
  throw Error('Unsupported chain');
118
121
  }
@@ -127,12 +130,13 @@ class MayachainAction {
127
130
  });
128
131
  }
129
132
  static makeProtocolAction(_a) {
130
- return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, memo }) {
133
+ return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, memo, walletIndex, }) {
131
134
  const hash = yield wallet.deposit({
132
135
  chain: xchainMayachain.MAYAChain,
133
136
  asset: assetAmount.asset,
134
137
  amount: assetAmount.baseAmount,
135
138
  memo,
139
+ walletIndex,
136
140
  });
137
141
  return {
138
142
  hash,
@@ -141,33 +145,32 @@ class MayachainAction {
141
145
  });
142
146
  }
143
147
  static makeNonProtocolAction(_a) {
144
- return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, recipient, memo, }) {
148
+ return __awaiter(this, arguments, void 0, function* ({ wallet, assetAmount, recipient, memo, walletIndex, }) {
145
149
  // Non EVM actions and non Radix action
146
150
  if (!isProtocolEVMChain(assetAmount.asset.chain) && !xchainUtil.eqAsset(assetAmount.asset, xchainRadix.AssetXRD)) {
147
- if (isProtocolBFTChain(assetAmount.asset.chain)) {
151
+ // BFT/Cosmos chains and Cardano derive their fee internally (Cardano from on-chain
152
+ // protocol params) and do not accept a caller-supplied per-byte feeRate, unlike UTXO chains.
153
+ if (isProtocolBFTChain(assetAmount.asset.chain) || assetAmount.asset.chain === xchainCardano.ADAChain) {
148
154
  const hash = yield wallet.transfer({
149
155
  asset: assetAmount.asset,
150
156
  amount: assetAmount.baseAmount,
151
157
  recipient,
152
158
  memo,
159
+ walletIndex,
153
160
  });
154
161
  return {
155
162
  hash,
156
163
  url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
157
164
  };
158
165
  }
159
- const feeRates = yield wallet.estimateTransferFees({
160
- asset: assetAmount.asset,
161
- amount: assetAmount.baseAmount,
162
- recipient,
163
- memo,
164
- });
166
+ const feeRates = yield wallet.getFeeRates(assetAmount.asset.chain, xchainClient.Protocol.MAYACHAIN);
165
167
  const hash = yield wallet.transfer({
166
168
  asset: assetAmount.asset,
167
169
  amount: assetAmount.baseAmount,
168
170
  recipient,
169
171
  memo,
170
172
  feeRate: feeRates.fast,
173
+ walletIndex,
171
174
  });
172
175
  return {
173
176
  hash,
@@ -195,6 +198,7 @@ class MayachainAction {
195
198
  xchainRadix.generateStringParam(memo),
196
199
  ],
197
200
  },
201
+ walletIndex,
198
202
  });
199
203
  return {
200
204
  hash,
@@ -227,7 +231,8 @@ class MayachainAction {
227
231
  isMemoEncoded: true,
228
232
  };
229
233
  const gasLimit = yield wallet.estimateGasLimit(tx);
230
- const hash = yield wallet.transfer(Object.assign(Object.assign({}, tx), { gasLimit }));
234
+ const hash = yield wallet.transfer(Object.assign(Object.assign({}, tx), { gasLimit,
235
+ walletIndex }));
231
236
  return {
232
237
  hash,
233
238
  url: yield wallet.getExplorerTxUrl(assetAmount.asset.chain, hash),
@@ -272,6 +277,7 @@ class MayachainAMM {
272
277
  MAYA: new xchainMayachain.Client({ network: xchainClient.Network.Mainnet }),
273
278
  XRD: new xchainRadix.Client({ network: xchainClient.Network.Mainnet }),
274
279
  ZEC: new xchainZcash.Client(Object.assign(Object.assign({}, xchainZcash.defaultZECParams), { network: xchainClient.Network.Mainnet })),
280
+ ADA: new xchainCardano.Client(Object.assign(Object.assign({}, xchainCardano.defaultAdaParams), { network: xchainClient.Network.Mainnet })),
275
281
  })) {
276
282
  this.mayachainQuery = mayachainQuery;
277
283
  this.wallet = wallet;
@@ -7,11 +7,13 @@ export type NonProtocolActionParams = {
7
7
  assetAmount: CryptoAmount<Asset | TokenAsset>;
8
8
  recipient: Address;
9
9
  memo: string;
10
+ walletIndex?: number;
10
11
  };
11
12
  export type ProtocolActionParams = {
12
13
  wallet: Wallet;
13
14
  assetAmount: CryptoAmount<CompatibleAsset>;
14
15
  memo: string;
16
+ walletIndex?: number;
15
17
  };
16
18
  export type ActionParams = ProtocolActionParams | NonProtocolActionParams;
17
19
  export declare class MayachainAction {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xchainjs/xchain-mayachain-amm",
3
- "version": "4.1.17",
3
+ "version": "4.1.19",
4
4
  "description": "module that exposes estimating & swapping cryptocurrency assets on mayachain",
5
5
  "keywords": [
6
6
  "MAYAChain",
@@ -36,26 +36,27 @@
36
36
  "url": "https://github.com/xchainjs/xchainjs-lib/issues"
37
37
  },
38
38
  "dependencies": {
39
- "@xchainjs/xchain-arbitrum": "2.1.2",
40
- "@xchainjs/xchain-bitcoin": "2.2.3",
41
- "@xchainjs/xchain-client": "2.0.12",
39
+ "@xchainjs/xchain-arbitrum": "2.1.4",
40
+ "@xchainjs/xchain-bitcoin": "2.2.5",
41
+ "@xchainjs/xchain-cardano": "1.2.1",
42
+ "@xchainjs/xchain-client": "2.0.14",
42
43
  "@xchainjs/xchain-crypto": "1.0.6",
43
- "@xchainjs/xchain-dash": "2.2.3",
44
- "@xchainjs/xchain-ethereum": "2.0.17",
45
- "@xchainjs/xchain-evm": "2.0.16",
46
- "@xchainjs/xchain-kujira": "2.0.12",
47
- "@xchainjs/xchain-mayachain": "4.1.3",
48
- "@xchainjs/xchain-mayachain-query": "2.1.9",
49
- "@xchainjs/xchain-radix": "2.0.13",
50
- "@xchainjs/xchain-thorchain": "3.0.16",
44
+ "@xchainjs/xchain-dash": "2.2.5",
45
+ "@xchainjs/xchain-ethereum": "2.0.19",
46
+ "@xchainjs/xchain-evm": "2.0.18",
47
+ "@xchainjs/xchain-kujira": "2.0.14",
48
+ "@xchainjs/xchain-mayachain": "4.1.5",
49
+ "@xchainjs/xchain-mayachain-query": "2.1.11",
50
+ "@xchainjs/xchain-radix": "2.0.15",
51
+ "@xchainjs/xchain-thorchain": "3.0.18",
51
52
  "@xchainjs/xchain-util": "2.0.7",
52
- "@xchainjs/xchain-wallet": "2.0.26",
53
- "@xchainjs/xchain-zcash": "1.3.4",
53
+ "@xchainjs/xchain-wallet": "2.0.28",
54
+ "@xchainjs/xchain-zcash": "1.3.6",
54
55
  "ethers": "^6.14.3"
55
56
  },
56
57
  "devDependencies": {
57
58
  "@ledgerhq/hw-transport-node-hid": "^6.28.6",
58
- "axios": "1.15.0",
59
+ "axios": "1.16.1",
59
60
  "axios-mock-adapter": "^2.1.0"
60
61
  },
61
62
  "publishConfig": {