@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 +44 -38
- package/lib/index.js +16 -10
- package/lib/mayachain-action.d.ts +2 -0
- package/package.json +16 -15
package/lib/index.esm.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { AssetAETH, ARBChain, Client, defaultArbParams } from '@xchainjs/xchain-arbitrum';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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$
|
|
9
|
-
import { MAYAChain, Client as Client$
|
|
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$
|
|
12
|
-
import { AssetRuneNative, THORChain, Client as Client$
|
|
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$
|
|
98
|
+
return new Client$9(Object.assign(Object.assign({}, defaultBTCParams), { network })).validateAddress(address);
|
|
98
99
|
case ETHChain:
|
|
99
|
-
return new Client$
|
|
100
|
+
return new Client$8(Object.assign(Object.assign({}, defaultEthParams), { network })).validateAddress(address);
|
|
100
101
|
case DASHChain:
|
|
101
|
-
return new Client$
|
|
102
|
+
return new Client$7(Object.assign(Object.assign({}, defaultDashParams), { network })).validateAddress(address);
|
|
102
103
|
case KUJIChain:
|
|
103
|
-
return new Client$
|
|
104
|
+
return new Client$6(Object.assign(Object.assign({}, defaultKujiParams), { network })).validateAddress(address);
|
|
104
105
|
case THORChain:
|
|
105
|
-
return new Client$
|
|
106
|
+
return new Client$5({ network }).validateAddress(address);
|
|
106
107
|
case MAYAChain:
|
|
107
|
-
return new Client$
|
|
108
|
+
return new Client$4({ network }).validateAddress(address);
|
|
108
109
|
case RadixChain:
|
|
109
|
-
return new Client$
|
|
110
|
+
return new Client$3({ network }).validateAddress(address);
|
|
110
111
|
case ZECChain:
|
|
111
|
-
return new Client$
|
|
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
|
-
|
|
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.
|
|
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$
|
|
265
|
-
ETH: new Client$
|
|
266
|
-
DASH: new Client$
|
|
267
|
-
KUJI: new Client$
|
|
268
|
-
ARB: new Client(Object.assign(Object.assign({}, defaultArbParams), { network: Network.Mainnet })),
|
|
269
|
-
THOR: new Client$
|
|
270
|
-
MAYA: new Client$
|
|
271
|
-
XRD: new Client$
|
|
272
|
-
ZEC: new Client$
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
40
|
-
"@xchainjs/xchain-bitcoin": "2.2.
|
|
41
|
-
"@xchainjs/xchain-
|
|
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.
|
|
44
|
-
"@xchainjs/xchain-ethereum": "2.0.
|
|
45
|
-
"@xchainjs/xchain-evm": "2.0.
|
|
46
|
-
"@xchainjs/xchain-kujira": "2.0.
|
|
47
|
-
"@xchainjs/xchain-mayachain": "4.1.
|
|
48
|
-
"@xchainjs/xchain-mayachain-query": "2.1.
|
|
49
|
-
"@xchainjs/xchain-radix": "2.0.
|
|
50
|
-
"@xchainjs/xchain-thorchain": "3.0.
|
|
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.
|
|
53
|
-
"@xchainjs/xchain-zcash": "1.3.
|
|
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.
|
|
59
|
+
"axios": "1.16.1",
|
|
59
60
|
"axios-mock-adapter": "^2.1.0"
|
|
60
61
|
},
|
|
61
62
|
"publishConfig": {
|