rango-sdk-basic 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/rango-sdk-basic.cjs.development.js +28 -25
- package/lib/rango-sdk-basic.cjs.development.js.map +1 -1
- package/lib/rango-sdk-basic.cjs.production.min.js +1 -1
- package/lib/rango-sdk-basic.cjs.production.min.js.map +1 -1
- package/lib/rango-sdk-basic.esm.js +29 -20
- package/lib/rango-sdk-basic.esm.js.map +1 -1
- package/lib/services/client.d.ts +3 -1
- package/lib/services/client.d.ts.map +1 -1
- package/package.json +2 -2
- package/lib/services/httpService.d.ts +0 -2
- package/lib/services/httpService.d.ts.map +0 -1
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
6
|
|
|
7
7
|
var uuid = _interopDefault(require('uuid-random'));
|
|
8
|
-
var axios = _interopDefault(require('axios'));
|
|
9
8
|
var ethRpcErrors = require('eth-rpc-errors');
|
|
9
|
+
var axios = _interopDefault(require('axios'));
|
|
10
10
|
|
|
11
11
|
function _regeneratorRuntime() {
|
|
12
12
|
_regeneratorRuntime = function () {
|
|
@@ -354,11 +354,6 @@ function _extends() {
|
|
|
354
354
|
return _extends.apply(this, arguments);
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
var baseURL = typeof process !== 'undefined' && process.env.REACT_APP_RANGO_BASE_URL ? process.env.REACT_APP_RANGO_BASE_URL : 'https://api.rango.exchange';
|
|
358
|
-
var httpService = /*#__PURE__*/axios.create({
|
|
359
|
-
baseURL: baseURL
|
|
360
|
-
});
|
|
361
|
-
|
|
362
357
|
function assetToString(asset) {
|
|
363
358
|
if (!!asset.address) return asset.blockchain + "." + asset.symbol + "--" + asset.address;else return asset.blockchain + "." + asset.symbol;
|
|
364
359
|
}
|
|
@@ -422,11 +417,12 @@ var transferBlockchains = function transferBlockchains(blockchains) {
|
|
|
422
417
|
TransactionType["TRON"] = "TRON";
|
|
423
418
|
TransactionType["STARKNET"] = "STARKNET";
|
|
424
419
|
})(exports.TransactionType || (exports.TransactionType = {}));
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
420
|
+
(function (GenericTransactionType) {
|
|
421
|
+
GenericTransactionType["EVM"] = "EVM";
|
|
422
|
+
GenericTransactionType["TRANSFER"] = "TRANSFER";
|
|
423
|
+
GenericTransactionType["COSMOS"] = "COSMOS";
|
|
424
|
+
GenericTransactionType["SOLANA"] = "SOLANA";
|
|
425
|
+
})(exports.GenericTransactionType || (exports.GenericTransactionType = {}));
|
|
430
426
|
(function (TransactionStatus) {
|
|
431
427
|
TransactionStatus["FAILED"] = "failed";
|
|
432
428
|
TransactionStatus["RUNNING"] = "running";
|
|
@@ -714,10 +710,11 @@ var prettifyError = function prettifyError(error) {
|
|
|
714
710
|
};
|
|
715
711
|
|
|
716
712
|
var RangoClient = /*#__PURE__*/function () {
|
|
717
|
-
function RangoClient(apiKey, debug) {
|
|
713
|
+
function RangoClient(apiKey, debug, apiUrl) {
|
|
718
714
|
if (debug === void 0) {
|
|
719
715
|
debug = false;
|
|
720
716
|
}
|
|
717
|
+
this.apiUrl = apiUrl || 'https://api.rango.exchange';
|
|
721
718
|
this.apiKey = apiKey;
|
|
722
719
|
try {
|
|
723
720
|
if (typeof window !== 'undefined') {
|
|
@@ -735,12 +732,15 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
735
732
|
} catch (e) {
|
|
736
733
|
this.deviceId = uuid();
|
|
737
734
|
}
|
|
735
|
+
this.httpService = axios.create({
|
|
736
|
+
baseURL: this.apiUrl
|
|
737
|
+
});
|
|
738
738
|
if (debug) {
|
|
739
|
-
httpService.interceptors.request.use(function (request) {
|
|
739
|
+
this.httpService.interceptors.request.use(function (request) {
|
|
740
740
|
console.log('Starting Request', JSON.stringify(request, null, 2));
|
|
741
741
|
return request;
|
|
742
742
|
});
|
|
743
|
-
httpService.interceptors.response.use(function (response) {
|
|
743
|
+
this.httpService.interceptors.response.use(function (response) {
|
|
744
744
|
console.log('Response:', JSON.stringify(response, null, 2));
|
|
745
745
|
return response;
|
|
746
746
|
});
|
|
@@ -754,7 +754,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
754
754
|
while (1) switch (_context.prev = _context.next) {
|
|
755
755
|
case 0:
|
|
756
756
|
_context.next = 2;
|
|
757
|
-
return httpService.get("/basic/meta?apiKey=" + this.apiKey, _extends({}, options));
|
|
757
|
+
return this.httpService.get("/basic/meta?apiKey=" + this.apiKey, _extends({}, options));
|
|
758
758
|
case 2:
|
|
759
759
|
axiosResponse = _context.sent;
|
|
760
760
|
return _context.abrupt("return", axiosResponse.data);
|
|
@@ -776,7 +776,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
776
776
|
while (1) switch (_context2.prev = _context2.next) {
|
|
777
777
|
case 0:
|
|
778
778
|
_context2.next = 2;
|
|
779
|
-
return httpService.get("/basic/meta/blockchains?apiKey=" + this.apiKey, _extends({}, options));
|
|
779
|
+
return this.httpService.get("/basic/meta/blockchains?apiKey=" + this.apiKey, _extends({}, options));
|
|
780
780
|
case 2:
|
|
781
781
|
axiosResponse = _context2.sent;
|
|
782
782
|
return _context2.abrupt("return", axiosResponse.data);
|
|
@@ -798,7 +798,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
798
798
|
while (1) switch (_context3.prev = _context3.next) {
|
|
799
799
|
case 0:
|
|
800
800
|
_context3.next = 2;
|
|
801
|
-
return httpService.get("/basic/meta/swappers?apiKey=" + this.apiKey, _extends({}, options));
|
|
801
|
+
return this.httpService.get("/basic/meta/swappers?apiKey=" + this.apiKey, _extends({}, options));
|
|
802
802
|
case 2:
|
|
803
803
|
axiosResponse = _context3.sent;
|
|
804
804
|
return _context3.abrupt("return", axiosResponse.data);
|
|
@@ -820,7 +820,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
820
820
|
while (1) switch (_context4.prev = _context4.next) {
|
|
821
821
|
case 0:
|
|
822
822
|
_context4.next = 2;
|
|
823
|
-
return httpService.get("/basic/meta/messaging-protocols?apiKey=" + this.apiKey, _extends({}, options));
|
|
823
|
+
return this.httpService.get("/basic/meta/messaging-protocols?apiKey=" + this.apiKey, _extends({}, options));
|
|
824
824
|
case 2:
|
|
825
825
|
axiosResponse = _context4.sent;
|
|
826
826
|
return _context4.abrupt("return", axiosResponse.data);
|
|
@@ -848,7 +848,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
848
848
|
messagingProtocols: !!quoteRequest.messagingProtocols && quoteRequest.messagingProtocols.length > 0 ? quoteRequest.messagingProtocols.join(',') : undefined
|
|
849
849
|
});
|
|
850
850
|
_context5.next = 3;
|
|
851
|
-
return httpService.get("/basic/quote?apiKey=" + this.apiKey, _extends({
|
|
851
|
+
return this.httpService.get("/basic/quote?apiKey=" + this.apiKey, _extends({
|
|
852
852
|
params: body,
|
|
853
853
|
headers: {
|
|
854
854
|
'X-Rango-Id': this.deviceId
|
|
@@ -875,7 +875,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
875
875
|
while (1) switch (_context6.prev = _context6.next) {
|
|
876
876
|
case 0:
|
|
877
877
|
_context6.next = 2;
|
|
878
|
-
return httpService.get("/basic/is-approved?apiKey=" + this.apiKey, _extends({
|
|
878
|
+
return this.httpService.get("/basic/is-approved?apiKey=" + this.apiKey, _extends({
|
|
879
879
|
params: {
|
|
880
880
|
requestId: requestId,
|
|
881
881
|
txId: txId
|
|
@@ -905,7 +905,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
905
905
|
while (1) switch (_context7.prev = _context7.next) {
|
|
906
906
|
case 0:
|
|
907
907
|
_context7.next = 2;
|
|
908
|
-
return httpService.get("/basic/status?apiKey=" + this.apiKey, _extends({
|
|
908
|
+
return this.httpService.get("/basic/status?apiKey=" + this.apiKey, _extends({
|
|
909
909
|
params: statusRequest,
|
|
910
910
|
headers: {
|
|
911
911
|
'X-Rango-Id': this.deviceId
|
|
@@ -934,11 +934,15 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
934
934
|
body = _extends({}, swapRequest, {
|
|
935
935
|
from: assetToString(swapRequest.from),
|
|
936
936
|
to: assetToString(swapRequest.to),
|
|
937
|
+
referrerAddress: swapRequest.referrerAddress || null,
|
|
938
|
+
referrerFee: swapRequest.referrerFee || null,
|
|
939
|
+
disableEstimate: swapRequest.disableEstimate || false,
|
|
937
940
|
swappers: !!swapRequest.swappers && swapRequest.swappers.length > 0 ? swapRequest.swappers.join(',') : undefined,
|
|
941
|
+
swapperGroups: !!swapRequest.swapperGroups && swapRequest.swapperGroups.length > 0 ? swapRequest.swapperGroups.join(',') : undefined,
|
|
938
942
|
messagingProtocols: !!swapRequest.messagingProtocols && swapRequest.messagingProtocols.length > 0 ? swapRequest.messagingProtocols.join(',') : undefined
|
|
939
943
|
});
|
|
940
944
|
_context8.next = 3;
|
|
941
|
-
return httpService.get("/basic/swap?apiKey=" + this.apiKey, _extends({
|
|
945
|
+
return this.httpService.get("/basic/swap?apiKey=" + this.apiKey, _extends({
|
|
942
946
|
params: body,
|
|
943
947
|
headers: {
|
|
944
948
|
'X-Rango-Id': this.deviceId
|
|
@@ -964,7 +968,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
964
968
|
while (1) switch (_context9.prev = _context9.next) {
|
|
965
969
|
case 0:
|
|
966
970
|
_context9.next = 2;
|
|
967
|
-
return httpService.post("/basic/report-tx?apiKey=" + this.apiKey, requestBody, _extends({
|
|
971
|
+
return this.httpService.post("/basic/report-tx?apiKey=" + this.apiKey, requestBody, _extends({
|
|
968
972
|
headers: {
|
|
969
973
|
'X-Rango-Id': this.deviceId
|
|
970
974
|
}
|
|
@@ -987,7 +991,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
987
991
|
while (1) switch (_context10.prev = _context10.next) {
|
|
988
992
|
case 0:
|
|
989
993
|
_context10.next = 2;
|
|
990
|
-
return httpService.get("/basic/balance?apiKey=" + this.apiKey, _extends({
|
|
994
|
+
return this.httpService.get("/basic/balance?apiKey=" + this.apiKey, _extends({
|
|
991
995
|
params: walletAddress,
|
|
992
996
|
headers: {
|
|
993
997
|
'X-Rango-Id': this.deviceId
|
|
@@ -1051,7 +1055,6 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
1051
1055
|
return RangoClient;
|
|
1052
1056
|
}();
|
|
1053
1057
|
|
|
1054
|
-
exports.GenericTransactionType = GenericTransactionType;
|
|
1055
1058
|
exports.MetamaskErrorCodes = MetamaskErrorCodes;
|
|
1056
1059
|
exports.RangoClient = RangoClient;
|
|
1057
1060
|
exports.assetToString = assetToString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rango-sdk-basic.cjs.development.js","sources":["../src/services/httpService.ts","../src/types/api/common.ts","../../../node_modules/rango-types/src/api/shared/type-gaurds.ts","../../../node_modules/rango-types/src/api/shared/routing.ts","../../../node_modules/rango-types/src/api/shared/transactions.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["import axios from 'axios'\n\nconst baseURL =\n typeof process !== 'undefined' && process.env.REACT_APP_RANGO_BASE_URL\n ? process.env.REACT_APP_RANGO_BASE_URL\n : 'https://api.rango.exchange'\n\nexport const httpService = axios.create({\n baseURL,\n})\n","import { Asset } from 'rango-types/lib/api/basic'\nexport * from 'rango-types/lib/api/basic/common'\n\nexport function assetToString(asset: Asset): string {\n if (!!asset.address)\n return `${asset.blockchain}.${asset.symbol}--${asset.address}`\n else return `${asset.blockchain}.${asset.symbol}`\n}\n",null,null,null,"export const MetamaskErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n}\n","export function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n","import { Signer } from 'ethers'\nimport { RangoClient } from './client'\nimport { EvmTransaction } from '../types/api/txs'\nimport {\n StatusResponse,\n SwapResponse,\n TransactionStatus,\n TransactionType,\n} from '../types/api/transactions'\nimport { sleep } from '../utils/promise'\n\nexport function prepareEvmTransaction(\n evmTx: EvmTransaction,\n isApprove: boolean\n) {\n const gasPrice =\n !!evmTx.gasPrice && !evmTx.gasPrice.startsWith('0x')\n ? '0x' + parseInt(evmTx.gasPrice).toString(16)\n : null\n const manipulatedTx = {\n ...evmTx,\n gasPrice,\n }\n let tx = {}\n if (!!manipulatedTx.from) tx = { ...tx, from: manipulatedTx.from }\n if (isApprove) {\n if (!!manipulatedTx.approveTo) tx = { ...tx, to: manipulatedTx.approveTo }\n if (!!manipulatedTx.approveData)\n tx = { ...tx, data: manipulatedTx.approveData }\n } else {\n if (!!manipulatedTx.txTo) tx = { ...tx, to: manipulatedTx.txTo }\n if (!!manipulatedTx.txData) tx = { ...tx, data: manipulatedTx.txData }\n if (!!manipulatedTx.value) tx = { ...tx, value: manipulatedTx.value }\n if (!!manipulatedTx.gasLimit)\n tx = { ...tx, gasLimit: manipulatedTx.gasLimit }\n if (!!manipulatedTx.gasPrice)\n tx = { ...tx, gasPrice: manipulatedTx.gasPrice }\n }\n return tx\n}\n\nasync function checkApprovalSync(\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n): Promise<boolean> {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse?.isApproved) return true\n if (\n !approvalResponse?.isApproved &&\n approvalResponse?.txStatus === TransactionStatus.FAILED\n )\n return false\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n await sleep(3_000)\n }\n}\n\nexport const checkTransactionStatusSync = async (\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n) => {\n let txStatus: StatusResponse | undefined\n while (true) {\n try {\n txStatus = await rangoClient.status({\n requestId,\n txId,\n })\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n if (!!txStatus) {\n if (\n !!txStatus.status &&\n [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(\n txStatus.status\n )\n ) {\n return txStatus\n }\n }\n await sleep(3_000)\n }\n}\n\nexport const executeEvmRoute = async (\n client: RangoClient,\n signer: Signer,\n route: SwapResponse\n): Promise<StatusResponse> => {\n const { tx, requestId, error, resultType } = route\n if (resultType != 'OK') throw new Error(resultType)\n if (!!error || !tx)\n throw new Error(error || 'Error creating the transaction.')\n if (tx?.type !== TransactionType.EVM)\n throw new Error('Non Evm transactions are not supported yet.')\n const evmTransaction = tx as EvmTransaction\n if (!evmTransaction) throw new Error('Transaction is null. Please try again!')\n const txChainId = parseInt(evmTransaction.blockChain.chainId || '-1')\n let signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n if (!!evmTransaction.approveTo && !!evmTransaction.approveData) {\n const approveTxData = prepareEvmTransaction(evmTransaction, true)\n const approveTx = await signer.sendTransaction(approveTxData)\n approveTx.wait()\n const isApproved = await checkApprovalSync(\n requestId,\n approveTx.hash,\n client\n )\n if (!isApproved) throw new Error('Error in approve transaction.')\n }\n signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n const mainTxData = prepareEvmTransaction(evmTransaction, false)\n const mainTx = await signer.sendTransaction(mainTxData)\n mainTx.wait()\n const status = await checkTransactionStatusSync(\n requestId,\n mainTx.hash,\n client\n )\n if (status.status !== TransactionStatus.SUCCESS)\n throw new Error(`Cross-chain swap failed. ${status.error || ''}`)\n return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const prettifyError = (error: any) => {\n if (!error) return error\n if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001))\n return new Error('Transaction Rejected')\n if (error && typeof error.code === 'number') {\n if (Object.values(MetamaskErrorCodes.provider).includes(error.code)) {\n return new Error(getMessageFromCode(error.code))\n }\n if (Object.values(MetamaskErrorCodes.rpc).includes(error.code)) {\n if (\n error.code === MetamaskErrorCodes.rpc.internal &&\n error.message?.includes('underpriced')\n )\n return new Error('Transaction underpriced')\n if (\n error.message?.includes('intrinsic gas too low') ||\n error.message?.includes('out of gas')\n )\n return new Error('This Gas limit is low.')\n return new Error(getMessageFromCode(error.code))\n }\n }\n if (error.message) return new Error(error.message)\n return error\n}\n","import uuid from 'uuid-random'\n\nimport { httpService } from './httpService'\nimport {\n MetaResponse,\n QuoteRequest,\n QuoteResponse,\n CheckApprovalResponse,\n StatusRequest,\n StatusResponse,\n SwapRequest,\n SwapResponse,\n ReportTransactionRequest,\n WalletDetailsResponse,\n assetToString,\n BlockchainMeta,\n SwapperMeta,\n RequestOptions,\n MessagingProtocolsResponse,\n} from '../types'\nimport { Signer } from 'ethers'\nimport { executeEvmRoute as executeEvmRoute } from './executor'\nimport { prettifyError } from '../utils/errors'\n\ntype WalletAddress = { blockchain: string; address: string }\n\nexport class RangoClient {\n private readonly deviceId: string\n\n private readonly apiKey: string\n\n constructor(apiKey: string, debug = false) {\n this.apiKey = apiKey\n try {\n if (typeof window !== 'undefined') {\n const deviceId = localStorage.getItem('deviceId')\n if (deviceId) {\n this.deviceId = deviceId\n } else {\n const generatedId = uuid()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = uuid()\n }\n } catch (e) {\n this.deviceId = uuid()\n }\n if (debug) {\n httpService.interceptors.request.use((request) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n httpService.interceptors.response.use((response) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(options?: RequestOptions): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async chains(options?: RequestOptions): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async swappers(options?: RequestOptions): Promise<SwapperMeta[]> {\n const axiosResponse = await httpService.get<SwapperMeta[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async messagingProtocols(\n options?: RequestOptions\n ): Promise<MessagingProtocolsResponse> {\n const axiosResponse = await httpService.get<MessagingProtocolsResponse>(\n `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async quote(\n quoteRequest: QuoteRequest,\n options?: RequestOptions\n ): Promise<QuoteResponse> {\n const body = {\n ...quoteRequest,\n from: assetToString(quoteRequest.from),\n to: assetToString(quoteRequest.to),\n swappers:\n !!quoteRequest.swappers && quoteRequest.swappers.length > 0\n ? quoteRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!quoteRequest.messagingProtocols &&\n quoteRequest.messagingProtocols.length > 0\n ? quoteRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await httpService.get<QuoteResponse>(\n `/basic/quote?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string,\n options?: RequestOptions\n ): Promise<CheckApprovalResponse> {\n const axiosResponse = await httpService.get<CheckApprovalResponse>(\n `/basic/is-approved?apiKey=${this.apiKey}`,\n {\n params: { requestId, txId },\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async status(\n statusRequest: StatusRequest,\n options?: RequestOptions\n ): Promise<StatusResponse> {\n const axiosResponse = await httpService.get<StatusResponse>(\n `/basic/status?apiKey=${this.apiKey}`,\n {\n params: statusRequest,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async swap(\n swapRequest: SwapRequest,\n options?: RequestOptions\n ): Promise<SwapResponse> {\n const body = {\n ...swapRequest,\n from: assetToString(swapRequest.from),\n to: assetToString(swapRequest.to),\n swappers:\n !!swapRequest.swappers && swapRequest.swappers.length > 0\n ? swapRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!swapRequest.messagingProtocols &&\n swapRequest.messagingProtocols.length > 0\n ? swapRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await httpService.get<SwapResponse>(\n `/basic/swap?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest,\n options?: RequestOptions\n ): Promise<void> {\n await httpService.post(\n `/basic/report-tx?apiKey=${this.apiKey}`,\n requestBody,\n {\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress,\n options?: RequestOptions\n ): Promise<WalletDetailsResponse> {\n const axiosResponse = await httpService.get<WalletDetailsResponse>(\n `/basic/balance?apiKey=${this.apiKey}`,\n {\n params: walletAddress,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n const prettifiedError = prettifyError(error)\n try {\n const message = prettifiedError?.message || 'Error executing the route'\n this.reportFailure({\n requestId: route.requestId,\n eventType: 'TX_FAIL',\n reason: message,\n })\n } catch (err) {\n console.log({ err })\n }\n throw prettifiedError\n }\n }\n}\n"],"names":["baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","blockchainMeta","MetamaskErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","parse","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","sleep","ms","Promise","resolve","setTimeout","prepareEvmTransaction","evmTx","isApprove","gasPrice","startsWith","parseInt","toString","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","requestId","txId","rangoClient","isApproved","approvalResponse","txStatus","TransactionStatus","FAILED","console","log","err","checkTransactionStatusSync","status","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","Error","type","TransactionType","EVM","evmTransaction","txChainId","blockChain","chainId","getChainId","signerChainId","approveTxData","sendTransaction","approveTx","wait","hash","mainTxData","mainTx","prettifyError","code","Object","values","getMessageFromCode","message","RangoClient","apiKey","debug","window","deviceId","localStorage","getItem","generatedId","uuid","setItem","e","interceptors","request","use","JSON","stringify","response","meta","options","get","axiosResponse","chains","swappers","messagingProtocols","quote","quoteRequest","body","length","join","undefined","params","headers","statusRequest","swap","swapRequest","reportFailure","requestBody","post","balance","walletAddress","prettifiedError","eventType","reason"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rango-sdk-basic.cjs.development.js","sources":["../src/types/api/common.ts","../../../node_modules/rango-types/src/api/shared/type-gaurds.ts","../../../node_modules/rango-types/src/api/shared/routing.ts","../../../node_modules/rango-types/src/api/shared/transactions.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["import { Asset } from 'rango-types/lib/api/basic'\nexport * from 'rango-types/lib/api/basic/common'\n\nexport function assetToString(asset: Asset): string {\n if (!!asset.address)\n return `${asset.blockchain}.${asset.symbol}--${asset.address}`\n else return `${asset.blockchain}.${asset.symbol}`\n}\n",null,null,null,"export const MetamaskErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n}\n","export function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n","import { Signer } from 'ethers'\nimport { RangoClient } from './client'\nimport { EvmTransaction } from '../types/api/txs'\nimport {\n StatusResponse,\n SwapResponse,\n TransactionStatus,\n TransactionType,\n} from '../types/api/transactions'\nimport { sleep } from '../utils/promise'\n\nexport function prepareEvmTransaction(\n evmTx: EvmTransaction,\n isApprove: boolean\n) {\n const gasPrice =\n !!evmTx.gasPrice && !evmTx.gasPrice.startsWith('0x')\n ? '0x' + parseInt(evmTx.gasPrice).toString(16)\n : null\n const manipulatedTx = {\n ...evmTx,\n gasPrice,\n }\n let tx = {}\n if (!!manipulatedTx.from) tx = { ...tx, from: manipulatedTx.from }\n if (isApprove) {\n if (!!manipulatedTx.approveTo) tx = { ...tx, to: manipulatedTx.approveTo }\n if (!!manipulatedTx.approveData)\n tx = { ...tx, data: manipulatedTx.approveData }\n } else {\n if (!!manipulatedTx.txTo) tx = { ...tx, to: manipulatedTx.txTo }\n if (!!manipulatedTx.txData) tx = { ...tx, data: manipulatedTx.txData }\n if (!!manipulatedTx.value) tx = { ...tx, value: manipulatedTx.value }\n if (!!manipulatedTx.gasLimit)\n tx = { ...tx, gasLimit: manipulatedTx.gasLimit }\n if (!!manipulatedTx.gasPrice)\n tx = { ...tx, gasPrice: manipulatedTx.gasPrice }\n }\n return tx\n}\n\nasync function checkApprovalSync(\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n): Promise<boolean> {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse?.isApproved) return true\n if (\n !approvalResponse?.isApproved &&\n approvalResponse?.txStatus === TransactionStatus.FAILED\n )\n return false\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n await sleep(3_000)\n }\n}\n\nexport const checkTransactionStatusSync = async (\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n) => {\n let txStatus: StatusResponse | undefined\n while (true) {\n try {\n txStatus = await rangoClient.status({\n requestId,\n txId,\n })\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n if (!!txStatus) {\n if (\n !!txStatus.status &&\n [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(\n txStatus.status\n )\n ) {\n return txStatus\n }\n }\n await sleep(3_000)\n }\n}\n\nexport const executeEvmRoute = async (\n client: RangoClient,\n signer: Signer,\n route: SwapResponse\n): Promise<StatusResponse> => {\n const { tx, requestId, error, resultType } = route\n if (resultType != 'OK') throw new Error(resultType)\n if (!!error || !tx)\n throw new Error(error || 'Error creating the transaction.')\n if (tx?.type !== TransactionType.EVM)\n throw new Error('Non Evm transactions are not supported yet.')\n const evmTransaction = tx as EvmTransaction\n if (!evmTransaction) throw new Error('Transaction is null. Please try again!')\n const txChainId = parseInt(evmTransaction.blockChain.chainId || '-1')\n let signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n if (!!evmTransaction.approveTo && !!evmTransaction.approveData) {\n const approveTxData = prepareEvmTransaction(evmTransaction, true)\n const approveTx = await signer.sendTransaction(approveTxData)\n approveTx.wait()\n const isApproved = await checkApprovalSync(\n requestId,\n approveTx.hash,\n client\n )\n if (!isApproved) throw new Error('Error in approve transaction.')\n }\n signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n const mainTxData = prepareEvmTransaction(evmTransaction, false)\n const mainTx = await signer.sendTransaction(mainTxData)\n mainTx.wait()\n const status = await checkTransactionStatusSync(\n requestId,\n mainTx.hash,\n client\n )\n if (status.status !== TransactionStatus.SUCCESS)\n throw new Error(`Cross-chain swap failed. ${status.error || ''}`)\n return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const prettifyError = (error: any) => {\n if (!error) return error\n if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001))\n return new Error('Transaction Rejected')\n if (error && typeof error.code === 'number') {\n if (Object.values(MetamaskErrorCodes.provider).includes(error.code)) {\n return new Error(getMessageFromCode(error.code))\n }\n if (Object.values(MetamaskErrorCodes.rpc).includes(error.code)) {\n if (\n error.code === MetamaskErrorCodes.rpc.internal &&\n error.message?.includes('underpriced')\n )\n return new Error('Transaction underpriced')\n if (\n error.message?.includes('intrinsic gas too low') ||\n error.message?.includes('out of gas')\n )\n return new Error('This Gas limit is low.')\n return new Error(getMessageFromCode(error.code))\n }\n }\n if (error.message) return new Error(error.message)\n return error\n}\n","import uuid from 'uuid-random'\n\nimport {\n MetaResponse,\n QuoteRequest,\n QuoteResponse,\n CheckApprovalResponse,\n StatusRequest,\n StatusResponse,\n SwapRequest,\n SwapResponse,\n ReportTransactionRequest,\n WalletDetailsResponse,\n assetToString,\n BlockchainMeta,\n SwapperMeta,\n RequestOptions,\n MessagingProtocolsResponse,\n} from '../types'\nimport { Signer } from 'ethers'\nimport { executeEvmRoute as executeEvmRoute } from './executor'\nimport { prettifyError } from '../utils/errors'\nimport axios, { AxiosInstance } from 'axios'\n\ntype WalletAddress = { blockchain: string; address: string }\n\nexport class RangoClient {\n private readonly deviceId: string\n private readonly apiKey: string\n private readonly apiUrl: string\n private readonly httpService: AxiosInstance\n\n constructor(apiKey: string, debug = false, apiUrl?: string) {\n this.apiUrl = apiUrl || 'https://api.rango.exchange'\n this.apiKey = apiKey\n try {\n if (typeof window !== 'undefined') {\n const deviceId = localStorage.getItem('deviceId')\n if (deviceId) {\n this.deviceId = deviceId\n } else {\n const generatedId = uuid()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = uuid()\n }\n } catch (e) {\n this.deviceId = uuid()\n }\n this.httpService = axios.create({\n baseURL: this.apiUrl,\n })\n if (debug) {\n this.httpService.interceptors.request.use((request) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n this.httpService.interceptors.response.use((response) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(options?: RequestOptions): Promise<MetaResponse> {\n const axiosResponse = await this.httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async chains(options?: RequestOptions): Promise<BlockchainMeta[]> {\n const axiosResponse = await this.httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async swappers(options?: RequestOptions): Promise<SwapperMeta[]> {\n const axiosResponse = await this.httpService.get<SwapperMeta[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async messagingProtocols(\n options?: RequestOptions\n ): Promise<MessagingProtocolsResponse> {\n const axiosResponse =\n await this.httpService.get<MessagingProtocolsResponse>(\n `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async quote(\n quoteRequest: QuoteRequest,\n options?: RequestOptions\n ): Promise<QuoteResponse> {\n const body = {\n ...quoteRequest,\n from: assetToString(quoteRequest.from),\n to: assetToString(quoteRequest.to),\n swappers:\n !!quoteRequest.swappers && quoteRequest.swappers.length > 0\n ? quoteRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!quoteRequest.messagingProtocols &&\n quoteRequest.messagingProtocols.length > 0\n ? quoteRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await this.httpService.get<QuoteResponse>(\n `/basic/quote?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string,\n options?: RequestOptions\n ): Promise<CheckApprovalResponse> {\n const axiosResponse = await this.httpService.get<CheckApprovalResponse>(\n `/basic/is-approved?apiKey=${this.apiKey}`,\n {\n params: { requestId, txId },\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async status(\n statusRequest: StatusRequest,\n options?: RequestOptions\n ): Promise<StatusResponse> {\n const axiosResponse = await this.httpService.get<StatusResponse>(\n `/basic/status?apiKey=${this.apiKey}`,\n {\n params: statusRequest,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async swap(\n swapRequest: SwapRequest,\n options?: RequestOptions\n ): Promise<SwapResponse> {\n const body = {\n ...swapRequest,\n from: assetToString(swapRequest.from),\n to: assetToString(swapRequest.to),\n referrerAddress: swapRequest.referrerAddress || null,\n referrerFee: swapRequest.referrerFee || null,\n disableEstimate: swapRequest.disableEstimate || false,\n swappers:\n !!swapRequest.swappers && swapRequest.swappers.length > 0\n ? swapRequest.swappers.join(',')\n : undefined,\n swapperGroups:\n !!swapRequest.swapperGroups && swapRequest.swapperGroups.length > 0\n ? swapRequest.swapperGroups.join(',')\n : undefined,\n messagingProtocols:\n !!swapRequest.messagingProtocols &&\n swapRequest.messagingProtocols.length > 0\n ? swapRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await this.httpService.get<SwapResponse>(\n `/basic/swap?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest,\n options?: RequestOptions\n ): Promise<void> {\n await this.httpService.post(\n `/basic/report-tx?apiKey=${this.apiKey}`,\n requestBody,\n {\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress,\n options?: RequestOptions\n ): Promise<WalletDetailsResponse> {\n const axiosResponse = await this.httpService.get<WalletDetailsResponse>(\n `/basic/balance?apiKey=${this.apiKey}`,\n {\n params: walletAddress,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n const prettifiedError = prettifyError(error)\n try {\n const message = prettifiedError?.message || 'Error executing the route'\n this.reportFailure({\n requestId: route.requestId,\n eventType: 'TX_FAIL',\n reason: message,\n })\n } catch (err) {\n console.log({ err })\n }\n throw prettifiedError\n }\n }\n}\n"],"names":["assetToString","asset","address","blockchain","symbol","blockchainMeta","MetamaskErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","parse","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","sleep","ms","Promise","resolve","setTimeout","prepareEvmTransaction","evmTx","isApprove","gasPrice","startsWith","parseInt","toString","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","requestId","txId","rangoClient","isApproved","approvalResponse","txStatus","TransactionStatus","FAILED","console","log","err","checkTransactionStatusSync","status","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","Error","type","TransactionType","EVM","evmTransaction","txChainId","blockChain","chainId","getChainId","signerChainId","approveTxData","sendTransaction","approveTx","wait","hash","mainTxData","mainTx","prettifyError","code","Object","values","getMessageFromCode","message","RangoClient","apiKey","debug","apiUrl","window","deviceId","localStorage","getItem","generatedId","uuid","setItem","e","httpService","axios","create","baseURL","interceptors","request","use","JSON","stringify","response","meta","options","get","axiosResponse","chains","swappers","messagingProtocols","quote","quoteRequest","body","length","join","undefined","params","headers","statusRequest","swap","swapRequest","referrerAddress","referrerFee","disableEstimate","swapperGroups","reportFailure","requestBody","post","balance","walletAddress","prettifiedError","eventType","reason"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("uuid-random")),r=t(require("axios")),n=require("eth-rpc-errors");function o(){o=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function p(t,e,r,o){var a=Object.create((e&&e.prototype instanceof h?e:h).prototype),i=new S(o||[]);return n(a,"_invoke",{value:E(t,r,i)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=p;var l={};function h(){}function d(){}function v(){}var g={};u(g,i,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(O([])));m&&m!==e&&r.call(m,i)&&(g=m);var x=v.prototype=h.prototype=Object.create(g);function w(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var o;n(this,"_invoke",{value:function(n,a){function i(){return new e((function(o,i){!function n(o,a,i,s){var c=f(t[o],t,a);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,i,s)}),(function(t){n("throw",t,i,s)})):e.resolve(p).then((function(t){u.value=t,i(u)}),(function(t){return n("throw",t,i,s)}))}s(c.arg)}(n,a,o,i)}))}return o=o?o.then(i,i):i()}})}function E(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=T(i,r);if(s){if(s===l)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=f(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function T(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,T(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),l;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,l;var a=o.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function O(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:L}}function L(){return{value:void 0,done:!0}}return d.prototype=v,n(x,"constructor",{value:v,configurable:!0}),n(v,"constructor",{value:d,configurable:!0}),d.displayName=u(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,u(t,c,"GeneratorFunction")),t.prototype=Object.create(x),t},t.awrap=function(t){return{__await:t}},w(b.prototype),u(b.prototype,s,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new b(p(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},w(x),u(x,c,"Generator"),u(x,i,(function(){return this})),u(x,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=O,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(I),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),I(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;I(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function a(t,e,r,n,o,a,i){try{var s=t[a](i),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,o)}function i(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function s(t){a(i,n,o,s,c,"next",t)}function c(t){a(i,n,o,s,c,"throw",t)}s(void 0)}))}}function s(){return(s=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var c="undefined"!=typeof process&&process.env.REACT_APP_RANGO_BASE_URL?process.env.REACT_APP_RANGO_BASE_URL:"https://api.rango.exchange",u=r.create({baseURL:c});function p(t){return t.address?t.blockchain+"."+t.symbol+"--"+t.address:t.blockchain+"."+t.symbol}var f,l,h=function(t){return"EVM"===t.type},d=function(t){return"COSMOS"===t.type},v=function(t){return"SOLANA"===t.type},g=function(t){return"TRON"===t.type},y=function(t){return"TRANSFER"===t.type},m=function(t){return"STARKNET"===t.type};(f=exports.RoutingResultType||(exports.RoutingResultType={})).OK="OK",f.HIGH_IMPACT="HIGH_IMPACT",f.NO_ROUTE="NO_ROUTE",f.INPUT_LIMIT_ISSUE="INPUT_LIMIT_ISSUE",(l=exports.TransactionType||(exports.TransactionType={})).EVM="EVM",l.TRANSFER="TRANSFER",l.COSMOS="COSMOS",l.SOLANA="SOLANA",l.TRON="TRON",l.STARKNET="STARKNET";var x,w=exports.TransactionType;(x=exports.TransactionStatus||(exports.TransactionStatus={})).FAILED="failed",x.RUNNING="running",x.SUCCESS="success";var b={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901}};function E(t){return new Promise((function(e){return setTimeout(e,t)}))}function T(t,e){var r=t.gasPrice&&!t.gasPrice.startsWith("0x")?"0x"+parseInt(t.gasPrice).toString(16):null,n=s({},t,{gasPrice:r}),o={};return n.from&&(o=s({},o,{from:n.from})),e?(n.approveTo&&(o=s({},o,{to:n.approveTo})),n.approveData&&(o=s({},o,{data:n.approveData}))):(n.txTo&&(o=s({},o,{to:n.txTo})),n.txData&&(o=s({},o,{data:n.txData})),n.value&&(o=s({},o,{value:n.value})),n.gasLimit&&(o=s({},o,{gasLimit:n.gasLimit})),n.gasPrice&&(o=s({},o,{gasPrice:n.gasPrice}))),o}function k(t,e,r){return I.apply(this,arguments)}function I(){return(I=i(o().mark((function t(e,r,n){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=1,t.next=4,n.isApproved(e,r);case 4:if(null==(a=t.sent)||!a.isApproved){t.next=7;break}return t.abrupt("return",!0);case 7:if(null!=a&&a.isApproved||(null==a?void 0:a.txStatus)!==exports.TransactionStatus.FAILED){t.next=9;break}return t.abrupt("return",!1);case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),console.log("ignorinig error",{err:t.t0});case 14:return t.next=16,E(3e3);case 16:t.next=0;break;case 18:case"end":return t.stop()}}),t,null,[[1,11]])})))).apply(this,arguments)}var S=function(){var t=i(o().mark((function t(e,r,n){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=1,t.next=4,n.status({requestId:e,txId:r});case 4:a=t.sent,t.next=10;break;case 7:t.prev=7,t.t0=t.catch(1),console.log("ignorinig error",{err:t.t0});case 10:if(!a){t.next=13;break}if(!a.status||![exports.TransactionStatus.FAILED,exports.TransactionStatus.SUCCESS].includes(a.status)){t.next=13;break}return t.abrupt("return",a);case 13:return t.next=15,E(3e3);case 15:t.next=0;break;case 17:case"end":return t.stop()}}),t,null,[[1,7]])})));return function(e,r,n){return t.apply(this,arguments)}}(),O=function(){var t=i(o().mark((function t(e,r,n){var a,i,s,c,u,p,f,l,h,d,v,g;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=n.tx,i=n.requestId,s=n.error,"OK"==(c=n.resultType)){t.next=3;break}throw new Error(c);case 3:if(!s&&a){t.next=5;break}throw new Error(s||"Error creating the transaction.");case 5:if((null==a?void 0:a.type)===exports.TransactionType.EVM){t.next=7;break}throw new Error("Non Evm transactions are not supported yet.");case 7:if(u=a){t.next=10;break}throw new Error("Transaction is null. Please try again!");case 10:return p=parseInt(u.blockChain.chainId||"-1"),t.next=13,r.getChainId();case 13:if((f=t.sent)===p){t.next=16;break}throw new Error("Signer chainId "+f+" doesn't match required chainId "+p+".");case 16:if(!u.approveTo||!u.approveData){t.next=27;break}return l=T(u,!0),t.next=20,r.sendTransaction(l);case 20:return(h=t.sent).wait(),t.next=24,k(i,h.hash,e);case 24:if(t.sent){t.next=27;break}throw new Error("Error in approve transaction.");case 27:return t.next=29,r.getChainId();case 29:if((f=t.sent)===p){t.next=32;break}throw new Error("Signer chainId "+f+" doesn't match required chainId "+p+".");case 32:return d=T(u,!1),t.next=35,r.sendTransaction(d);case 35:return(v=t.sent).wait(),t.next=39,S(i,v.hash,e);case 39:if((g=t.sent).status===exports.TransactionStatus.SUCCESS){t.next=42;break}throw new Error("Cross-chain swap failed. "+(g.error||""));case 42:return t.abrupt("return",g);case 43:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),L=function(t){if(!t)return t;if(t.code&&("ACTION_REJECTED"===t.code||4001===t.code))return new Error("Transaction Rejected");if(t&&"number"==typeof t.code){if(Object.values(b.provider).includes(t.code))return new Error(n.getMessageFromCode(t.code));var e,r,o;if(Object.values(b.rpc).includes(t.code))return t.code===b.rpc.internal&&null!=(e=t.message)&&e.includes("underpriced")?new Error("Transaction underpriced"):null!=(r=t.message)&&r.includes("intrinsic gas too low")||null!=(o=t.message)&&o.includes("out of gas")?new Error("This Gas limit is low."):new Error(n.getMessageFromCode(t.code))}return t.message?new Error(t.message):t},R=function(){function t(t,r){void 0===r&&(r=!1),this.apiKey=t;try{if("undefined"!=typeof window){var n=localStorage.getItem("deviceId");if(n)this.deviceId=n;else{var o=e();localStorage.setItem("deviceId",o),this.deviceId=o}}else this.deviceId=e()}catch(t){this.deviceId=e()}r&&(u.interceptors.request.use((function(t){return console.log("Starting Request",JSON.stringify(t,null,2)),t})),u.interceptors.response.use((function(t){return console.log("Response:",JSON.stringify(t,null,2)),t})))}var r=t.prototype;return r.meta=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/meta?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.chains=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/meta/blockchains?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.swappers=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/meta/swappers?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.messagingProtocols=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/meta/messaging-protocols?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.quote=function(){var t=i(o().mark((function t(e,r){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=s({},e,{from:p(e.from),to:p(e.to),swappers:e.swappers&&e.swappers.length>0?e.swappers.join(","):void 0,messagingProtocols:e.messagingProtocols&&e.messagingProtocols.length>0?e.messagingProtocols.join(","):void 0}),t.next=3,u.get("/basic/quote?apiKey="+this.apiKey,s({params:n,headers:{"X-Rango-Id":this.deviceId}},r));case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.isApproved=function(){var t=i(o().mark((function t(e,r,n){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/is-approved?apiKey="+this.apiKey,s({params:{requestId:e,txId:r},headers:{"X-Rango-Id":this.deviceId}},n));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e,r,n){return t.apply(this,arguments)}}(),r.status=function(){var t=i(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/status?apiKey="+this.apiKey,s({params:e,headers:{"X-Rango-Id":this.deviceId}},r));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.swap=function(){var t=i(o().mark((function t(e,r){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=s({},e,{from:p(e.from),to:p(e.to),swappers:e.swappers&&e.swappers.length>0?e.swappers.join(","):void 0,messagingProtocols:e.messagingProtocols&&e.messagingProtocols.length>0?e.messagingProtocols.join(","):void 0}),t.next=3,u.get("/basic/swap?apiKey="+this.apiKey,s({params:n,headers:{"X-Rango-Id":this.deviceId}},r));case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.reportFailure=function(){var t=i(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.post("/basic/report-tx?apiKey="+this.apiKey,e,s({headers:{"X-Rango-Id":this.deviceId}},r));case 2:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.balance=function(){var t=i(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.get("/basic/balance?apiKey="+this.apiKey,s({params:e,headers:{"X-Rango-Id":this.deviceId}},r));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.executeEvmRoute=function(){var t=i(o().mark((function t(e,r){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,O(this,e,r);case 3:return t.abrupt("return",t.sent);case 6:t.prev=6,t.t0=t.catch(0),n=L(t.t0);try{this.reportFailure({requestId:r.requestId,eventType:"TX_FAIL",reason:(null==n?void 0:n.message)||"Error executing the route"})}catch(t){console.log({err:t})}throw n;case 11:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(e,r){return t.apply(this,arguments)}}(),t}();exports.GenericTransactionType=w,exports.MetamaskErrorCodes=b,exports.RangoClient=R,exports.assetToString=p,exports.cosmosBlockchains=function(t){return t.filter(d)},exports.evmBlockchains=function(t){return t.filter(h)},exports.isCosmosBlockchain=d,exports.isEvmBlockchain=h,exports.isSolanaBlockchain=v,exports.isStarknetBlockchain=m,exports.isTransferBlockchain=y,exports.isTronBlockchain=g,exports.solanaBlockchain=function(t){return t.filter(v)},exports.starknetBlockchain=function(t){return t.filter(m)},exports.transferBlockchains=function(t){return t.filter(y)},exports.tronBlockchain=function(t){return t.filter(g)};
|
|
1
|
+
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("uuid-random")),r=require("eth-rpc-errors"),n=t(require("axios"));function o(){o=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function p(t,e,r,o){var a=Object.create((e&&e.prototype instanceof l?e:l).prototype),i=new I(o||[]);return n(a,"_invoke",{value:S(t,r,i)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=p;var f={};function l(){}function d(){}function v(){}var g={};u(g,i,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(O([])));m&&m!==e&&r.call(m,i)&&(g=m);var x=v.prototype=l.prototype=Object.create(g);function w(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var o;n(this,"_invoke",{value:function(n,a){function i(){return new e((function(o,i){!function n(o,a,i,s){var c=h(t[o],t,a);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,i,s)}),(function(t){n("throw",t,i,s)})):e.resolve(p).then((function(t){u.value=t,i(u)}),(function(t){return n("throw",t,i,s)}))}s(c.arg)}(n,a,o,i)}))}return o=o?o.then(i,i):i()}})}function S(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=E(i,r);if(s){if(s===f)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=h(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function E(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,E(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),f;var o=h(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,f;var a=o.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function O(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:L}}function L(){return{value:void 0,done:!0}}return d.prototype=v,n(x,"constructor",{value:v,configurable:!0}),n(v,"constructor",{value:d,configurable:!0}),d.displayName=u(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,u(t,c,"GeneratorFunction")),t.prototype=Object.create(x),t},t.awrap=function(t){return{__await:t}},w(b.prototype),u(b.prototype,s,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new b(p(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},w(x),u(x,c,"Generator"),u(x,i,(function(){return this})),u(x,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=O,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),f},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function a(t,e,r,n,o,a,i){try{var s=t[a](i),c=s.value}catch(t){return void r(t)}s.done?e(c):Promise.resolve(c).then(n,o)}function i(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function s(t){a(i,n,o,s,c,"next",t)}function c(t){a(i,n,o,s,c,"throw",t)}s(void 0)}))}}function s(){return(s=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}function c(t){return t.address?t.blockchain+"."+t.symbol+"--"+t.address:t.blockchain+"."+t.symbol}var u,p,h,f,l=function(t){return"EVM"===t.type},d=function(t){return"COSMOS"===t.type},v=function(t){return"SOLANA"===t.type},g=function(t){return"TRON"===t.type},y=function(t){return"TRANSFER"===t.type},m=function(t){return"STARKNET"===t.type};(u=exports.RoutingResultType||(exports.RoutingResultType={})).OK="OK",u.HIGH_IMPACT="HIGH_IMPACT",u.NO_ROUTE="NO_ROUTE",u.INPUT_LIMIT_ISSUE="INPUT_LIMIT_ISSUE",(p=exports.TransactionType||(exports.TransactionType={})).EVM="EVM",p.TRANSFER="TRANSFER",p.COSMOS="COSMOS",p.SOLANA="SOLANA",p.TRON="TRON",p.STARKNET="STARKNET",(h=exports.GenericTransactionType||(exports.GenericTransactionType={})).EVM="EVM",h.TRANSFER="TRANSFER",h.COSMOS="COSMOS",h.SOLANA="SOLANA",(f=exports.TransactionStatus||(exports.TransactionStatus={})).FAILED="failed",f.RUNNING="running",f.SUCCESS="success";var x={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901}};function w(t){return new Promise((function(e){return setTimeout(e,t)}))}function b(t,e){var r=t.gasPrice&&!t.gasPrice.startsWith("0x")?"0x"+parseInt(t.gasPrice).toString(16):null,n=s({},t,{gasPrice:r}),o={};return n.from&&(o=s({},o,{from:n.from})),e?(n.approveTo&&(o=s({},o,{to:n.approveTo})),n.approveData&&(o=s({},o,{data:n.approveData}))):(n.txTo&&(o=s({},o,{to:n.txTo})),n.txData&&(o=s({},o,{data:n.txData})),n.value&&(o=s({},o,{value:n.value})),n.gasLimit&&(o=s({},o,{gasLimit:n.gasLimit})),n.gasPrice&&(o=s({},o,{gasPrice:n.gasPrice}))),o}function S(t,e,r){return E.apply(this,arguments)}function E(){return(E=i(o().mark((function t(e,r,n){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=1,t.next=4,n.isApproved(e,r);case 4:if(null==(a=t.sent)||!a.isApproved){t.next=7;break}return t.abrupt("return",!0);case 7:if(null!=a&&a.isApproved||(null==a?void 0:a.txStatus)!==exports.TransactionStatus.FAILED){t.next=9;break}return t.abrupt("return",!1);case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),console.log("ignorinig error",{err:t.t0});case 14:return t.next=16,w(3e3);case 16:t.next=0;break;case 18:case"end":return t.stop()}}),t,null,[[1,11]])})))).apply(this,arguments)}var T=function(){var t=i(o().mark((function t(e,r,n){var a;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=1,t.next=4,n.status({requestId:e,txId:r});case 4:a=t.sent,t.next=10;break;case 7:t.prev=7,t.t0=t.catch(1),console.log("ignorinig error",{err:t.t0});case 10:if(!a){t.next=13;break}if(!a.status||![exports.TransactionStatus.FAILED,exports.TransactionStatus.SUCCESS].includes(a.status)){t.next=13;break}return t.abrupt("return",a);case 13:return t.next=15,w(3e3);case 15:t.next=0;break;case 17:case"end":return t.stop()}}),t,null,[[1,7]])})));return function(e,r,n){return t.apply(this,arguments)}}(),k=function(){var t=i(o().mark((function t(e,r,n){var a,i,s,c,u,p,h,f,l,d,v,g;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=n.tx,i=n.requestId,s=n.error,"OK"==(c=n.resultType)){t.next=3;break}throw new Error(c);case 3:if(!s&&a){t.next=5;break}throw new Error(s||"Error creating the transaction.");case 5:if((null==a?void 0:a.type)===exports.TransactionType.EVM){t.next=7;break}throw new Error("Non Evm transactions are not supported yet.");case 7:if(u=a){t.next=10;break}throw new Error("Transaction is null. Please try again!");case 10:return p=parseInt(u.blockChain.chainId||"-1"),t.next=13,r.getChainId();case 13:if((h=t.sent)===p){t.next=16;break}throw new Error("Signer chainId "+h+" doesn't match required chainId "+p+".");case 16:if(!u.approveTo||!u.approveData){t.next=27;break}return f=b(u,!0),t.next=20,r.sendTransaction(f);case 20:return(l=t.sent).wait(),t.next=24,S(i,l.hash,e);case 24:if(t.sent){t.next=27;break}throw new Error("Error in approve transaction.");case 27:return t.next=29,r.getChainId();case 29:if((h=t.sent)===p){t.next=32;break}throw new Error("Signer chainId "+h+" doesn't match required chainId "+p+".");case 32:return d=b(u,!1),t.next=35,r.sendTransaction(d);case 35:return(v=t.sent).wait(),t.next=39,T(i,v.hash,e);case 39:if((g=t.sent).status===exports.TransactionStatus.SUCCESS){t.next=42;break}throw new Error("Cross-chain swap failed. "+(g.error||""));case 42:return t.abrupt("return",g);case 43:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),I=function(t){if(!t)return t;if(t.code&&("ACTION_REJECTED"===t.code||4001===t.code))return new Error("Transaction Rejected");if(t&&"number"==typeof t.code){if(Object.values(x.provider).includes(t.code))return new Error(r.getMessageFromCode(t.code));var e,n,o;if(Object.values(x.rpc).includes(t.code))return t.code===x.rpc.internal&&null!=(e=t.message)&&e.includes("underpriced")?new Error("Transaction underpriced"):null!=(n=t.message)&&n.includes("intrinsic gas too low")||null!=(o=t.message)&&o.includes("out of gas")?new Error("This Gas limit is low."):new Error(r.getMessageFromCode(t.code))}return t.message?new Error(t.message):t},O=function(){function t(t,r,o){void 0===r&&(r=!1),this.apiUrl=o||"https://api.rango.exchange",this.apiKey=t;try{if("undefined"!=typeof window){var a=localStorage.getItem("deviceId");if(a)this.deviceId=a;else{var i=e();localStorage.setItem("deviceId",i),this.deviceId=i}}else this.deviceId=e()}catch(t){this.deviceId=e()}this.httpService=n.create({baseURL:this.apiUrl}),r&&(this.httpService.interceptors.request.use((function(t){return console.log("Starting Request",JSON.stringify(t,null,2)),t})),this.httpService.interceptors.response.use((function(t){return console.log("Response:",JSON.stringify(t,null,2)),t})))}var r=t.prototype;return r.meta=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/meta?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.chains=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/meta/blockchains?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.swappers=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/meta/swappers?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.messagingProtocols=function(){var t=i(o().mark((function t(e){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/meta/messaging-protocols?apiKey="+this.apiKey,s({},e));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.quote=function(){var t=i(o().mark((function t(e,r){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=s({},e,{from:c(e.from),to:c(e.to),swappers:e.swappers&&e.swappers.length>0?e.swappers.join(","):void 0,messagingProtocols:e.messagingProtocols&&e.messagingProtocols.length>0?e.messagingProtocols.join(","):void 0}),t.next=3,this.httpService.get("/basic/quote?apiKey="+this.apiKey,s({params:n,headers:{"X-Rango-Id":this.deviceId}},r));case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.isApproved=function(){var t=i(o().mark((function t(e,r,n){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/is-approved?apiKey="+this.apiKey,s({params:{requestId:e,txId:r},headers:{"X-Rango-Id":this.deviceId}},n));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e,r,n){return t.apply(this,arguments)}}(),r.status=function(){var t=i(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/status?apiKey="+this.apiKey,s({params:e,headers:{"X-Rango-Id":this.deviceId}},r));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.swap=function(){var t=i(o().mark((function t(e,r){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=s({},e,{from:c(e.from),to:c(e.to),referrerAddress:e.referrerAddress||null,referrerFee:e.referrerFee||null,disableEstimate:e.disableEstimate||!1,swappers:e.swappers&&e.swappers.length>0?e.swappers.join(","):void 0,swapperGroups:e.swapperGroups&&e.swapperGroups.length>0?e.swapperGroups.join(","):void 0,messagingProtocols:e.messagingProtocols&&e.messagingProtocols.length>0?e.messagingProtocols.join(","):void 0}),t.next=3,this.httpService.get("/basic/swap?apiKey="+this.apiKey,s({params:n,headers:{"X-Rango-Id":this.deviceId}},r));case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.reportFailure=function(){var t=i(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.post("/basic/report-tx?apiKey="+this.apiKey,e,s({headers:{"X-Rango-Id":this.deviceId}},r));case 2:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.balance=function(){var t=i(o().mark((function t(e,r){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.httpService.get("/basic/balance?apiKey="+this.apiKey,s({params:e,headers:{"X-Rango-Id":this.deviceId}},r));case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(e,r){return t.apply(this,arguments)}}(),r.executeEvmRoute=function(){var t=i(o().mark((function t(e,r){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,k(this,e,r);case 3:return t.abrupt("return",t.sent);case 6:t.prev=6,t.t0=t.catch(0),n=I(t.t0);try{this.reportFailure({requestId:r.requestId,eventType:"TX_FAIL",reason:(null==n?void 0:n.message)||"Error executing the route"})}catch(t){console.log({err:t})}throw n;case 11:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(e,r){return t.apply(this,arguments)}}(),t}();exports.MetamaskErrorCodes=x,exports.RangoClient=O,exports.assetToString=c,exports.cosmosBlockchains=function(t){return t.filter(d)},exports.evmBlockchains=function(t){return t.filter(l)},exports.isCosmosBlockchain=d,exports.isEvmBlockchain=l,exports.isSolanaBlockchain=v,exports.isStarknetBlockchain=m,exports.isTransferBlockchain=y,exports.isTronBlockchain=g,exports.solanaBlockchain=function(t){return t.filter(v)},exports.starknetBlockchain=function(t){return t.filter(m)},exports.transferBlockchains=function(t){return t.filter(y)},exports.tronBlockchain=function(t){return t.filter(g)};
|
|
2
2
|
//# sourceMappingURL=rango-sdk-basic.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rango-sdk-basic.cjs.production.min.js","sources":["../src/services/httpService.ts","../src/types/api/common.ts","../../../node_modules/rango-types/src/api/shared/type-gaurds.ts","../../../node_modules/rango-types/src/api/shared/transactions.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["import axios from 'axios'\n\nconst baseURL =\n typeof process !== 'undefined' && process.env.REACT_APP_RANGO_BASE_URL\n ? process.env.REACT_APP_RANGO_BASE_URL\n : 'https://api.rango.exchange'\n\nexport const httpService = axios.create({\n baseURL,\n})\n","import { Asset } from 'rango-types/lib/api/basic'\nexport * from 'rango-types/lib/api/basic/common'\n\nexport function assetToString(asset: Asset): string {\n if (!!asset.address)\n return `${asset.blockchain}.${asset.symbol}--${asset.address}`\n else return `${asset.blockchain}.${asset.symbol}`\n}\n",null,null,"export const MetamaskErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n}\n","export function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n","import { Signer } from 'ethers'\nimport { RangoClient } from './client'\nimport { EvmTransaction } from '../types/api/txs'\nimport {\n StatusResponse,\n SwapResponse,\n TransactionStatus,\n TransactionType,\n} from '../types/api/transactions'\nimport { sleep } from '../utils/promise'\n\nexport function prepareEvmTransaction(\n evmTx: EvmTransaction,\n isApprove: boolean\n) {\n const gasPrice =\n !!evmTx.gasPrice && !evmTx.gasPrice.startsWith('0x')\n ? '0x' + parseInt(evmTx.gasPrice).toString(16)\n : null\n const manipulatedTx = {\n ...evmTx,\n gasPrice,\n }\n let tx = {}\n if (!!manipulatedTx.from) tx = { ...tx, from: manipulatedTx.from }\n if (isApprove) {\n if (!!manipulatedTx.approveTo) tx = { ...tx, to: manipulatedTx.approveTo }\n if (!!manipulatedTx.approveData)\n tx = { ...tx, data: manipulatedTx.approveData }\n } else {\n if (!!manipulatedTx.txTo) tx = { ...tx, to: manipulatedTx.txTo }\n if (!!manipulatedTx.txData) tx = { ...tx, data: manipulatedTx.txData }\n if (!!manipulatedTx.value) tx = { ...tx, value: manipulatedTx.value }\n if (!!manipulatedTx.gasLimit)\n tx = { ...tx, gasLimit: manipulatedTx.gasLimit }\n if (!!manipulatedTx.gasPrice)\n tx = { ...tx, gasPrice: manipulatedTx.gasPrice }\n }\n return tx\n}\n\nasync function checkApprovalSync(\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n): Promise<boolean> {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse?.isApproved) return true\n if (\n !approvalResponse?.isApproved &&\n approvalResponse?.txStatus === TransactionStatus.FAILED\n )\n return false\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n await sleep(3_000)\n }\n}\n\nexport const checkTransactionStatusSync = async (\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n) => {\n let txStatus: StatusResponse | undefined\n while (true) {\n try {\n txStatus = await rangoClient.status({\n requestId,\n txId,\n })\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n if (!!txStatus) {\n if (\n !!txStatus.status &&\n [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(\n txStatus.status\n )\n ) {\n return txStatus\n }\n }\n await sleep(3_000)\n }\n}\n\nexport const executeEvmRoute = async (\n client: RangoClient,\n signer: Signer,\n route: SwapResponse\n): Promise<StatusResponse> => {\n const { tx, requestId, error, resultType } = route\n if (resultType != 'OK') throw new Error(resultType)\n if (!!error || !tx)\n throw new Error(error || 'Error creating the transaction.')\n if (tx?.type !== TransactionType.EVM)\n throw new Error('Non Evm transactions are not supported yet.')\n const evmTransaction = tx as EvmTransaction\n if (!evmTransaction) throw new Error('Transaction is null. Please try again!')\n const txChainId = parseInt(evmTransaction.blockChain.chainId || '-1')\n let signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n if (!!evmTransaction.approveTo && !!evmTransaction.approveData) {\n const approveTxData = prepareEvmTransaction(evmTransaction, true)\n const approveTx = await signer.sendTransaction(approveTxData)\n approveTx.wait()\n const isApproved = await checkApprovalSync(\n requestId,\n approveTx.hash,\n client\n )\n if (!isApproved) throw new Error('Error in approve transaction.')\n }\n signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n const mainTxData = prepareEvmTransaction(evmTransaction, false)\n const mainTx = await signer.sendTransaction(mainTxData)\n mainTx.wait()\n const status = await checkTransactionStatusSync(\n requestId,\n mainTx.hash,\n client\n )\n if (status.status !== TransactionStatus.SUCCESS)\n throw new Error(`Cross-chain swap failed. ${status.error || ''}`)\n return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const prettifyError = (error: any) => {\n if (!error) return error\n if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001))\n return new Error('Transaction Rejected')\n if (error && typeof error.code === 'number') {\n if (Object.values(MetamaskErrorCodes.provider).includes(error.code)) {\n return new Error(getMessageFromCode(error.code))\n }\n if (Object.values(MetamaskErrorCodes.rpc).includes(error.code)) {\n if (\n error.code === MetamaskErrorCodes.rpc.internal &&\n error.message?.includes('underpriced')\n )\n return new Error('Transaction underpriced')\n if (\n error.message?.includes('intrinsic gas too low') ||\n error.message?.includes('out of gas')\n )\n return new Error('This Gas limit is low.')\n return new Error(getMessageFromCode(error.code))\n }\n }\n if (error.message) return new Error(error.message)\n return error\n}\n","import uuid from 'uuid-random'\n\nimport { httpService } from './httpService'\nimport {\n MetaResponse,\n QuoteRequest,\n QuoteResponse,\n CheckApprovalResponse,\n StatusRequest,\n StatusResponse,\n SwapRequest,\n SwapResponse,\n ReportTransactionRequest,\n WalletDetailsResponse,\n assetToString,\n BlockchainMeta,\n SwapperMeta,\n RequestOptions,\n MessagingProtocolsResponse,\n} from '../types'\nimport { Signer } from 'ethers'\nimport { executeEvmRoute as executeEvmRoute } from './executor'\nimport { prettifyError } from '../utils/errors'\n\ntype WalletAddress = { blockchain: string; address: string }\n\nexport class RangoClient {\n private readonly deviceId: string\n\n private readonly apiKey: string\n\n constructor(apiKey: string, debug = false) {\n this.apiKey = apiKey\n try {\n if (typeof window !== 'undefined') {\n const deviceId = localStorage.getItem('deviceId')\n if (deviceId) {\n this.deviceId = deviceId\n } else {\n const generatedId = uuid()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = uuid()\n }\n } catch (e) {\n this.deviceId = uuid()\n }\n if (debug) {\n httpService.interceptors.request.use((request) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n httpService.interceptors.response.use((response) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(options?: RequestOptions): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async chains(options?: RequestOptions): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async swappers(options?: RequestOptions): Promise<SwapperMeta[]> {\n const axiosResponse = await httpService.get<SwapperMeta[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async messagingProtocols(\n options?: RequestOptions\n ): Promise<MessagingProtocolsResponse> {\n const axiosResponse = await httpService.get<MessagingProtocolsResponse>(\n `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async quote(\n quoteRequest: QuoteRequest,\n options?: RequestOptions\n ): Promise<QuoteResponse> {\n const body = {\n ...quoteRequest,\n from: assetToString(quoteRequest.from),\n to: assetToString(quoteRequest.to),\n swappers:\n !!quoteRequest.swappers && quoteRequest.swappers.length > 0\n ? quoteRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!quoteRequest.messagingProtocols &&\n quoteRequest.messagingProtocols.length > 0\n ? quoteRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await httpService.get<QuoteResponse>(\n `/basic/quote?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string,\n options?: RequestOptions\n ): Promise<CheckApprovalResponse> {\n const axiosResponse = await httpService.get<CheckApprovalResponse>(\n `/basic/is-approved?apiKey=${this.apiKey}`,\n {\n params: { requestId, txId },\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async status(\n statusRequest: StatusRequest,\n options?: RequestOptions\n ): Promise<StatusResponse> {\n const axiosResponse = await httpService.get<StatusResponse>(\n `/basic/status?apiKey=${this.apiKey}`,\n {\n params: statusRequest,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async swap(\n swapRequest: SwapRequest,\n options?: RequestOptions\n ): Promise<SwapResponse> {\n const body = {\n ...swapRequest,\n from: assetToString(swapRequest.from),\n to: assetToString(swapRequest.to),\n swappers:\n !!swapRequest.swappers && swapRequest.swappers.length > 0\n ? swapRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!swapRequest.messagingProtocols &&\n swapRequest.messagingProtocols.length > 0\n ? swapRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await httpService.get<SwapResponse>(\n `/basic/swap?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest,\n options?: RequestOptions\n ): Promise<void> {\n await httpService.post(\n `/basic/report-tx?apiKey=${this.apiKey}`,\n requestBody,\n {\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress,\n options?: RequestOptions\n ): Promise<WalletDetailsResponse> {\n const axiosResponse = await httpService.get<WalletDetailsResponse>(\n `/basic/balance?apiKey=${this.apiKey}`,\n {\n params: walletAddress,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n const prettifiedError = prettifyError(error)\n try {\n const message = prettifiedError?.message || 'Error executing the route'\n this.reportFailure({\n requestId: route.requestId,\n eventType: 'TX_FAIL',\n reason: message,\n })\n } catch (err) {\n console.log({ err })\n }\n throw prettifiedError\n }\n }\n}\n"],"names":["baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","blockchainMeta","MetamaskErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","parse","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","sleep","ms","Promise","resolve","setTimeout","prepareEvmTransaction","evmTx","isApprove","gasPrice","startsWith","parseInt","toString","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","_checkApprovalSync","requestId","txId","rangoClient","_context3","isApproved","approvalResponse","txStatus","TransactionStatus","FAILED","console","log","err","checkTransactionStatusSync","_context","status","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","_context2","Error","type","TransactionType","EVM","evmTransaction","txChainId","blockChain","chainId","getChainId","signerChainId","approveTxData","sendTransaction","approveTx","wait","hash","mainTxData","mainTx","prettifyError","code","Object","values","getMessageFromCode","message","_error$message","_error$message2","_error$message3","RangoClient","apiKey","debug","this","window","deviceId","localStorage","getItem","generatedId","uuid","setItem","e","interceptors","request","use","JSON","stringify","response","_proto","meta","options","get","chains","swappers","messagingProtocols","_context4","quote","quoteRequest","body","length","join","undefined","_context5","params","headers","X-Rango-Id","_context6","statusRequest","_context7","swap","swapRequest","_context8","reportFailure","requestBody","_context9","post","balance","walletAddress","_context10","_context11","prettifiedError","eventType","reason"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rango-sdk-basic.cjs.production.min.js","sources":["../src/types/api/common.ts","../../../node_modules/rango-types/src/api/shared/type-gaurds.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["import { Asset } from 'rango-types/lib/api/basic'\nexport * from 'rango-types/lib/api/basic/common'\n\nexport function assetToString(asset: Asset): string {\n if (!!asset.address)\n return `${asset.blockchain}.${asset.symbol}--${asset.address}`\n else return `${asset.blockchain}.${asset.symbol}`\n}\n",null,"export const MetamaskErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n}\n","export function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n","import { Signer } from 'ethers'\nimport { RangoClient } from './client'\nimport { EvmTransaction } from '../types/api/txs'\nimport {\n StatusResponse,\n SwapResponse,\n TransactionStatus,\n TransactionType,\n} from '../types/api/transactions'\nimport { sleep } from '../utils/promise'\n\nexport function prepareEvmTransaction(\n evmTx: EvmTransaction,\n isApprove: boolean\n) {\n const gasPrice =\n !!evmTx.gasPrice && !evmTx.gasPrice.startsWith('0x')\n ? '0x' + parseInt(evmTx.gasPrice).toString(16)\n : null\n const manipulatedTx = {\n ...evmTx,\n gasPrice,\n }\n let tx = {}\n if (!!manipulatedTx.from) tx = { ...tx, from: manipulatedTx.from }\n if (isApprove) {\n if (!!manipulatedTx.approveTo) tx = { ...tx, to: manipulatedTx.approveTo }\n if (!!manipulatedTx.approveData)\n tx = { ...tx, data: manipulatedTx.approveData }\n } else {\n if (!!manipulatedTx.txTo) tx = { ...tx, to: manipulatedTx.txTo }\n if (!!manipulatedTx.txData) tx = { ...tx, data: manipulatedTx.txData }\n if (!!manipulatedTx.value) tx = { ...tx, value: manipulatedTx.value }\n if (!!manipulatedTx.gasLimit)\n tx = { ...tx, gasLimit: manipulatedTx.gasLimit }\n if (!!manipulatedTx.gasPrice)\n tx = { ...tx, gasPrice: manipulatedTx.gasPrice }\n }\n return tx\n}\n\nasync function checkApprovalSync(\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n): Promise<boolean> {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse?.isApproved) return true\n if (\n !approvalResponse?.isApproved &&\n approvalResponse?.txStatus === TransactionStatus.FAILED\n )\n return false\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n await sleep(3_000)\n }\n}\n\nexport const checkTransactionStatusSync = async (\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n) => {\n let txStatus: StatusResponse | undefined\n while (true) {\n try {\n txStatus = await rangoClient.status({\n requestId,\n txId,\n })\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n if (!!txStatus) {\n if (\n !!txStatus.status &&\n [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(\n txStatus.status\n )\n ) {\n return txStatus\n }\n }\n await sleep(3_000)\n }\n}\n\nexport const executeEvmRoute = async (\n client: RangoClient,\n signer: Signer,\n route: SwapResponse\n): Promise<StatusResponse> => {\n const { tx, requestId, error, resultType } = route\n if (resultType != 'OK') throw new Error(resultType)\n if (!!error || !tx)\n throw new Error(error || 'Error creating the transaction.')\n if (tx?.type !== TransactionType.EVM)\n throw new Error('Non Evm transactions are not supported yet.')\n const evmTransaction = tx as EvmTransaction\n if (!evmTransaction) throw new Error('Transaction is null. Please try again!')\n const txChainId = parseInt(evmTransaction.blockChain.chainId || '-1')\n let signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n if (!!evmTransaction.approveTo && !!evmTransaction.approveData) {\n const approveTxData = prepareEvmTransaction(evmTransaction, true)\n const approveTx = await signer.sendTransaction(approveTxData)\n approveTx.wait()\n const isApproved = await checkApprovalSync(\n requestId,\n approveTx.hash,\n client\n )\n if (!isApproved) throw new Error('Error in approve transaction.')\n }\n signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n const mainTxData = prepareEvmTransaction(evmTransaction, false)\n const mainTx = await signer.sendTransaction(mainTxData)\n mainTx.wait()\n const status = await checkTransactionStatusSync(\n requestId,\n mainTx.hash,\n client\n )\n if (status.status !== TransactionStatus.SUCCESS)\n throw new Error(`Cross-chain swap failed. ${status.error || ''}`)\n return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const prettifyError = (error: any) => {\n if (!error) return error\n if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001))\n return new Error('Transaction Rejected')\n if (error && typeof error.code === 'number') {\n if (Object.values(MetamaskErrorCodes.provider).includes(error.code)) {\n return new Error(getMessageFromCode(error.code))\n }\n if (Object.values(MetamaskErrorCodes.rpc).includes(error.code)) {\n if (\n error.code === MetamaskErrorCodes.rpc.internal &&\n error.message?.includes('underpriced')\n )\n return new Error('Transaction underpriced')\n if (\n error.message?.includes('intrinsic gas too low') ||\n error.message?.includes('out of gas')\n )\n return new Error('This Gas limit is low.')\n return new Error(getMessageFromCode(error.code))\n }\n }\n if (error.message) return new Error(error.message)\n return error\n}\n","import uuid from 'uuid-random'\n\nimport {\n MetaResponse,\n QuoteRequest,\n QuoteResponse,\n CheckApprovalResponse,\n StatusRequest,\n StatusResponse,\n SwapRequest,\n SwapResponse,\n ReportTransactionRequest,\n WalletDetailsResponse,\n assetToString,\n BlockchainMeta,\n SwapperMeta,\n RequestOptions,\n MessagingProtocolsResponse,\n} from '../types'\nimport { Signer } from 'ethers'\nimport { executeEvmRoute as executeEvmRoute } from './executor'\nimport { prettifyError } from '../utils/errors'\nimport axios, { AxiosInstance } from 'axios'\n\ntype WalletAddress = { blockchain: string; address: string }\n\nexport class RangoClient {\n private readonly deviceId: string\n private readonly apiKey: string\n private readonly apiUrl: string\n private readonly httpService: AxiosInstance\n\n constructor(apiKey: string, debug = false, apiUrl?: string) {\n this.apiUrl = apiUrl || 'https://api.rango.exchange'\n this.apiKey = apiKey\n try {\n if (typeof window !== 'undefined') {\n const deviceId = localStorage.getItem('deviceId')\n if (deviceId) {\n this.deviceId = deviceId\n } else {\n const generatedId = uuid()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = uuid()\n }\n } catch (e) {\n this.deviceId = uuid()\n }\n this.httpService = axios.create({\n baseURL: this.apiUrl,\n })\n if (debug) {\n this.httpService.interceptors.request.use((request) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n this.httpService.interceptors.response.use((response) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(options?: RequestOptions): Promise<MetaResponse> {\n const axiosResponse = await this.httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async chains(options?: RequestOptions): Promise<BlockchainMeta[]> {\n const axiosResponse = await this.httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async swappers(options?: RequestOptions): Promise<SwapperMeta[]> {\n const axiosResponse = await this.httpService.get<SwapperMeta[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async messagingProtocols(\n options?: RequestOptions\n ): Promise<MessagingProtocolsResponse> {\n const axiosResponse =\n await this.httpService.get<MessagingProtocolsResponse>(\n `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async quote(\n quoteRequest: QuoteRequest,\n options?: RequestOptions\n ): Promise<QuoteResponse> {\n const body = {\n ...quoteRequest,\n from: assetToString(quoteRequest.from),\n to: assetToString(quoteRequest.to),\n swappers:\n !!quoteRequest.swappers && quoteRequest.swappers.length > 0\n ? quoteRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!quoteRequest.messagingProtocols &&\n quoteRequest.messagingProtocols.length > 0\n ? quoteRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await this.httpService.get<QuoteResponse>(\n `/basic/quote?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string,\n options?: RequestOptions\n ): Promise<CheckApprovalResponse> {\n const axiosResponse = await this.httpService.get<CheckApprovalResponse>(\n `/basic/is-approved?apiKey=${this.apiKey}`,\n {\n params: { requestId, txId },\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async status(\n statusRequest: StatusRequest,\n options?: RequestOptions\n ): Promise<StatusResponse> {\n const axiosResponse = await this.httpService.get<StatusResponse>(\n `/basic/status?apiKey=${this.apiKey}`,\n {\n params: statusRequest,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async swap(\n swapRequest: SwapRequest,\n options?: RequestOptions\n ): Promise<SwapResponse> {\n const body = {\n ...swapRequest,\n from: assetToString(swapRequest.from),\n to: assetToString(swapRequest.to),\n referrerAddress: swapRequest.referrerAddress || null,\n referrerFee: swapRequest.referrerFee || null,\n disableEstimate: swapRequest.disableEstimate || false,\n swappers:\n !!swapRequest.swappers && swapRequest.swappers.length > 0\n ? swapRequest.swappers.join(',')\n : undefined,\n swapperGroups:\n !!swapRequest.swapperGroups && swapRequest.swapperGroups.length > 0\n ? swapRequest.swapperGroups.join(',')\n : undefined,\n messagingProtocols:\n !!swapRequest.messagingProtocols &&\n swapRequest.messagingProtocols.length > 0\n ? swapRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await this.httpService.get<SwapResponse>(\n `/basic/swap?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest,\n options?: RequestOptions\n ): Promise<void> {\n await this.httpService.post(\n `/basic/report-tx?apiKey=${this.apiKey}`,\n requestBody,\n {\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress,\n options?: RequestOptions\n ): Promise<WalletDetailsResponse> {\n const axiosResponse = await this.httpService.get<WalletDetailsResponse>(\n `/basic/balance?apiKey=${this.apiKey}`,\n {\n params: walletAddress,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n const prettifiedError = prettifyError(error)\n try {\n const message = prettifiedError?.message || 'Error executing the route'\n this.reportFailure({\n requestId: route.requestId,\n eventType: 'TX_FAIL',\n reason: message,\n })\n } catch (err) {\n console.log({ err })\n }\n throw prettifiedError\n }\n }\n}\n"],"names":["assetToString","asset","address","blockchain","symbol","blockchainMeta","MetamaskErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","parse","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","sleep","ms","Promise","resolve","setTimeout","prepareEvmTransaction","evmTx","isApprove","gasPrice","startsWith","parseInt","toString","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","_checkApprovalSync","requestId","txId","rangoClient","_context3","isApproved","approvalResponse","txStatus","TransactionStatus","FAILED","console","log","err","checkTransactionStatusSync","_context","status","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","_context2","Error","type","TransactionType","EVM","evmTransaction","txChainId","blockChain","chainId","getChainId","signerChainId","approveTxData","sendTransaction","approveTx","wait","hash","mainTxData","mainTx","prettifyError","code","Object","values","getMessageFromCode","message","_error$message","_error$message2","_error$message3","RangoClient","apiKey","debug","apiUrl","this","window","deviceId","localStorage","getItem","generatedId","uuid","setItem","e","httpService","axios","create","baseURL","interceptors","request","use","JSON","stringify","response","_proto","meta","options","get","chains","swappers","messagingProtocols","_context4","quote","quoteRequest","body","length","join","undefined","_context5","params","headers","X-Rango-Id","_context6","statusRequest","_context7","swap","swapRequest","referrerAddress","referrerFee","disableEstimate","swapperGroups","_context8","reportFailure","requestBody","_context9","post","balance","walletAddress","_context10","_context11","prettifiedError","eventType","reason"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import uuid from 'uuid-random';
|
|
2
|
-
import axios from 'axios';
|
|
3
2
|
import { getMessageFromCode } from 'eth-rpc-errors';
|
|
3
|
+
import axios from 'axios';
|
|
4
4
|
|
|
5
5
|
function _regeneratorRuntime() {
|
|
6
6
|
_regeneratorRuntime = function () {
|
|
@@ -348,11 +348,6 @@ function _extends() {
|
|
|
348
348
|
return _extends.apply(this, arguments);
|
|
349
349
|
}
|
|
350
350
|
|
|
351
|
-
var baseURL = typeof process !== 'undefined' && process.env.REACT_APP_RANGO_BASE_URL ? process.env.REACT_APP_RANGO_BASE_URL : 'https://api.rango.exchange';
|
|
352
|
-
var httpService = /*#__PURE__*/axios.create({
|
|
353
|
-
baseURL: baseURL
|
|
354
|
-
});
|
|
355
|
-
|
|
356
351
|
function assetToString(asset) {
|
|
357
352
|
if (!!asset.address) return asset.blockchain + "." + asset.symbol + "--" + asset.address;else return asset.blockchain + "." + asset.symbol;
|
|
358
353
|
}
|
|
@@ -422,7 +417,13 @@ var TransactionType;
|
|
|
422
417
|
* The type of transaction
|
|
423
418
|
* @deprecated use TransactionType instead
|
|
424
419
|
*/
|
|
425
|
-
var GenericTransactionType
|
|
420
|
+
var GenericTransactionType;
|
|
421
|
+
(function (GenericTransactionType) {
|
|
422
|
+
GenericTransactionType["EVM"] = "EVM";
|
|
423
|
+
GenericTransactionType["TRANSFER"] = "TRANSFER";
|
|
424
|
+
GenericTransactionType["COSMOS"] = "COSMOS";
|
|
425
|
+
GenericTransactionType["SOLANA"] = "SOLANA";
|
|
426
|
+
})(GenericTransactionType || (GenericTransactionType = {}));
|
|
426
427
|
/**
|
|
427
428
|
* The status of transaction in tracking
|
|
428
429
|
*/
|
|
@@ -714,10 +715,11 @@ var prettifyError = function prettifyError(error) {
|
|
|
714
715
|
};
|
|
715
716
|
|
|
716
717
|
var RangoClient = /*#__PURE__*/function () {
|
|
717
|
-
function RangoClient(apiKey, debug) {
|
|
718
|
+
function RangoClient(apiKey, debug, apiUrl) {
|
|
718
719
|
if (debug === void 0) {
|
|
719
720
|
debug = false;
|
|
720
721
|
}
|
|
722
|
+
this.apiUrl = apiUrl || 'https://api.rango.exchange';
|
|
721
723
|
this.apiKey = apiKey;
|
|
722
724
|
try {
|
|
723
725
|
if (typeof window !== 'undefined') {
|
|
@@ -735,12 +737,15 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
735
737
|
} catch (e) {
|
|
736
738
|
this.deviceId = uuid();
|
|
737
739
|
}
|
|
740
|
+
this.httpService = axios.create({
|
|
741
|
+
baseURL: this.apiUrl
|
|
742
|
+
});
|
|
738
743
|
if (debug) {
|
|
739
|
-
httpService.interceptors.request.use(function (request) {
|
|
744
|
+
this.httpService.interceptors.request.use(function (request) {
|
|
740
745
|
console.log('Starting Request', JSON.stringify(request, null, 2));
|
|
741
746
|
return request;
|
|
742
747
|
});
|
|
743
|
-
httpService.interceptors.response.use(function (response) {
|
|
748
|
+
this.httpService.interceptors.response.use(function (response) {
|
|
744
749
|
console.log('Response:', JSON.stringify(response, null, 2));
|
|
745
750
|
return response;
|
|
746
751
|
});
|
|
@@ -754,7 +759,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
754
759
|
while (1) switch (_context.prev = _context.next) {
|
|
755
760
|
case 0:
|
|
756
761
|
_context.next = 2;
|
|
757
|
-
return httpService.get("/basic/meta?apiKey=" + this.apiKey, _extends({}, options));
|
|
762
|
+
return this.httpService.get("/basic/meta?apiKey=" + this.apiKey, _extends({}, options));
|
|
758
763
|
case 2:
|
|
759
764
|
axiosResponse = _context.sent;
|
|
760
765
|
return _context.abrupt("return", axiosResponse.data);
|
|
@@ -776,7 +781,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
776
781
|
while (1) switch (_context2.prev = _context2.next) {
|
|
777
782
|
case 0:
|
|
778
783
|
_context2.next = 2;
|
|
779
|
-
return httpService.get("/basic/meta/blockchains?apiKey=" + this.apiKey, _extends({}, options));
|
|
784
|
+
return this.httpService.get("/basic/meta/blockchains?apiKey=" + this.apiKey, _extends({}, options));
|
|
780
785
|
case 2:
|
|
781
786
|
axiosResponse = _context2.sent;
|
|
782
787
|
return _context2.abrupt("return", axiosResponse.data);
|
|
@@ -798,7 +803,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
798
803
|
while (1) switch (_context3.prev = _context3.next) {
|
|
799
804
|
case 0:
|
|
800
805
|
_context3.next = 2;
|
|
801
|
-
return httpService.get("/basic/meta/swappers?apiKey=" + this.apiKey, _extends({}, options));
|
|
806
|
+
return this.httpService.get("/basic/meta/swappers?apiKey=" + this.apiKey, _extends({}, options));
|
|
802
807
|
case 2:
|
|
803
808
|
axiosResponse = _context3.sent;
|
|
804
809
|
return _context3.abrupt("return", axiosResponse.data);
|
|
@@ -820,7 +825,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
820
825
|
while (1) switch (_context4.prev = _context4.next) {
|
|
821
826
|
case 0:
|
|
822
827
|
_context4.next = 2;
|
|
823
|
-
return httpService.get("/basic/meta/messaging-protocols?apiKey=" + this.apiKey, _extends({}, options));
|
|
828
|
+
return this.httpService.get("/basic/meta/messaging-protocols?apiKey=" + this.apiKey, _extends({}, options));
|
|
824
829
|
case 2:
|
|
825
830
|
axiosResponse = _context4.sent;
|
|
826
831
|
return _context4.abrupt("return", axiosResponse.data);
|
|
@@ -848,7 +853,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
848
853
|
messagingProtocols: !!quoteRequest.messagingProtocols && quoteRequest.messagingProtocols.length > 0 ? quoteRequest.messagingProtocols.join(',') : undefined
|
|
849
854
|
});
|
|
850
855
|
_context5.next = 3;
|
|
851
|
-
return httpService.get("/basic/quote?apiKey=" + this.apiKey, _extends({
|
|
856
|
+
return this.httpService.get("/basic/quote?apiKey=" + this.apiKey, _extends({
|
|
852
857
|
params: body,
|
|
853
858
|
headers: {
|
|
854
859
|
'X-Rango-Id': this.deviceId
|
|
@@ -875,7 +880,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
875
880
|
while (1) switch (_context6.prev = _context6.next) {
|
|
876
881
|
case 0:
|
|
877
882
|
_context6.next = 2;
|
|
878
|
-
return httpService.get("/basic/is-approved?apiKey=" + this.apiKey, _extends({
|
|
883
|
+
return this.httpService.get("/basic/is-approved?apiKey=" + this.apiKey, _extends({
|
|
879
884
|
params: {
|
|
880
885
|
requestId: requestId,
|
|
881
886
|
txId: txId
|
|
@@ -905,7 +910,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
905
910
|
while (1) switch (_context7.prev = _context7.next) {
|
|
906
911
|
case 0:
|
|
907
912
|
_context7.next = 2;
|
|
908
|
-
return httpService.get("/basic/status?apiKey=" + this.apiKey, _extends({
|
|
913
|
+
return this.httpService.get("/basic/status?apiKey=" + this.apiKey, _extends({
|
|
909
914
|
params: statusRequest,
|
|
910
915
|
headers: {
|
|
911
916
|
'X-Rango-Id': this.deviceId
|
|
@@ -934,11 +939,15 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
934
939
|
body = _extends({}, swapRequest, {
|
|
935
940
|
from: assetToString(swapRequest.from),
|
|
936
941
|
to: assetToString(swapRequest.to),
|
|
942
|
+
referrerAddress: swapRequest.referrerAddress || null,
|
|
943
|
+
referrerFee: swapRequest.referrerFee || null,
|
|
944
|
+
disableEstimate: swapRequest.disableEstimate || false,
|
|
937
945
|
swappers: !!swapRequest.swappers && swapRequest.swappers.length > 0 ? swapRequest.swappers.join(',') : undefined,
|
|
946
|
+
swapperGroups: !!swapRequest.swapperGroups && swapRequest.swapperGroups.length > 0 ? swapRequest.swapperGroups.join(',') : undefined,
|
|
938
947
|
messagingProtocols: !!swapRequest.messagingProtocols && swapRequest.messagingProtocols.length > 0 ? swapRequest.messagingProtocols.join(',') : undefined
|
|
939
948
|
});
|
|
940
949
|
_context8.next = 3;
|
|
941
|
-
return httpService.get("/basic/swap?apiKey=" + this.apiKey, _extends({
|
|
950
|
+
return this.httpService.get("/basic/swap?apiKey=" + this.apiKey, _extends({
|
|
942
951
|
params: body,
|
|
943
952
|
headers: {
|
|
944
953
|
'X-Rango-Id': this.deviceId
|
|
@@ -964,7 +973,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
964
973
|
while (1) switch (_context9.prev = _context9.next) {
|
|
965
974
|
case 0:
|
|
966
975
|
_context9.next = 2;
|
|
967
|
-
return httpService.post("/basic/report-tx?apiKey=" + this.apiKey, requestBody, _extends({
|
|
976
|
+
return this.httpService.post("/basic/report-tx?apiKey=" + this.apiKey, requestBody, _extends({
|
|
968
977
|
headers: {
|
|
969
978
|
'X-Rango-Id': this.deviceId
|
|
970
979
|
}
|
|
@@ -987,7 +996,7 @@ var RangoClient = /*#__PURE__*/function () {
|
|
|
987
996
|
while (1) switch (_context10.prev = _context10.next) {
|
|
988
997
|
case 0:
|
|
989
998
|
_context10.next = 2;
|
|
990
|
-
return httpService.get("/basic/balance?apiKey=" + this.apiKey, _extends({
|
|
999
|
+
return this.httpService.get("/basic/balance?apiKey=" + this.apiKey, _extends({
|
|
991
1000
|
params: walletAddress,
|
|
992
1001
|
headers: {
|
|
993
1002
|
'X-Rango-Id': this.deviceId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rango-sdk-basic.esm.js","sources":["../src/services/httpService.ts","../src/types/api/common.ts","../../../node_modules/rango-types/src/api/shared/type-gaurds.ts","../../../node_modules/rango-types/src/api/shared/routing.ts","../../../node_modules/rango-types/src/api/shared/transactions.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["import axios from 'axios'\n\nconst baseURL =\n typeof process !== 'undefined' && process.env.REACT_APP_RANGO_BASE_URL\n ? process.env.REACT_APP_RANGO_BASE_URL\n : 'https://api.rango.exchange'\n\nexport const httpService = axios.create({\n baseURL,\n})\n","import { Asset } from 'rango-types/lib/api/basic'\nexport * from 'rango-types/lib/api/basic/common'\n\nexport function assetToString(asset: Asset): string {\n if (!!asset.address)\n return `${asset.blockchain}.${asset.symbol}--${asset.address}`\n else return `${asset.blockchain}.${asset.symbol}`\n}\n",null,null,null,"export const MetamaskErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n}\n","export function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n","import { Signer } from 'ethers'\nimport { RangoClient } from './client'\nimport { EvmTransaction } from '../types/api/txs'\nimport {\n StatusResponse,\n SwapResponse,\n TransactionStatus,\n TransactionType,\n} from '../types/api/transactions'\nimport { sleep } from '../utils/promise'\n\nexport function prepareEvmTransaction(\n evmTx: EvmTransaction,\n isApprove: boolean\n) {\n const gasPrice =\n !!evmTx.gasPrice && !evmTx.gasPrice.startsWith('0x')\n ? '0x' + parseInt(evmTx.gasPrice).toString(16)\n : null\n const manipulatedTx = {\n ...evmTx,\n gasPrice,\n }\n let tx = {}\n if (!!manipulatedTx.from) tx = { ...tx, from: manipulatedTx.from }\n if (isApprove) {\n if (!!manipulatedTx.approveTo) tx = { ...tx, to: manipulatedTx.approveTo }\n if (!!manipulatedTx.approveData)\n tx = { ...tx, data: manipulatedTx.approveData }\n } else {\n if (!!manipulatedTx.txTo) tx = { ...tx, to: manipulatedTx.txTo }\n if (!!manipulatedTx.txData) tx = { ...tx, data: manipulatedTx.txData }\n if (!!manipulatedTx.value) tx = { ...tx, value: manipulatedTx.value }\n if (!!manipulatedTx.gasLimit)\n tx = { ...tx, gasLimit: manipulatedTx.gasLimit }\n if (!!manipulatedTx.gasPrice)\n tx = { ...tx, gasPrice: manipulatedTx.gasPrice }\n }\n return tx\n}\n\nasync function checkApprovalSync(\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n): Promise<boolean> {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse?.isApproved) return true\n if (\n !approvalResponse?.isApproved &&\n approvalResponse?.txStatus === TransactionStatus.FAILED\n )\n return false\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n await sleep(3_000)\n }\n}\n\nexport const checkTransactionStatusSync = async (\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n) => {\n let txStatus: StatusResponse | undefined\n while (true) {\n try {\n txStatus = await rangoClient.status({\n requestId,\n txId,\n })\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n if (!!txStatus) {\n if (\n !!txStatus.status &&\n [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(\n txStatus.status\n )\n ) {\n return txStatus\n }\n }\n await sleep(3_000)\n }\n}\n\nexport const executeEvmRoute = async (\n client: RangoClient,\n signer: Signer,\n route: SwapResponse\n): Promise<StatusResponse> => {\n const { tx, requestId, error, resultType } = route\n if (resultType != 'OK') throw new Error(resultType)\n if (!!error || !tx)\n throw new Error(error || 'Error creating the transaction.')\n if (tx?.type !== TransactionType.EVM)\n throw new Error('Non Evm transactions are not supported yet.')\n const evmTransaction = tx as EvmTransaction\n if (!evmTransaction) throw new Error('Transaction is null. Please try again!')\n const txChainId = parseInt(evmTransaction.blockChain.chainId || '-1')\n let signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n if (!!evmTransaction.approveTo && !!evmTransaction.approveData) {\n const approveTxData = prepareEvmTransaction(evmTransaction, true)\n const approveTx = await signer.sendTransaction(approveTxData)\n approveTx.wait()\n const isApproved = await checkApprovalSync(\n requestId,\n approveTx.hash,\n client\n )\n if (!isApproved) throw new Error('Error in approve transaction.')\n }\n signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n const mainTxData = prepareEvmTransaction(evmTransaction, false)\n const mainTx = await signer.sendTransaction(mainTxData)\n mainTx.wait()\n const status = await checkTransactionStatusSync(\n requestId,\n mainTx.hash,\n client\n )\n if (status.status !== TransactionStatus.SUCCESS)\n throw new Error(`Cross-chain swap failed. ${status.error || ''}`)\n return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const prettifyError = (error: any) => {\n if (!error) return error\n if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001))\n return new Error('Transaction Rejected')\n if (error && typeof error.code === 'number') {\n if (Object.values(MetamaskErrorCodes.provider).includes(error.code)) {\n return new Error(getMessageFromCode(error.code))\n }\n if (Object.values(MetamaskErrorCodes.rpc).includes(error.code)) {\n if (\n error.code === MetamaskErrorCodes.rpc.internal &&\n error.message?.includes('underpriced')\n )\n return new Error('Transaction underpriced')\n if (\n error.message?.includes('intrinsic gas too low') ||\n error.message?.includes('out of gas')\n )\n return new Error('This Gas limit is low.')\n return new Error(getMessageFromCode(error.code))\n }\n }\n if (error.message) return new Error(error.message)\n return error\n}\n","import uuid from 'uuid-random'\n\nimport { httpService } from './httpService'\nimport {\n MetaResponse,\n QuoteRequest,\n QuoteResponse,\n CheckApprovalResponse,\n StatusRequest,\n StatusResponse,\n SwapRequest,\n SwapResponse,\n ReportTransactionRequest,\n WalletDetailsResponse,\n assetToString,\n BlockchainMeta,\n SwapperMeta,\n RequestOptions,\n MessagingProtocolsResponse,\n} from '../types'\nimport { Signer } from 'ethers'\nimport { executeEvmRoute as executeEvmRoute } from './executor'\nimport { prettifyError } from '../utils/errors'\n\ntype WalletAddress = { blockchain: string; address: string }\n\nexport class RangoClient {\n private readonly deviceId: string\n\n private readonly apiKey: string\n\n constructor(apiKey: string, debug = false) {\n this.apiKey = apiKey\n try {\n if (typeof window !== 'undefined') {\n const deviceId = localStorage.getItem('deviceId')\n if (deviceId) {\n this.deviceId = deviceId\n } else {\n const generatedId = uuid()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = uuid()\n }\n } catch (e) {\n this.deviceId = uuid()\n }\n if (debug) {\n httpService.interceptors.request.use((request) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n httpService.interceptors.response.use((response) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(options?: RequestOptions): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async chains(options?: RequestOptions): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async swappers(options?: RequestOptions): Promise<SwapperMeta[]> {\n const axiosResponse = await httpService.get<SwapperMeta[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async messagingProtocols(\n options?: RequestOptions\n ): Promise<MessagingProtocolsResponse> {\n const axiosResponse = await httpService.get<MessagingProtocolsResponse>(\n `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async quote(\n quoteRequest: QuoteRequest,\n options?: RequestOptions\n ): Promise<QuoteResponse> {\n const body = {\n ...quoteRequest,\n from: assetToString(quoteRequest.from),\n to: assetToString(quoteRequest.to),\n swappers:\n !!quoteRequest.swappers && quoteRequest.swappers.length > 0\n ? quoteRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!quoteRequest.messagingProtocols &&\n quoteRequest.messagingProtocols.length > 0\n ? quoteRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await httpService.get<QuoteResponse>(\n `/basic/quote?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string,\n options?: RequestOptions\n ): Promise<CheckApprovalResponse> {\n const axiosResponse = await httpService.get<CheckApprovalResponse>(\n `/basic/is-approved?apiKey=${this.apiKey}`,\n {\n params: { requestId, txId },\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async status(\n statusRequest: StatusRequest,\n options?: RequestOptions\n ): Promise<StatusResponse> {\n const axiosResponse = await httpService.get<StatusResponse>(\n `/basic/status?apiKey=${this.apiKey}`,\n {\n params: statusRequest,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async swap(\n swapRequest: SwapRequest,\n options?: RequestOptions\n ): Promise<SwapResponse> {\n const body = {\n ...swapRequest,\n from: assetToString(swapRequest.from),\n to: assetToString(swapRequest.to),\n swappers:\n !!swapRequest.swappers && swapRequest.swappers.length > 0\n ? swapRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!swapRequest.messagingProtocols &&\n swapRequest.messagingProtocols.length > 0\n ? swapRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await httpService.get<SwapResponse>(\n `/basic/swap?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest,\n options?: RequestOptions\n ): Promise<void> {\n await httpService.post(\n `/basic/report-tx?apiKey=${this.apiKey}`,\n requestBody,\n {\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress,\n options?: RequestOptions\n ): Promise<WalletDetailsResponse> {\n const axiosResponse = await httpService.get<WalletDetailsResponse>(\n `/basic/balance?apiKey=${this.apiKey}`,\n {\n params: walletAddress,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n const prettifiedError = prettifyError(error)\n try {\n const message = prettifiedError?.message || 'Error executing the route'\n this.reportFailure({\n requestId: route.requestId,\n eventType: 'TX_FAIL',\n reason: message,\n })\n } catch (err) {\n console.log({ err })\n }\n throw prettifiedError\n }\n }\n}\n"],"names":["baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","blockchainMeta","MetamaskErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","parse","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","sleep","ms","Promise","resolve","setTimeout","prepareEvmTransaction","evmTx","isApprove","gasPrice","startsWith","parseInt","toString","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","requestId","txId","rangoClient","isApproved","approvalResponse","txStatus","TransactionStatus","FAILED","console","log","err","checkTransactionStatusSync","status","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","Error","type","TransactionType","EVM","evmTransaction","txChainId","blockChain","chainId","getChainId","signerChainId","approveTxData","sendTransaction","approveTx","wait","hash","mainTxData","mainTx","prettifyError","code","Object","values","getMessageFromCode","message","RangoClient","apiKey","debug","window","deviceId","localStorage","getItem","generatedId","uuid","setItem","e","interceptors","request","use","JSON","stringify","response","meta","options","get","axiosResponse","chains","swappers","messagingProtocols","quote","quoteRequest","body","length","join","undefined","params","headers","statusRequest","swap","swapRequest","reportFailure","requestBody","post","balance","walletAddress","prettifiedError","eventType","reason"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rango-sdk-basic.esm.js","sources":["../src/types/api/common.ts","../../../node_modules/rango-types/src/api/shared/type-gaurds.ts","../../../node_modules/rango-types/src/api/shared/routing.ts","../../../node_modules/rango-types/src/api/shared/transactions.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["import { Asset } from 'rango-types/lib/api/basic'\nexport * from 'rango-types/lib/api/basic/common'\n\nexport function assetToString(asset: Asset): string {\n if (!!asset.address)\n return `${asset.blockchain}.${asset.symbol}--${asset.address}`\n else return `${asset.blockchain}.${asset.symbol}`\n}\n",null,null,null,"export const MetamaskErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n },\n}\n","export function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n","import { Signer } from 'ethers'\nimport { RangoClient } from './client'\nimport { EvmTransaction } from '../types/api/txs'\nimport {\n StatusResponse,\n SwapResponse,\n TransactionStatus,\n TransactionType,\n} from '../types/api/transactions'\nimport { sleep } from '../utils/promise'\n\nexport function prepareEvmTransaction(\n evmTx: EvmTransaction,\n isApprove: boolean\n) {\n const gasPrice =\n !!evmTx.gasPrice && !evmTx.gasPrice.startsWith('0x')\n ? '0x' + parseInt(evmTx.gasPrice).toString(16)\n : null\n const manipulatedTx = {\n ...evmTx,\n gasPrice,\n }\n let tx = {}\n if (!!manipulatedTx.from) tx = { ...tx, from: manipulatedTx.from }\n if (isApprove) {\n if (!!manipulatedTx.approveTo) tx = { ...tx, to: manipulatedTx.approveTo }\n if (!!manipulatedTx.approveData)\n tx = { ...tx, data: manipulatedTx.approveData }\n } else {\n if (!!manipulatedTx.txTo) tx = { ...tx, to: manipulatedTx.txTo }\n if (!!manipulatedTx.txData) tx = { ...tx, data: manipulatedTx.txData }\n if (!!manipulatedTx.value) tx = { ...tx, value: manipulatedTx.value }\n if (!!manipulatedTx.gasLimit)\n tx = { ...tx, gasLimit: manipulatedTx.gasLimit }\n if (!!manipulatedTx.gasPrice)\n tx = { ...tx, gasPrice: manipulatedTx.gasPrice }\n }\n return tx\n}\n\nasync function checkApprovalSync(\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n): Promise<boolean> {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse?.isApproved) return true\n if (\n !approvalResponse?.isApproved &&\n approvalResponse?.txStatus === TransactionStatus.FAILED\n )\n return false\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n await sleep(3_000)\n }\n}\n\nexport const checkTransactionStatusSync = async (\n requestId: string,\n txId: string,\n rangoClient: RangoClient\n) => {\n let txStatus: StatusResponse | undefined\n while (true) {\n try {\n txStatus = await rangoClient.status({\n requestId,\n txId,\n })\n } catch (err) {\n console.log('ignorinig error', { err })\n }\n if (!!txStatus) {\n if (\n !!txStatus.status &&\n [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(\n txStatus.status\n )\n ) {\n return txStatus\n }\n }\n await sleep(3_000)\n }\n}\n\nexport const executeEvmRoute = async (\n client: RangoClient,\n signer: Signer,\n route: SwapResponse\n): Promise<StatusResponse> => {\n const { tx, requestId, error, resultType } = route\n if (resultType != 'OK') throw new Error(resultType)\n if (!!error || !tx)\n throw new Error(error || 'Error creating the transaction.')\n if (tx?.type !== TransactionType.EVM)\n throw new Error('Non Evm transactions are not supported yet.')\n const evmTransaction = tx as EvmTransaction\n if (!evmTransaction) throw new Error('Transaction is null. Please try again!')\n const txChainId = parseInt(evmTransaction.blockChain.chainId || '-1')\n let signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n if (!!evmTransaction.approveTo && !!evmTransaction.approveData) {\n const approveTxData = prepareEvmTransaction(evmTransaction, true)\n const approveTx = await signer.sendTransaction(approveTxData)\n approveTx.wait()\n const isApproved = await checkApprovalSync(\n requestId,\n approveTx.hash,\n client\n )\n if (!isApproved) throw new Error('Error in approve transaction.')\n }\n signerChainId = await signer.getChainId()\n if (signerChainId !== txChainId) {\n throw new Error(\n `Signer chainId ${signerChainId} doesn't match required chainId ${txChainId}.`\n )\n }\n const mainTxData = prepareEvmTransaction(evmTransaction, false)\n const mainTx = await signer.sendTransaction(mainTxData)\n mainTx.wait()\n const status = await checkTransactionStatusSync(\n requestId,\n mainTx.hash,\n client\n )\n if (status.status !== TransactionStatus.SUCCESS)\n throw new Error(`Cross-chain swap failed. ${status.error || ''}`)\n return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const prettifyError = (error: any) => {\n if (!error) return error\n if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001))\n return new Error('Transaction Rejected')\n if (error && typeof error.code === 'number') {\n if (Object.values(MetamaskErrorCodes.provider).includes(error.code)) {\n return new Error(getMessageFromCode(error.code))\n }\n if (Object.values(MetamaskErrorCodes.rpc).includes(error.code)) {\n if (\n error.code === MetamaskErrorCodes.rpc.internal &&\n error.message?.includes('underpriced')\n )\n return new Error('Transaction underpriced')\n if (\n error.message?.includes('intrinsic gas too low') ||\n error.message?.includes('out of gas')\n )\n return new Error('This Gas limit is low.')\n return new Error(getMessageFromCode(error.code))\n }\n }\n if (error.message) return new Error(error.message)\n return error\n}\n","import uuid from 'uuid-random'\n\nimport {\n MetaResponse,\n QuoteRequest,\n QuoteResponse,\n CheckApprovalResponse,\n StatusRequest,\n StatusResponse,\n SwapRequest,\n SwapResponse,\n ReportTransactionRequest,\n WalletDetailsResponse,\n assetToString,\n BlockchainMeta,\n SwapperMeta,\n RequestOptions,\n MessagingProtocolsResponse,\n} from '../types'\nimport { Signer } from 'ethers'\nimport { executeEvmRoute as executeEvmRoute } from './executor'\nimport { prettifyError } from '../utils/errors'\nimport axios, { AxiosInstance } from 'axios'\n\ntype WalletAddress = { blockchain: string; address: string }\n\nexport class RangoClient {\n private readonly deviceId: string\n private readonly apiKey: string\n private readonly apiUrl: string\n private readonly httpService: AxiosInstance\n\n constructor(apiKey: string, debug = false, apiUrl?: string) {\n this.apiUrl = apiUrl || 'https://api.rango.exchange'\n this.apiKey = apiKey\n try {\n if (typeof window !== 'undefined') {\n const deviceId = localStorage.getItem('deviceId')\n if (deviceId) {\n this.deviceId = deviceId\n } else {\n const generatedId = uuid()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = uuid()\n }\n } catch (e) {\n this.deviceId = uuid()\n }\n this.httpService = axios.create({\n baseURL: this.apiUrl,\n })\n if (debug) {\n this.httpService.interceptors.request.use((request) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n this.httpService.interceptors.response.use((response) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(options?: RequestOptions): Promise<MetaResponse> {\n const axiosResponse = await this.httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async chains(options?: RequestOptions): Promise<BlockchainMeta[]> {\n const axiosResponse = await this.httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async swappers(options?: RequestOptions): Promise<SwapperMeta[]> {\n const axiosResponse = await this.httpService.get<SwapperMeta[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async messagingProtocols(\n options?: RequestOptions\n ): Promise<MessagingProtocolsResponse> {\n const axiosResponse =\n await this.httpService.get<MessagingProtocolsResponse>(\n `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`,\n { ...options }\n )\n return axiosResponse.data\n }\n\n public async quote(\n quoteRequest: QuoteRequest,\n options?: RequestOptions\n ): Promise<QuoteResponse> {\n const body = {\n ...quoteRequest,\n from: assetToString(quoteRequest.from),\n to: assetToString(quoteRequest.to),\n swappers:\n !!quoteRequest.swappers && quoteRequest.swappers.length > 0\n ? quoteRequest.swappers.join(',')\n : undefined,\n messagingProtocols:\n !!quoteRequest.messagingProtocols &&\n quoteRequest.messagingProtocols.length > 0\n ? quoteRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await this.httpService.get<QuoteResponse>(\n `/basic/quote?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string,\n options?: RequestOptions\n ): Promise<CheckApprovalResponse> {\n const axiosResponse = await this.httpService.get<CheckApprovalResponse>(\n `/basic/is-approved?apiKey=${this.apiKey}`,\n {\n params: { requestId, txId },\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async status(\n statusRequest: StatusRequest,\n options?: RequestOptions\n ): Promise<StatusResponse> {\n const axiosResponse = await this.httpService.get<StatusResponse>(\n `/basic/status?apiKey=${this.apiKey}`,\n {\n params: statusRequest,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async swap(\n swapRequest: SwapRequest,\n options?: RequestOptions\n ): Promise<SwapResponse> {\n const body = {\n ...swapRequest,\n from: assetToString(swapRequest.from),\n to: assetToString(swapRequest.to),\n referrerAddress: swapRequest.referrerAddress || null,\n referrerFee: swapRequest.referrerFee || null,\n disableEstimate: swapRequest.disableEstimate || false,\n swappers:\n !!swapRequest.swappers && swapRequest.swappers.length > 0\n ? swapRequest.swappers.join(',')\n : undefined,\n swapperGroups:\n !!swapRequest.swapperGroups && swapRequest.swapperGroups.length > 0\n ? swapRequest.swapperGroups.join(',')\n : undefined,\n messagingProtocols:\n !!swapRequest.messagingProtocols &&\n swapRequest.messagingProtocols.length > 0\n ? swapRequest.messagingProtocols.join(',')\n : undefined,\n }\n const axiosResponse = await this.httpService.get<SwapResponse>(\n `/basic/swap?apiKey=${this.apiKey}`,\n {\n params: body,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest,\n options?: RequestOptions\n ): Promise<void> {\n await this.httpService.post(\n `/basic/report-tx?apiKey=${this.apiKey}`,\n requestBody,\n {\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress,\n options?: RequestOptions\n ): Promise<WalletDetailsResponse> {\n const axiosResponse = await this.httpService.get<WalletDetailsResponse>(\n `/basic/balance?apiKey=${this.apiKey}`,\n {\n params: walletAddress,\n headers: { 'X-Rango-Id': this.deviceId },\n ...options,\n }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n const prettifiedError = prettifyError(error)\n try {\n const message = prettifiedError?.message || 'Error executing the route'\n this.reportFailure({\n requestId: route.requestId,\n eventType: 'TX_FAIL',\n reason: message,\n })\n } catch (err) {\n console.log({ err })\n }\n throw prettifiedError\n }\n }\n}\n"],"names":["assetToString","asset","address","blockchain","symbol","blockchainMeta","MetamaskErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","parse","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","sleep","ms","Promise","resolve","setTimeout","prepareEvmTransaction","evmTx","isApprove","gasPrice","startsWith","parseInt","toString","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","requestId","txId","rangoClient","isApproved","approvalResponse","txStatus","TransactionStatus","FAILED","console","log","err","checkTransactionStatusSync","status","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","Error","type","TransactionType","EVM","evmTransaction","txChainId","blockChain","chainId","getChainId","signerChainId","approveTxData","sendTransaction","approveTx","wait","hash","mainTxData","mainTx","prettifyError","code","Object","values","getMessageFromCode","message","RangoClient","apiKey","debug","apiUrl","window","deviceId","localStorage","getItem","generatedId","uuid","setItem","e","httpService","axios","create","baseURL","interceptors","request","use","JSON","stringify","response","meta","options","get","axiosResponse","chains","swappers","messagingProtocols","quote","quoteRequest","body","length","join","undefined","params","headers","statusRequest","swap","swapRequest","referrerAddress","referrerFee","disableEstimate","swapperGroups","reportFailure","requestBody","post","balance","walletAddress","prettifiedError","eventType","reason"],"mappings":"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"}
|
package/lib/services/client.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ declare type WalletAddress = {
|
|
|
6
6
|
export declare class RangoClient {
|
|
7
7
|
private readonly deviceId;
|
|
8
8
|
private readonly apiKey;
|
|
9
|
-
|
|
9
|
+
private readonly apiUrl;
|
|
10
|
+
private readonly httpService;
|
|
11
|
+
constructor(apiKey: string, debug?: boolean, apiUrl?: string);
|
|
10
12
|
meta(options?: RequestOptions): Promise<MetaResponse>;
|
|
11
13
|
chains(options?: RequestOptions): Promise<BlockchainMeta[]>;
|
|
12
14
|
swappers(options?: RequestOptions): Promise<SwapperMeta[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/services/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/services/client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EAErB,cAAc,EACd,WAAW,EACX,cAAc,EACd,0BAA0B,EAC3B,MAAM,UAAU,CAAA;AAMjB,aAAK,aAAa,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;gBAE/B,MAAM,EAAE,MAAM,EAAE,KAAK,UAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;IAkC7C,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAQrD,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAQ3D,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ1D,kBAAkB,CAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,0BAA0B,CAAC;IASzB,KAAK,CAChB,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IA0BZ,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,CAAC;IAYpB,MAAM,CACjB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC;IAYb,IAAI,CACf,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC;IAiCX,aAAa,CACxB,WAAW,EAAE,wBAAwB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAWH,OAAO,CAClB,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,CAAC;IAYpB,eAAe,CAE1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,CAAC;CAkB3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rango-sdk-basic",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "Rango Exchange Basic SDK for dApps",
|
|
5
5
|
"module": "lib/rango-sdk-basic.esm.js",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"bignumber.js": "^9.1.1",
|
|
45
45
|
"eth-rpc-errors": "^4.0.3",
|
|
46
46
|
"ethers": "^5.7.2",
|
|
47
|
-
"rango-types": "^0.1.
|
|
47
|
+
"rango-types": "^0.1.16",
|
|
48
48
|
"uuid-random": "^1.3.2"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"httpService.d.ts","sourceRoot":"","sources":["../src/services/httpService.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,+BAEtB,CAAA"}
|