@axelar-network/axelarjs-sdk 0.5.0-alpha.21 → 0.5.0-alpha.22
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/README.md +50 -181
- package/dist/src/constants/index.d.ts +3 -0
- package/dist/src/constants/index.d.ts.map +1 -1
- package/dist/src/constants/index.js +12 -0
- package/dist/src/constants/index.js.map +1 -1
- package/dist/src/libs/AxelarAssetTransfer.d.ts +0 -2
- package/dist/src/libs/AxelarAssetTransfer.d.ts.map +1 -1
- package/dist/src/libs/AxelarAssetTransfer.js +0 -36
- package/dist/src/libs/AxelarAssetTransfer.js.map +1 -1
- package/dist/src/libs/AxelarQueryAPI.d.ts +55 -0
- package/dist/src/libs/AxelarQueryAPI.d.ts.map +1 -0
- package/dist/src/libs/AxelarQueryAPI.js +180 -0
- package/dist/src/libs/AxelarQueryAPI.js.map +1 -0
- package/dist/src/libs/test/AxelarQueryAPI.spec.d.ts +2 -0
- package/dist/src/libs/test/AxelarQueryAPI.spec.d.ts.map +1 -0
- package/dist/src/libs/test/AxelarQueryAPI.spec.js +141 -0
- package/dist/src/libs/test/AxelarQueryAPI.spec.js.map +1 -0
- package/dist/src/libs/types/index.d.ts +20 -0
- package/dist/src/libs/types/index.d.ts.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,205 +2,74 @@
|
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
The AxelarJS SDK
|
|
5
|
+
The AxelarJS SDK can be used to make cross-chain token transfers using the Axelar network. You will use this method to send tokens across networks if you want to allow token transfers from wallets that don't know anything about Axelar. Example: Withdrawal from a centralized exchange.
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Get a deposit address
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
A _deposit address_ is a special address created and monitored by Axelar relayer services. It is similar to how centralized exchanges generate a monitored one-time deposit address that facilitate your token transfers.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Deposit address workflow:
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
1. Generate a deposit address.
|
|
14
|
+
2. User sends tokens to the deposit address. Examples: withdrawal from a centralized exchange, transaction from your favorite wallet software.
|
|
15
|
+
3. Axelar relayers observe the transaction on the source chain and complete it on the destination chain.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
#### Install the AxelarJS SDK
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
We'll use the AxelarJS SDK, which is a `npm` dependency that empowers developers to make requests into the Axelar network from a frontend. The Axelar SDK provides a wrapper for API calls that you can use to generate a deposit address.
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-

|
|
24
|
-
|
|
25
|
-
Any request from the JS SDK is routed through a node REST server that redirects requests through a coordinated collection of microservices controlled by Axelar.
|
|
26
|
-
|
|
27
|
-
These microservices facilitate the relay of cross-chain transactions that run on top of the Axelar network.
|
|
28
|
-
|
|
29
|
-
## Security mesures
|
|
30
|
-
|
|
31
|
-
AxelarJS employs security measures to protect our services from abuse. Currently every invocation of `getDepositAddress` requires frontend users to connect to a Web3 wallet and sign a message with a one-time code. Invocations to the API are also rate limited.
|
|
32
|
-
|
|
33
|
-
## Installation
|
|
21
|
+
Install the Axelar SDK:
|
|
34
22
|
|
|
35
23
|
```bash
|
|
36
|
-
npm i
|
|
24
|
+
npm i @axelar-network/axelarjs-sdk
|
|
37
25
|
```
|
|
38
26
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
Set up the library consumer:
|
|
42
|
-
|
|
43
|
-
```typescript
|
|
44
|
-
import {
|
|
45
|
-
AssetInfoWithTrace,
|
|
46
|
-
AssetTransferObject,
|
|
47
|
-
CallbackStatus,
|
|
48
|
-
TransferAssetBridge,
|
|
49
|
-
} from "@axelar-network/axelarjs-sdk";
|
|
50
|
-
|
|
51
|
-
export class AxelarAPI {
|
|
52
|
-
private environment: string;
|
|
53
|
-
private axelarJsSDK: TransferAssetBridge;
|
|
54
|
-
|
|
55
|
-
constructor(environment: string) {
|
|
56
|
-
this.environment = environment;
|
|
57
|
-
this.axelarJsSDK = new TransferAssetBridge(environment);
|
|
58
|
-
}
|
|
27
|
+
#### Generate a deposit address using the SDK
|
|
59
28
|
|
|
60
|
-
|
|
61
|
-
sigerAddress: string
|
|
62
|
-
): Promise<{ validationMsg: string; otc: string }> {
|
|
63
|
-
try {
|
|
64
|
-
return await this.axelarJsSDK.getOneTimeCode(sigerAddress);
|
|
65
|
-
} catch (e: any) {
|
|
66
|
-
throw e;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
29
|
+
Call `getDepositAddress`:
|
|
69
30
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
31
|
+
```tsx
|
|
32
|
+
async getDepositAddress(
|
|
33
|
+
fromChain: string, // source chain
|
|
34
|
+
toChain: string, // destination chain
|
|
35
|
+
destinationAddress: string, // destination address to transfer the token to
|
|
36
|
+
asset: string, // common key of the asset
|
|
37
|
+
options?: {
|
|
38
|
+
_traceId: string;
|
|
79
39
|
}
|
|
80
|
-
}
|
|
40
|
+
): Promise<string> {}
|
|
81
41
|
```
|
|
82
42
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
const
|
|
87
|
-
"testnet"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const getNoncedMessageToSign = async () => {
|
|
97
|
-
const signerAuthorityAddress = await signerAuthority.getAddress();
|
|
98
|
-
const { validationMsg, otc } = await api.getOneTimeMessageToSign(
|
|
99
|
-
signerAuthorityAddress
|
|
100
|
-
);
|
|
101
|
-
return { validationMsg, otc };
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
const promptUserToSignMessage = async () => {
|
|
105
|
-
const { validationMsg, otc } = await getNoncedMessageToSign();
|
|
106
|
-
const signature = await signerAuthority.signMessage(validationMsg);
|
|
107
|
-
|
|
108
|
-
return {
|
|
109
|
-
otc,
|
|
110
|
-
publicAddr: await signerAuthority.getAddress(),
|
|
111
|
-
signature,
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
const getDepositAddress = async (destinationAddress?: string) => {
|
|
116
|
-
const { otc, publicAddr, signature } = await promptUserToSignMessage();
|
|
117
|
-
const parameters: AssetTransferObject = getParameters(
|
|
118
|
-
destinationAddress || publicAddr
|
|
119
|
-
); // wherever you specify for the destination address on the destination chain
|
|
120
|
-
parameters.otc = otc;
|
|
121
|
-
parameters.publicAddr = publicAddr;
|
|
122
|
-
parameters.signature = signature;
|
|
123
|
-
|
|
124
|
-
const linkAddress = await api.getDepositAddress(parameters);
|
|
125
|
-
|
|
126
|
-
return linkAddress;
|
|
127
|
-
};
|
|
43
|
+
Example: Cosmos-to-EVM (Terra to Avalanche):
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
const sdk = new AxelarAssetTransfer({
|
|
47
|
+
environment: "testnet",
|
|
48
|
+
auth: "local",
|
|
49
|
+
});
|
|
50
|
+
const depositAddress = await sdk.getDepositAddress(
|
|
51
|
+
"terra", // source chain
|
|
52
|
+
"avalanche", // destination chain
|
|
53
|
+
"0xF16DfB26e1FEc993E085092563ECFAEaDa7eD7fD", // destination address
|
|
54
|
+
"uusd" // asset to transfer
|
|
55
|
+
);
|
|
128
56
|
```
|
|
129
57
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
destinationAddress: string,
|
|
144
|
-
sourceChainName: string = "terra",
|
|
145
|
-
destinationChainName: string = "avalanche",
|
|
146
|
-
asset_common_key: string = "uusd"
|
|
147
|
-
) => {
|
|
148
|
-
/*
|
|
149
|
-
info for sourceChainInfo and destinationChainInfo fetched from the ChainList module.
|
|
150
|
-
* */
|
|
151
|
-
const terraChain: ChainInfo = ChainList.map(
|
|
152
|
-
(chain: Chain) => chain.chainInfo
|
|
153
|
-
).find(
|
|
154
|
-
(chainInfo: ChainInfo) =>
|
|
155
|
-
chainInfo.chainName.toLowerCase() === sourceChainName.toLowerCase()
|
|
156
|
-
) as ChainInfo;
|
|
157
|
-
const avalancheChain: ChainInfo = ChainList.map(
|
|
158
|
-
(chain: Chain) => chain.chainInfo
|
|
159
|
-
).find(
|
|
160
|
-
(chainInfo: ChainInfo) =>
|
|
161
|
-
chainInfo.chainName.toLowerCase() === destinationChainName.toLowerCase()
|
|
162
|
-
) as ChainInfo;
|
|
163
|
-
const assetObj = terraChain.assets?.find(
|
|
164
|
-
(asset: AssetInfo) => asset.common_key === asset_common_key
|
|
165
|
-
) as AssetInfo;
|
|
166
|
-
|
|
167
|
-
let requestPayload: AssetTransferObject = {
|
|
168
|
-
sourceChainInfo: terraChain,
|
|
169
|
-
destinationChainInfo: avalancheChain,
|
|
170
|
-
selectedSourceAsset: assetObj,
|
|
171
|
-
selectedDestinationAsset: {
|
|
172
|
-
...assetObj,
|
|
173
|
-
assetAddress: destinationAddress, //address on the destination chain where you want the tokens to arrive
|
|
174
|
-
},
|
|
175
|
-
signature: "SIGNATURE_FROM_METAMASK_SIGN",
|
|
176
|
-
otc: "OTC_RECEIVED_FROM_SERVER",
|
|
177
|
-
publicAddr: "SIGNER_OF_SIGNATURE",
|
|
178
|
-
transactionTraceId: "YOUR_OWN_UUID", //your own UUID, helpful for tracing purposes. optional.
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
return requestPayload;
|
|
182
|
-
};
|
|
58
|
+
Example: EVM-to-Cosmos (Avalanche to Terra)
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
const sdk = new AxelarAssetTransfer({
|
|
62
|
+
environment: "testnet",
|
|
63
|
+
auth: "local",
|
|
64
|
+
});
|
|
65
|
+
const depositAddress = await sdk.getDepositAddress(
|
|
66
|
+
"avalanche", // source chain
|
|
67
|
+
"terra", // destination chain
|
|
68
|
+
"terra1qem4njhac8azalrav7shvp06myhqldpmkk3p0t", // destination address
|
|
69
|
+
"uusd" // asset to transfer
|
|
70
|
+
);
|
|
183
71
|
```
|
|
184
72
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
See AxelarJS in action: [deposit-address-demo](https://github.com/axelarnetwork/deposit-address-demo)
|
|
188
|
-
|
|
189
|
-
## AxelarJS is under active development
|
|
190
|
-
|
|
191
|
-
AxelarJS is under active development. The API might change. Please ensure you pull the latest from this repo post issues to Github.
|
|
73
|
+
Note: The destination address format is validated based on the destination chain. Make sure that the destination address is a valid address on the destination chain. For instance Terra addresses start with “terra,” Osmosis with “osmo,” etc.
|
|
192
74
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
Github issues and pull requests are welcome!
|
|
196
|
-
|
|
197
|
-
## Run locally
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
git clone git@github.com:axelarnetwork/axelarjs-sdk.git
|
|
201
|
-
cd axelarjs-sdk
|
|
202
|
-
npm install
|
|
203
|
-
npm run build
|
|
204
|
-
npm link # link your local repo to your global packages
|
|
205
|
-
npm run dev # build the files and watch for changes
|
|
206
|
-
```
|
|
75
|
+
Once the deposit address has been generated the user can make a token transfer (on blockchain) to the deposit address. The transfer will be picked up by the Axelar network and relayed to the destination chain.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAkCD,eAAO,MAAM,UAAU,gBAAiB,MAAM,KAAG,kBAOhD,CAAC"}
|
|
@@ -4,15 +4,27 @@ exports.getConfigs = void 0;
|
|
|
4
4
|
var configsMap = {};
|
|
5
5
|
var localConfigs = {
|
|
6
6
|
resourceUrl: "http://localhost:4000",
|
|
7
|
+
axelarRpcUrl: "https://axelartest-rpc.quickapi.com",
|
|
8
|
+
axelarLcdUrl: "https://axelartest-lcd.quickapi.com",
|
|
9
|
+
axelarCachingServiceUrl: "https://testnet.api.gmp.axelarscan.io"
|
|
7
10
|
};
|
|
8
11
|
var devnetConfigs = {
|
|
9
12
|
resourceUrl: "https://nest-server-devnet.axelar.dev",
|
|
13
|
+
axelarRpcUrl: "",
|
|
14
|
+
axelarLcdUrl: "",
|
|
15
|
+
axelarCachingServiceUrl: "https://devnet.api.gmp.axelarscan.io"
|
|
10
16
|
};
|
|
11
17
|
var testnetConfigs = {
|
|
12
18
|
resourceUrl: "https://nest-server-testnet.axelar.dev",
|
|
19
|
+
axelarRpcUrl: "https://axelartest-rpc.quickapi.com",
|
|
20
|
+
axelarLcdUrl: "https://axelartest-lcd.quickapi.com",
|
|
21
|
+
axelarCachingServiceUrl: "https://testnet.api.gmp.axelarscan.io"
|
|
13
22
|
};
|
|
14
23
|
var mainnetConfigs = {
|
|
15
24
|
resourceUrl: "https://nest-server-mainnet.axelar.dev",
|
|
25
|
+
axelarRpcUrl: "https://axelar-rpc.quickapi.com",
|
|
26
|
+
axelarLcdUrl: "https://axelar-lcd.quickapi.com",
|
|
27
|
+
axelarCachingServiceUrl: "https://mainnet.api.gmp.axelarscan.io"
|
|
16
28
|
};
|
|
17
29
|
configsMap["local"] = localConfigs;
|
|
18
30
|
configsMap["devnet"] = devnetConfigs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,IAAM,UAAU,GAAkD,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,IAAM,UAAU,GAAkD,EAAE,CAAC;AASrE,IAAM,YAAY,GAAuB;IACvC,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,qCAAqC;IACnD,YAAY,EAAE,qCAAqC;IACnD,uBAAuB,EAAE,uCAAuC;CACjE,CAAC;AACF,IAAM,aAAa,GAAuB;IACxC,WAAW,EAAE,uCAAuC;IACpD,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,uBAAuB,EAAE,sCAAsC;CAChE,CAAC;AACF,IAAM,cAAc,GAAuB;IACzC,WAAW,EAAE,wCAAwC;IACrD,YAAY,EAAE,qCAAqC;IACnD,YAAY,EAAE,qCAAqC;IACnD,uBAAuB,EAAE,uCAAuC;CACjE,CAAC;AACF,IAAM,cAAc,GAAuB;IACzC,WAAW,EAAE,wCAAwC;IACrD,YAAY,EAAE,iCAAiC;IAC/C,YAAY,EAAE,iCAAiC;IAC/C,uBAAuB,EAAE,uCAAuC;CACjE,CAAC;AAEF,UAAU,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;AACnC,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;AACrC,UAAU,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;AACvC,UAAU,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;AAEvC,IAAI,WAA+B,CAAC;AAE7B,IAAM,UAAU,GAAG,UAAC,WAAmB;IAC5C,IAAI,CAAC,WAAW,EAAE;QAChB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;KACvC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB"}
|
|
@@ -10,8 +10,6 @@ export declare class AxelarAssetTransfer {
|
|
|
10
10
|
getDepositAddress(fromChain: string, toChain: string, destinationAddress: string, asset: string, options?: {
|
|
11
11
|
_traceId: string;
|
|
12
12
|
}): Promise<string>;
|
|
13
|
-
getFeeForChainAndAsset(chain: string, asset: string): Promise<any>;
|
|
14
|
-
getTransferFee(sourceChain: string, destinationChain: string, asset: string): Promise<number>;
|
|
15
13
|
getOneTimeCode(signerAddress: string, traceId: string): Promise<OTC>;
|
|
16
14
|
getInitRoomId(fromChain: string, toChain: string, destinationAddress: string, asset: string, publicAddress: string, signature: string, traceId: string): Promise<string>;
|
|
17
15
|
getLinkEvent(roomId: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxelarAssetTransfer.d.ts","sourceRoot":"","sources":["../../../src/libs/AxelarAssetTransfer.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,GAAG,EACJ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEnB,MAAM,EAAE,yBAAyB;IAcvC,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,MAAM,CAAC;IAyCL,
|
|
1
|
+
{"version":3,"file":"AxelarAssetTransfer.d.ts","sourceRoot":"","sources":["../../../src/libs/AxelarAssetTransfer.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,GAAG,EACJ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEnB,MAAM,EAAE,yBAAyB;IAcvC,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,MAAM,CAAC;IAyCL,cAAc,CACzB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC;IAWT,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAuBZ,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnD,OAAO,CAAC,qBAAqB;CAG9B"}
|
|
@@ -82,42 +82,6 @@ var AxelarAssetTransfer = /** @class */ (function () {
|
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
};
|
|
85
|
-
AxelarAssetTransfer.prototype.getFeeForChainAndAsset = function (chain, asset) {
|
|
86
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
87
|
-
return __generator(this, function (_a) {
|
|
88
|
-
return [2 /*return*/, this.api
|
|
89
|
-
.get("".concat(types_1.CLIENT_API_GET_FEE, "?chainName=").concat(chain, "&assetCommonKey=").concat(asset))
|
|
90
|
-
.then(function (response) { return response; })
|
|
91
|
-
.catch(function (error) {
|
|
92
|
-
throw error;
|
|
93
|
-
})];
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
AxelarAssetTransfer.prototype.getTransferFee = function (sourceChain, destinationChain, asset) {
|
|
98
|
-
var _a, _b;
|
|
99
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
100
|
-
var sourceChainFeeInfo, destinationChainFeeInfo, e_1;
|
|
101
|
-
return __generator(this, function (_c) {
|
|
102
|
-
switch (_c.label) {
|
|
103
|
-
case 0:
|
|
104
|
-
_c.trys.push([0, 3, , 4]);
|
|
105
|
-
return [4 /*yield*/, this.getFeeForChainAndAsset(sourceChain, asset)];
|
|
106
|
-
case 1:
|
|
107
|
-
sourceChainFeeInfo = _c.sent();
|
|
108
|
-
return [4 /*yield*/, this.getFeeForChainAndAsset(destinationChain, asset)];
|
|
109
|
-
case 2:
|
|
110
|
-
destinationChainFeeInfo = _c.sent();
|
|
111
|
-
return [2 /*return*/, (Number((_a = sourceChainFeeInfo === null || sourceChainFeeInfo === void 0 ? void 0 : sourceChainFeeInfo.fee_info) === null || _a === void 0 ? void 0 : _a.min_fee) +
|
|
112
|
-
Number((_b = destinationChainFeeInfo === null || destinationChainFeeInfo === void 0 ? void 0 : destinationChainFeeInfo.fee_info) === null || _b === void 0 ? void 0 : _b.min_fee))];
|
|
113
|
-
case 3:
|
|
114
|
-
e_1 = _c.sent();
|
|
115
|
-
throw e_1;
|
|
116
|
-
case 4: return [2 /*return*/];
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
85
|
AxelarAssetTransfer.prototype.getOneTimeCode = function (signerAddress, traceId) {
|
|
122
86
|
return __awaiter(this, void 0, void 0, function () {
|
|
123
87
|
var otc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxelarAssetTransfer.js","sourceRoot":"","sources":["../../../src/libs/AxelarAssetTransfer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAoC;AACpC,2CAK2B;AAE3B,wCAAyD;AACzD,kCAA+E;AAE/E,0CAA0C;AAG1C;IAOE,6BAAY,MAAiC;QAC3C,IAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEvC,4CAA4C;QAC5C,IAAI,MAAM,CAAC,oBAAoB;YAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAEjD,IAAI,CAAC,GAAG,GAAG,IAAI,sBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAEK,+CAAiB,GAAvB,UACE,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,KAAa,EACb,OAEC;;;;;;wBAGK,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,IAAA,SAAM,GAAE,CAAC;wBAGxC,yBAAyB,GAAG,IAAA,6CAAqC,EACrE,OAAO,EACP,kBAAkB,EAClB,IAAI,CAAC,WAAW,CACjB,CAAC;wBACF,IAAI,CAAC,yBAAyB;4BAC5B,MAAM,IAAI,KAAK,CAAC,gDAAyC,OAAO,CAAE,CAAC,CAAC;wBAGhE,MAAM,GAAG,IAAA,oBAAY,GAAE,CAAC;wBAGJ,qBAAM,IAAI,CAAC,cAAc,CACjD,MAAM,CAAC,OAAO,EACd,OAAO,CACR,EAAA;;wBAHO,aAAa,GAAK,CAAA,SAGzB,CAAA,cAHoB;wBAIH,qBAAM,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAA;;wBAAnD,SAAS,GAAG,SAAuC;wBAG1C,qBAAM,IAAI,CAAC,aAAa,CACrC,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,MAAM,CAAC,OAAO,EACd,SAAS,EACT,OAAO,CACR,EAAA;;wBARK,MAAM,GAAG,SAQd;wBAGiB,qBAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAA;;wBAA3C,SAAS,GAAG,SAA+B;wBAC3C,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;wBAE7D,sBAAO,cAAc,EAAC;;;;KACvB;IAEY,
|
|
1
|
+
{"version":3,"file":"AxelarAssetTransfer.js","sourceRoot":"","sources":["../../../src/libs/AxelarAssetTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { RestService } from "../services";
|
|
2
|
+
import { AxelarQueryAPIConfig, Environment, FeeInfoResponse, TransferFeeResponse } from "./types";
|
|
3
|
+
export declare class AxelarQueryAPI {
|
|
4
|
+
readonly environment: Environment;
|
|
5
|
+
readonly lcdApi: RestService;
|
|
6
|
+
readonly rpcApi: RestService;
|
|
7
|
+
readonly axelarCachingServiceApi: RestService;
|
|
8
|
+
readonly axelarRpcUrl: string;
|
|
9
|
+
readonly axelarLcdUrl: string;
|
|
10
|
+
readonly axelarCachingServiceUrl: string;
|
|
11
|
+
constructor(config: AxelarQueryAPIConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Gets the fee for a chain and asset
|
|
14
|
+
* example testnet query: https://axelartest-lcd.quickapi.com/axelar/nexus/v1beta1/fee?chain=ethereum&asset=uusd
|
|
15
|
+
* @param chainName
|
|
16
|
+
* @param assetDenom
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
getFeeForChainAndAsset(chainName: string, assetDenom: string): Promise<FeeInfoResponse>;
|
|
20
|
+
/**
|
|
21
|
+
* Gest the transfer fee for a given transaction
|
|
22
|
+
* example testnet query: "https://axelartest-lcd.quickapi.com/axelar/nexus/v1beta1/transfer_fee?source_chain=ethereum&destination_chain=terra&amount=100000000uusd"
|
|
23
|
+
* @param sourceChainName
|
|
24
|
+
* @param destinationChainName
|
|
25
|
+
* @param assetDenom
|
|
26
|
+
* @param amountInDenom
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
getTransferFee(sourceChainName: string, destinationChainName: string, assetDenom: string, amountInDenom: number): Promise<TransferFeeResponse>;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the gas price for a destination chain to be paid to the gas receiver on a source chain
|
|
32
|
+
* example testnet query: https://testnet.api.gmp.axelarscan.io/?method=getGasPrice&destinationChain=ethereum&sourceChain=avalanche&sourceTokenAddress=0x43F4600b552089655645f8c16D86A5a9Fa296bc3&sourceTokenSymbol=UST
|
|
33
|
+
* @param sourceChainName
|
|
34
|
+
* @param destinationChainName
|
|
35
|
+
* @param sourceChainTokenAddress
|
|
36
|
+
* @param sourceChainTokenSymbol
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
getGasPrice(sourceChainName: string, destinationChainName: string, sourceChainTokenAddress: string, sourceChainTokenSymbol: string): Promise<number>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the denom for an asset given its symbol on a chain
|
|
42
|
+
* @param symbol
|
|
43
|
+
* @param chainName
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
getDenomFromSymbol(symbol: string, chainName: string): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* Get the symbol for an asset on a given chain given its denom
|
|
49
|
+
* @param denom
|
|
50
|
+
* @param chainName
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
getSymbolFromDenom(denom: string, chainName: string): string | null | undefined;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=AxelarQueryAPI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxelarQueryAPI.d.ts","sourceRoot":"","sources":["../../../src/libs/AxelarQueryAPI.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,qBAAa,cAAc;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;gBAEtB,MAAM,EAAE,oBAAoB;IAgB/C;;;;;;OAMG;IACU,sBAAsB,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC;IAW3B;;;;;;;;OAQG;IACU,cAAc,CACzB,eAAe,EAAE,MAAM,EACvB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC;IAY/B;;;;;;;;OAQG;IACU,WAAW,CACtB,eAAe,EAAE,MAAM,EACvB,oBAAoB,EAAE,MAAM,EAC5B,uBAAuB,EAAE,MAAM,EAC/B,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,MAAM,CAAC;IAqBlB;;;;;OAKG;IACI,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO3D;;;;;OAKG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAQ3D"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.AxelarQueryAPI = void 0;
|
|
40
|
+
var assets_1 = require("../assets");
|
|
41
|
+
var constants_1 = require("../constants");
|
|
42
|
+
var services_1 = require("../services");
|
|
43
|
+
var AxelarQueryAPI = /** @class */ (function () {
|
|
44
|
+
function AxelarQueryAPI(config) {
|
|
45
|
+
var axelarLcdUrl = config.axelarLcdUrl, axelarRpcUrl = config.axelarRpcUrl, environment = config.environment;
|
|
46
|
+
var links = (0, constants_1.getConfigs)(environment);
|
|
47
|
+
this.axelarRpcUrl = axelarRpcUrl || links.axelarRpcUrl;
|
|
48
|
+
this.axelarLcdUrl = axelarLcdUrl || links.axelarLcdUrl;
|
|
49
|
+
this.axelarCachingServiceUrl = links.axelarCachingServiceUrl;
|
|
50
|
+
this.environment = environment;
|
|
51
|
+
this.lcdApi = new services_1.RestService(this.axelarLcdUrl);
|
|
52
|
+
this.rpcApi = new services_1.RestService(this.axelarRpcUrl);
|
|
53
|
+
this.axelarCachingServiceApi = new services_1.RestService(this.axelarCachingServiceUrl);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Gets the fee for a chain and asset
|
|
57
|
+
* example testnet query: https://axelartest-lcd.quickapi.com/axelar/nexus/v1beta1/fee?chain=ethereum&asset=uusd
|
|
58
|
+
* @param chainName
|
|
59
|
+
* @param assetDenom
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
AxelarQueryAPI.prototype.getFeeForChainAndAsset = function (chainName, assetDenom) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
+
var queryEndpoint, e_1;
|
|
65
|
+
return __generator(this, function (_a) {
|
|
66
|
+
switch (_a.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
_a.trys.push([0, 2, , 3]);
|
|
69
|
+
queryEndpoint = "/axelar/nexus/v1beta1/fee";
|
|
70
|
+
queryEndpoint += "?chain=".concat(chainName === null || chainName === void 0 ? void 0 : chainName.toLowerCase());
|
|
71
|
+
queryEndpoint += "&asset=".concat(assetDenom);
|
|
72
|
+
return [4 /*yield*/, this.lcdApi.get(queryEndpoint)];
|
|
73
|
+
case 1: return [2 /*return*/, (_a.sent())];
|
|
74
|
+
case 2:
|
|
75
|
+
e_1 = _a.sent();
|
|
76
|
+
throw e_1;
|
|
77
|
+
case 3: return [2 /*return*/];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Gest the transfer fee for a given transaction
|
|
84
|
+
* example testnet query: "https://axelartest-lcd.quickapi.com/axelar/nexus/v1beta1/transfer_fee?source_chain=ethereum&destination_chain=terra&amount=100000000uusd"
|
|
85
|
+
* @param sourceChainName
|
|
86
|
+
* @param destinationChainName
|
|
87
|
+
* @param assetDenom
|
|
88
|
+
* @param amountInDenom
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
AxelarQueryAPI.prototype.getTransferFee = function (sourceChainName, destinationChainName, assetDenom, amountInDenom) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
93
|
+
var queryEndpoint, e_2;
|
|
94
|
+
return __generator(this, function (_a) {
|
|
95
|
+
switch (_a.label) {
|
|
96
|
+
case 0:
|
|
97
|
+
_a.trys.push([0, 2, , 3]);
|
|
98
|
+
queryEndpoint = "/axelar/nexus/v1beta1/transfer_fee";
|
|
99
|
+
queryEndpoint += "?source_chain=".concat(sourceChainName === null || sourceChainName === void 0 ? void 0 : sourceChainName.toLowerCase());
|
|
100
|
+
queryEndpoint += "&destination_chain=".concat(destinationChainName === null || destinationChainName === void 0 ? void 0 : destinationChainName.toLowerCase());
|
|
101
|
+
queryEndpoint += "&amount=".concat(amountInDenom === null || amountInDenom === void 0 ? void 0 : amountInDenom.toString()).concat(assetDenom);
|
|
102
|
+
return [4 /*yield*/, this.lcdApi.get(queryEndpoint)];
|
|
103
|
+
case 1: return [2 /*return*/, (_a.sent())];
|
|
104
|
+
case 2:
|
|
105
|
+
e_2 = _a.sent();
|
|
106
|
+
throw e_2;
|
|
107
|
+
case 3: return [2 /*return*/];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Gets the gas price for a destination chain to be paid to the gas receiver on a source chain
|
|
114
|
+
* example testnet query: https://testnet.api.gmp.axelarscan.io/?method=getGasPrice&destinationChain=ethereum&sourceChain=avalanche&sourceTokenAddress=0x43F4600b552089655645f8c16D86A5a9Fa296bc3&sourceTokenSymbol=UST
|
|
115
|
+
* @param sourceChainName
|
|
116
|
+
* @param destinationChainName
|
|
117
|
+
* @param sourceChainTokenAddress
|
|
118
|
+
* @param sourceChainTokenSymbol
|
|
119
|
+
* @returns
|
|
120
|
+
*/
|
|
121
|
+
AxelarQueryAPI.prototype.getGasPrice = function (sourceChainName, destinationChainName, sourceChainTokenAddress, sourceChainTokenSymbol) {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
123
|
+
var queryEndpoint, response, result, dest, exponent, destPrice, e_3;
|
|
124
|
+
return __generator(this, function (_a) {
|
|
125
|
+
switch (_a.label) {
|
|
126
|
+
case 0:
|
|
127
|
+
_a.trys.push([0, 2, , 3]);
|
|
128
|
+
queryEndpoint = "";
|
|
129
|
+
queryEndpoint += "?method=getGasPrice";
|
|
130
|
+
queryEndpoint += "&destinationChain=".concat(destinationChainName);
|
|
131
|
+
queryEndpoint += "&sourceChain=".concat(sourceChainName);
|
|
132
|
+
queryEndpoint += "&sourceTokenAddress=".concat(sourceChainTokenAddress);
|
|
133
|
+
queryEndpoint += "&sourceTokenSymbol=".concat(sourceChainTokenSymbol);
|
|
134
|
+
return [4 /*yield*/, this.axelarCachingServiceApi.get(queryEndpoint)];
|
|
135
|
+
case 1:
|
|
136
|
+
response = _a.sent();
|
|
137
|
+
result = response.result;
|
|
138
|
+
dest = result.destination_native_token;
|
|
139
|
+
exponent = 1e18;
|
|
140
|
+
destPrice = exponent * dest.gas_price * dest.token_price.usd;
|
|
141
|
+
return [2 /*return*/, destPrice / result.source_token.token_price.usd];
|
|
142
|
+
case 2:
|
|
143
|
+
e_3 = _a.sent();
|
|
144
|
+
throw e_3;
|
|
145
|
+
case 3: return [2 /*return*/];
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Get the denom for an asset given its symbol on a chain
|
|
152
|
+
* @param symbol
|
|
153
|
+
* @param chainName
|
|
154
|
+
* @returns
|
|
155
|
+
*/
|
|
156
|
+
AxelarQueryAPI.prototype.getDenomFromSymbol = function (symbol, chainName) {
|
|
157
|
+
var allAssets = (0, assets_1.loadAssets)({ environment: this.environment });
|
|
158
|
+
var assetConfig = allAssets.find(function (assetConfig) { var _a; return ((_a = assetConfig.chain_aliases[chainName]) === null || _a === void 0 ? void 0 : _a.assetSymbol) === symbol; });
|
|
159
|
+
if (!assetConfig)
|
|
160
|
+
return null;
|
|
161
|
+
return assetConfig === null || assetConfig === void 0 ? void 0 : assetConfig.common_key[this.environment];
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Get the symbol for an asset on a given chain given its denom
|
|
165
|
+
* @param denom
|
|
166
|
+
* @param chainName
|
|
167
|
+
* @returns
|
|
168
|
+
*/
|
|
169
|
+
AxelarQueryAPI.prototype.getSymbolFromDenom = function (denom, chainName) {
|
|
170
|
+
var _this = this;
|
|
171
|
+
var allAssets = (0, assets_1.loadAssets)({ environment: this.environment });
|
|
172
|
+
var assetConfig = allAssets.find(function (assetConfig) { return assetConfig.common_key[_this.environment] === denom; });
|
|
173
|
+
if (!assetConfig)
|
|
174
|
+
return null;
|
|
175
|
+
return assetConfig.chain_aliases[chainName].assetSymbol;
|
|
176
|
+
};
|
|
177
|
+
return AxelarQueryAPI;
|
|
178
|
+
}());
|
|
179
|
+
exports.AxelarQueryAPI = AxelarQueryAPI;
|
|
180
|
+
//# sourceMappingURL=AxelarQueryAPI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxelarQueryAPI.js","sourceRoot":"","sources":["../../../src/libs/AxelarQueryAPI.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oCAAuC;AACvC,0CAA8D;AAC9D,wCAA0C;AAQ1C;IASE,wBAAmB,MAA4B;QACrC,IAAA,YAAY,GAAgC,MAAM,aAAtC,EAAE,YAAY,GAAkB,MAAM,aAAxB,EAAE,WAAW,GAAK,MAAM,YAAX,CAAY;QAC3D,IAAM,KAAK,GAAuB,IAAA,sBAAU,EAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,uBAAuB,GAAG,IAAI,sBAAW,CAC5C,IAAI,CAAC,uBAAuB,CAC7B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACU,+CAAsB,GAAnC,UACE,SAAiB,EACjB,UAAkB;;;;;;;wBAGZ,aAAa,GAAG,2BAA2B,CAAC;wBAChD,aAAa,IAAI,iBAAU,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAE,CAAC;wBACtD,aAAa,IAAI,iBAAU,UAAU,CAAE,CAAC;wBAChC,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAA;4BAA5C,sBAAO,CAAC,SAAoC,CAAoB,EAAC;;;wBAEjE,MAAM,GAAC,CAAC;;;;;KAEX;IAED;;;;;;;;OAQG;IACU,uCAAc,GAA3B,UACE,eAAuB,EACvB,oBAA4B,EAC5B,UAAkB,EAClB,aAAqB;;;;;;;wBAGf,aAAa,GAAG,oCAAoC,CAAC;wBACzD,aAAa,IAAI,wBAAiB,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAAE,CAAE,CAAC;wBACnE,aAAa,IAAI,6BAAsB,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,WAAW,EAAE,CAAE,CAAC;wBAC7E,aAAa,IAAI,kBAAW,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,EAAE,SAAG,UAAU,CAAE,CAAC;wBAC7D,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAA;4BAA5C,sBAAO,CAAC,SAAoC,CAAwB,EAAC;;;wBAErE,MAAM,GAAC,CAAC;;;;;KAEX;IAED;;;;;;;;OAQG;IACU,oCAAW,GAAxB,UACE,eAAuB,EACvB,oBAA4B,EAC5B,uBAA+B,EAC/B,sBAA8B;;;;;;;wBAGxB,aAAa,GAAG,EAAE,CAAC;wBACvB,aAAa,IAAI,qBAAqB,CAAC;wBACvC,aAAa,IAAI,4BAAqB,oBAAoB,CAAE,CAAC;wBAC7D,aAAa,IAAI,uBAAgB,eAAe,CAAE,CAAC;wBACnD,aAAa,IAAI,8BAAuB,uBAAuB,CAAE,CAAC;wBAClE,aAAa,IAAI,6BAAsB,sBAAsB,CAAE,CAAC;wBAE/C,qBAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAA;;wBAAhE,QAAQ,GAAG,SAAqD;wBAEhE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;wBACzB,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC;wBACvC,QAAQ,GAAG,IAAI,CAAC;wBAChB,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;wBACnE,sBAAO,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAC;;;wBAEvD,MAAM,GAAC,CAAC;;;;;KAEX;IAED;;;;;OAKG;IACI,2CAAkB,GAAzB,UAA0B,MAAc,EAAE,SAAiB;QACzD,IAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,IAAM,WAAW,GAA4B,SAAS,CAAC,IAAI,CAAC,UAAA,WAAW,YAAI,OAAA,CAAA,MAAA,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,0CAAE,WAAW,MAAK,MAAM,CAAA,EAAA,CAAC,CAAC;QACzI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,2CAAkB,GAAzB,UAA0B,KAAa,EAAE,SAAiB;QAA1D,iBAOC;QANC,IAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,IAAM,WAAW,GAA4B,SAAS,CAAC,IAAI,CACzD,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,UAAU,CAAC,KAAI,CAAC,WAAW,CAAC,KAAK,KAAK,EAAlD,CAAkD,CACpE,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;IAC1D,CAAC;IACH,qBAAC;AAAD,CAAC,AAtID,IAsIC;AAtIY,wCAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxelarQueryAPI.spec.d.ts","sourceRoot":"","sources":["../../../../src/libs/test/AxelarQueryAPI.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var AxelarQueryAPI_1 = require("../AxelarQueryAPI");
|
|
40
|
+
var types_1 = require("../types");
|
|
41
|
+
describe("AxelarQueryAPI", function () {
|
|
42
|
+
var api = new AxelarQueryAPI_1.AxelarQueryAPI({ environment: types_1.Environment.TESTNET });
|
|
43
|
+
beforeEach(function () {
|
|
44
|
+
jest.clearAllMocks();
|
|
45
|
+
});
|
|
46
|
+
describe("getFeeForChainAndAsset", function () {
|
|
47
|
+
test("It should generate a fee response", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
48
|
+
var _a, chain, assetDenom, response;
|
|
49
|
+
return __generator(this, function (_b) {
|
|
50
|
+
switch (_b.label) {
|
|
51
|
+
case 0:
|
|
52
|
+
_a = ["avalanche", "uusd"], chain = _a[0], assetDenom = _a[1];
|
|
53
|
+
return [4 /*yield*/, api.getFeeForChainAndAsset(chain, assetDenom)];
|
|
54
|
+
case 1:
|
|
55
|
+
response = _b.sent();
|
|
56
|
+
expect(response.fee_info).toBeDefined();
|
|
57
|
+
expect(response.fee_info.chain).toEqual(chain);
|
|
58
|
+
expect(response.fee_info.asset).toEqual(assetDenom);
|
|
59
|
+
expect(response.fee_info.fee_rate).toBeDefined();
|
|
60
|
+
expect(response.fee_info.min_fee).toBeDefined();
|
|
61
|
+
expect(response.fee_info.max_fee).toBeDefined();
|
|
62
|
+
return [2 /*return*/];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}); });
|
|
66
|
+
});
|
|
67
|
+
describe("getTransferFee", function () {
|
|
68
|
+
test("It should generate a transfer fee for a specific transaction", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
|
+
var _a, sourceChainName, destinationChainName, assetDenom, amount, response;
|
|
70
|
+
return __generator(this, function (_b) {
|
|
71
|
+
switch (_b.label) {
|
|
72
|
+
case 0:
|
|
73
|
+
_a = [
|
|
74
|
+
"avalanche",
|
|
75
|
+
"polygon",
|
|
76
|
+
"uusd",
|
|
77
|
+
100000000,
|
|
78
|
+
], sourceChainName = _a[0], destinationChainName = _a[1], assetDenom = _a[2], amount = _a[3];
|
|
79
|
+
return [4 /*yield*/, api.getTransferFee(sourceChainName, destinationChainName, assetDenom, amount)];
|
|
80
|
+
case 1:
|
|
81
|
+
response = _b.sent();
|
|
82
|
+
expect(response).toBeDefined();
|
|
83
|
+
expect(response.fee).toBeDefined();
|
|
84
|
+
expect(response.fee.denom).toEqual(assetDenom);
|
|
85
|
+
expect(response.fee.amount).toBeDefined();
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}); });
|
|
90
|
+
});
|
|
91
|
+
describe("getGasPrice", function () {
|
|
92
|
+
test("It should get a gas price", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
93
|
+
var _a, sourceChainName, destinationChainName, sourceChainTokenAddress, sourceChainTokenSymbol, response;
|
|
94
|
+
return __generator(this, function (_b) {
|
|
95
|
+
switch (_b.label) {
|
|
96
|
+
case 0:
|
|
97
|
+
_a = [
|
|
98
|
+
"avalanche",
|
|
99
|
+
"polygon",
|
|
100
|
+
"0x43F4600b552089655645f8c16D86A5a9Fa296bc3",
|
|
101
|
+
"UST",
|
|
102
|
+
], sourceChainName = _a[0], destinationChainName = _a[1], sourceChainTokenAddress = _a[2], sourceChainTokenSymbol = _a[3];
|
|
103
|
+
return [4 /*yield*/, api.getGasPrice(sourceChainName, destinationChainName, sourceChainTokenAddress, sourceChainTokenSymbol)];
|
|
104
|
+
case 1:
|
|
105
|
+
response = _b.sent();
|
|
106
|
+
expect(response).toBeDefined();
|
|
107
|
+
return [2 /*return*/];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}); });
|
|
111
|
+
});
|
|
112
|
+
describe("getDenomFromSymbol", function () {
|
|
113
|
+
test("It should get the denom for an asset given its symbol on a chain", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
114
|
+
var response;
|
|
115
|
+
return __generator(this, function (_a) {
|
|
116
|
+
switch (_a.label) {
|
|
117
|
+
case 0: return [4 /*yield*/, api.getDenomFromSymbol("UST", "ethereum")];
|
|
118
|
+
case 1:
|
|
119
|
+
response = _a.sent();
|
|
120
|
+
expect(response).toEqual("uusd");
|
|
121
|
+
return [2 /*return*/];
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}); });
|
|
125
|
+
});
|
|
126
|
+
describe("getSymbolFromDenom", function () {
|
|
127
|
+
test("It should get the symbol for an asset on a given chain given its denom", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
128
|
+
var response;
|
|
129
|
+
return __generator(this, function (_a) {
|
|
130
|
+
switch (_a.label) {
|
|
131
|
+
case 0: return [4 /*yield*/, api.getSymbolFromDenom("uusd", "ethereum")];
|
|
132
|
+
case 1:
|
|
133
|
+
response = _a.sent();
|
|
134
|
+
expect(response).toEqual("UST");
|
|
135
|
+
return [2 /*return*/];
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}); });
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=AxelarQueryAPI.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxelarQueryAPI.spec.js","sourceRoot":"","sources":["../../../../src/libs/test/AxelarQueryAPI.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,4 +47,24 @@ export declare type AxelarAssetTransferConfig = {
|
|
|
47
47
|
auth?: "local" | "metamask";
|
|
48
48
|
overwriteResourceUrl?: string;
|
|
49
49
|
};
|
|
50
|
+
export declare type AxelarQueryAPIConfig = {
|
|
51
|
+
axelarRpcUrl?: string;
|
|
52
|
+
axelarLcdUrl?: string;
|
|
53
|
+
environment: Environment;
|
|
54
|
+
};
|
|
55
|
+
export interface FeeInfoResponse {
|
|
56
|
+
fee_info: {
|
|
57
|
+
chain: string;
|
|
58
|
+
asset: string;
|
|
59
|
+
fee_rate: string;
|
|
60
|
+
min_fee: string;
|
|
61
|
+
max_fee: string;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface TransferFeeResponse {
|
|
65
|
+
fee: {
|
|
66
|
+
denom: string;
|
|
67
|
+
amount: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
50
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/types/index.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,QAAQ,GAAG,WAAW,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,QAAQ,GAAG,WAAW,CAAC;IACzC,0BAA0B,EAAE,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,oBAAY,yBAAyB,GAAG;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/libs/types/index.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,QAAQ,GAAG,WAAW,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,QAAQ,GAAG,WAAW,CAAC;IACzC,0BAA0B,EAAE,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,oBAAY,yBAAyB,GAAG;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAA;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAA;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axelar-network/axelarjs-sdk",
|
|
3
|
-
"version": "0.5.0-alpha.
|
|
3
|
+
"version": "0.5.0-alpha.22",
|
|
4
4
|
"description": "The JavaScript SDK for Axelar Network",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"cross-fetch": "^3.1.5",
|
|
41
41
|
"eslint-plugin-import": "^2.25.4",
|
|
42
42
|
"ethers": "^5.4.7",
|
|
43
|
+
"jest-fetch-mock": "^3.0.3",
|
|
43
44
|
"lodash": "^4.17.21",
|
|
44
45
|
"nodemon": "^2.0.12",
|
|
45
46
|
"npm-run-all": "^4.1.5",
|