@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 CHANGED
@@ -2,205 +2,74 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- The AxelarJS SDK empowers developers to make cross-chain transfers using the Axelar network from their frontend.
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
- ### Example use case: asset transfer
7
+ ### Get a deposit address
8
8
 
9
- AxelarJS enables the transfer of crypto assets across any blockchain supported by Axelar.
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
- Currently supported assets and chains [TODO link to the authoritative list]:
11
+ Deposit address workflow:
12
12
 
13
- | Supported Assets | Supported Blockchain Networks |
14
- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
15
- | <ul><li>AXL (Axelar native token)</li><li>LUNA (Terra native token)</li><li>UST (Terra stablecoin)</li></ul> | <ul><li>Avalanche</li><li>Axelar</li><li>Ethereum</li><li>Fantom</li><li>Moonbeam</li><li>Polygon</li><li>Terra</li></ul> |
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
- Axelar will continue to add support for new assets and chains in the future.
17
+ #### Install the AxelarJS SDK
18
18
 
19
- ## Technical overview
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
- The AxelarJS SDK is a `npm` dependency that includes libraries that make requests into the Axelar network.
22
-
23
- ![Architecture diagram](sdk-diagram.png)
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 --save @axelar-network/axelarjs-sdk
24
+ npm i @axelar-network/axelarjs-sdk
37
25
  ```
38
26
 
39
- ## Get started
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
- public async getOneTimeMessageToSign(
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
- public async getDepositAddress(
71
- payload: AssetTransferObject,
72
- showAlerts: boolean = true
73
- ): Promise<AssetInfoWithTrace> {
74
- try {
75
- return this.axelarJsSDK.getDepositAddress(payload, showAlerts);
76
- } catch (e: any) {
77
- throw e;
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
- Instantiate and invoke the library consumer:
84
-
85
- ```typescript
86
- const environment: string =
87
- "testnet"; /*environment should be one of local | devnet | testnet | mainnet*/
88
-
89
- const api: AxelarAPI = new AxelarAPI(environment);
90
-
91
- /*below is sample implementation using ethers.js, but you can use whatever you want*/
92
- const provider = new ethers.providers.Web3Provider(window.ethereum, "any"); //2nd param is network type
93
- const signerAuthority = provider.getSigner();
94
- const signerAuthorityAddress = signerAuthority.getAddress();
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
- ## Usage details
131
-
132
- The `getDepositAddress` method takes the following parameters:
133
-
134
- 1. `requestPayload`: a complex struct of type `AssetTransferObject`
135
- 2. optional parameter on whether you want error alerts to show on the UI or not
136
-
137
- Sample parameters:
138
-
139
- ```typescript
140
- // getParameters.ts
141
-
142
- const getParameters = (
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
- ## Demo
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
- ## Contribute
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,5 +1,8 @@
1
1
  export interface EnvironmentConfigs {
2
2
  resourceUrl: string;
3
+ axelarRpcUrl: string;
4
+ axelarLcdUrl: string;
5
+ axelarCachingServiceUrl: string;
3
6
  }
4
7
  export declare const getConfigs: (environment: string) => EnvironmentConfigs;
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -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;CACrB;AAsBD,eAAO,MAAM,UAAU,gBAAiB,MAAM,KAAG,kBAOhD,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;AAMrE,IAAM,YAAY,GAAuB;IACvC,WAAW,EAAE,uBAAuB;CACrC,CAAC;AACF,IAAM,aAAa,GAAuB;IACxC,WAAW,EAAE,uCAAuC;CACrD,CAAC;AACF,IAAM,cAAc,GAAuB;IACzC,WAAW,EAAE,wCAAwC;CACtD,CAAC;AACF,IAAM,cAAc,GAAuB;IACzC,WAAW,EAAE,wCAAwC;CACtD,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"}
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,sBAAsB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC;IASF,cAAc,CACzB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAmBL,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"}
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":"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"}
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,4CAAc,GAA3B,UACE,aAAqB,EACrB,OAAe;;;;;4BAEE,qBAAM,IAAI,CAAC,GAAG;6BAC5B,GAAG,CAAC,UAAG,0BAAkB,4BAAkB,aAAa,CAAE,EAAE,OAAO,CAAC;6BACpE,IAAI,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,EAAR,CAAQ,CAAC;6BAC5B,KAAK,CAAC,UAAC,KAAK;4BACX,MAAM,KAAK,CAAC;wBACd,CAAC,CAAC,EAAA;;wBALE,GAAG,GAAQ,SAKb;wBAEJ,sBAAO,GAAG,EAAC;;;;KACZ;IAEK,2CAAa,GAAnB,UACE,SAAiB,EACjB,OAAe,EACf,kBAA0B,EAC1B,KAAa,EACb,aAAqB,EACrB,SAAiB,EACjB,OAAe;;;;;;;wBAIT,OAAO,GAAG;4BACd,SAAS,WAAA;4BACT,OAAO,SAAA;4BACP,kBAAkB,oBAAA;4BAClB,KAAK,OAAA;4BACL,aAAa,eAAA;4BACb,SAAS,WAAA;yBACV,CAAC;wBAE+B,qBAAM,IAAI,CAAC,GAAG;iCAC5C,IAAI,CAAC,sCAA8B,EAAE,OAAO,EAAE,OAAO,CAAC;iCACtD,IAAI,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,EAAR,CAAQ,CAAC;iCAC5B,KAAK,CAAC,UAAC,KAAK;gCACX,MAAM,KAAK,CAAC;4BACd,CAAC,CAAC,EAAA;;wBALE,QAAQ,GAAmB,SAK7B;wBAEE,MAAM,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,CAAC;wBACtC,sBAAO,MAAM,EAAC;;;;KACf;IAEK,0CAAY,GAAlB,UAAmB,MAAc;;;;;4BACT,qBAAM,IAAI,CAAC,MAAM;6BACpC,uBAAuB,CAAC,MAAM,CAAC;6BAC/B,KAAK,CAAC,UAAC,KAAK;4BACX,MAAM,KAAK,CAAC;wBACd,CAAC,CAAC,EAAA;;wBAJI,SAAS,GAAK,CAAA,SAIlB,CAAA,UAJa;wBAMjB,sBAAO,SAAS,EAAC;;;;KAClB;IAEO,mDAAqB,GAA7B,UAA8B,MAAc;;QAC1C,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,cAAc,CAAC;IAC5C,CAAC;IACH,0BAAC;AAAD,CAAC,AAhID,IAgIC;AAhIY,kDAAmB"}
@@ -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":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AxelarQueryAPI.spec.d.ts.map
@@ -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.21",
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",