rango-sdk-basic 0.0.15 → 0.1.0

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.
File without changes
@@ -1,21 +1,32 @@
1
- # 1. Rango Exchange Basic SDK (BETA)
1
+ # Rango Exchange SDK
2
+
3
+ ## Basic SDK (Single Step Tx)
2
4
 
3
5
  [![npm version](https://badge.fury.io/js/rango-sdk-basic.svg)](https://badge.fury.io/js/rango-sdk-basic)
4
6
  [![license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/rango-exchange/rango-sdk/blob/master/LICENSE)
5
7
 
6
- This is the first phase of Rango SDK which only wraps Rest API calls. In the next phase, we will handle connecting to the wallet providers.
8
+ ### Installation
7
9
 
8
- > **WARNING:** The Rango SDK is still beta. Please use it on your own risk.
10
+ ```shell
11
+ yarn add rango-sdk-basic
12
+ # or
13
+ npm install rango-sdk-basic --save
14
+ ```
9
15
 
10
- > **WARNING:** The Rango SDK has not stabilized yet, and we might make some breaking changes.
16
+ ## Main SDK (Multi Step Tx)
11
17
 
12
- ## 2. Installation
18
+ [![npm version](https://badge.fury.io/js/rango-sdk.svg)](https://badge.fury.io/js/rango-sdk)
19
+ [![license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/rango-exchange/rango-sdk/blob/master/LICENSE)
20
+
21
+ ### Installation
13
22
 
14
23
  ```shell
15
- npm install rango-sdk-basic --save
24
+ yarn add rango-sdk
25
+ # or
26
+ npm install rango-sdk --save
16
27
  ```
17
28
 
18
- ## 3. Usage
29
+ ## Usage
19
30
 
20
31
  Please checkout the examples' folder for sample usage of the SDK. We will add more examples there soon.
21
32
 
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "rango-sdk-basic",
3
+ "version": "0.1.0",
4
+ "description": "Rango Exchange Basic SDK for dApps",
5
+ "module": "./index.js",
6
+ "main": "./cjs/index.js",
7
+ "types": "./index.d.ts",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/rango-exchange/rango-sdk.git"
11
+ },
12
+ "homepage": "https://github.com/rango-exchange/rango-sdk",
13
+ "bugs": {
14
+ "url": "https://github.com/rango-exchange/rango-sdk/issues"
15
+ },
16
+ "keywords": [
17
+ "Rango Exchange",
18
+ "SDK",
19
+ "Cross-Chain",
20
+ "Multi-Chain"
21
+ ],
22
+ "author": "rango.exchange",
23
+ "license": "GPL-3.0",
24
+ "dependencies": {
25
+ "axios": "^1.2.6",
26
+ "bignumber.js": "^9.1.1",
27
+ "eth-rpc-errors": "^4.0.3",
28
+ "ethers": "^5.7.2",
29
+ "rango-types": "^0.1.2",
30
+ "uuid": "^9.0.0"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public",
34
+ "branches": [
35
+ "master"
36
+ ]
37
+ },
38
+ "private": false
39
+ }
@@ -356,19 +356,17 @@ function _extends() {
356
356
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
357
357
  // require the crypto API and do not support built-in fallback to lower quality random number
358
358
  // generators (like Math.random()).
359
- let getRandomValues;
360
- const rnds8 = new Uint8Array(16);
359
+ var getRandomValues;
360
+ var rnds8 = /*#__PURE__*/new Uint8Array(16);
361
361
  function rng() {
362
362
  // lazy load so that environments that need to polyfill have a chance to do so
363
363
  if (!getRandomValues) {
364
364
  // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
365
365
  getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
366
-
367
366
  if (!getRandomValues) {
368
367
  throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
369
368
  }
370
369
  }
371
-
372
370
  return getRandomValues(rnds8);
373
371
  }
374
372
 
@@ -377,44 +375,41 @@ function rng() {
377
375
  * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
378
376
  */
379
377
 
380
- const byteToHex = [];
381
-
382
- for (let i = 0; i < 256; ++i) {
378
+ var byteToHex = [];
379
+ for (var i = 0; i < 256; ++i) {
383
380
  byteToHex.push((i + 0x100).toString(16).slice(1));
384
381
  }
385
-
386
- function unsafeStringify(arr, offset = 0) {
382
+ function unsafeStringify(arr, offset) {
383
+ if (offset === void 0) {
384
+ offset = 0;
385
+ }
387
386
  // Note: Be careful editing this code! It's been tuned for performance
388
387
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
389
388
  return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
390
389
  }
391
390
 
392
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
393
- var native = {
394
- randomUUID
391
+ var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && /*#__PURE__*/crypto.randomUUID.bind(crypto);
392
+ var _native = {
393
+ randomUUID: randomUUID
395
394
  };
396
395
 
397
396
  function v4(options, buf, offset) {
398
- if (native.randomUUID && !buf && !options) {
399
- return native.randomUUID();
397
+ if (_native.randomUUID && !buf && !options) {
398
+ return _native.randomUUID();
400
399
  }
401
-
402
400
  options = options || {};
403
- const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
401
+ var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
404
402
 
405
403
  rnds[6] = rnds[6] & 0x0f | 0x40;
406
404
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
407
405
 
408
406
  if (buf) {
409
407
  offset = offset || 0;
410
-
411
- for (let i = 0; i < 16; ++i) {
408
+ for (var i = 0; i < 16; ++i) {
412
409
  buf[offset + i] = rnds[i];
413
410
  }
414
-
415
411
  return buf;
416
412
  }
417
-
418
413
  return unsafeStringify(rnds);
419
414
  }
420
415
 
@@ -427,19 +422,27 @@ function assetToString(asset) {
427
422
  if (!!asset.address) return asset.blockchain + "." + asset.symbol + "--" + asset.address;else return asset.blockchain + "." + asset.symbol;
428
423
  }
429
424
 
425
+ var MetaInfoType;
426
+ (function (MetaInfoType) {
427
+ MetaInfoType["CosmosMetaInfo"] = "CosmosMetaInfo";
428
+ MetaInfoType["EvmMetaInfo"] = "EvmMetaInfo";
429
+ })(MetaInfoType || (MetaInfoType = {}));
430
+
430
431
  /**
431
432
  * The type of transaction
432
433
  */
433
434
  (function (TransactionType) {
434
- TransactionType["EVM"] = "EVM";
435
- TransactionType["TRANSFER"] = "TRANSFER";
436
- TransactionType["COSMOS"] = "COSMOS";
437
- TransactionType["SOLANA"] = "SOLANA";
435
+ TransactionType["EVM"] = "EVM";
436
+ TransactionType["TRANSFER"] = "TRANSFER";
437
+ TransactionType["COSMOS"] = "COSMOS";
438
+ TransactionType["SOLANA"] = "SOLANA";
439
+ TransactionType["TRON"] = "TRON";
440
+ TransactionType["STARKNET"] = "STARKNET";
438
441
  })(exports.TransactionType || (exports.TransactionType = {}));
439
442
  (function (TransactionStatus) {
440
- TransactionStatus["FAILED"] = "failed";
441
- TransactionStatus["RUNNING"] = "running";
442
- TransactionStatus["SUCCESS"] = "success";
443
+ TransactionStatus["FAILED"] = "failed";
444
+ TransactionStatus["RUNNING"] = "running";
445
+ TransactionStatus["SUCCESS"] = "success";
443
446
  })(exports.TransactionStatus || (exports.TransactionStatus = {}));
444
447
 
445
448
  var MetamaskErrorCodes = {
@@ -678,6 +681,7 @@ var executeEvmRoute = /*#__PURE__*/function () {
678
681
  };
679
682
  }();
680
683
 
684
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
681
685
  var prettifyError = function prettifyError(error) {
682
686
  if (!error) return error;
683
687
  if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001)) return new Error('Transaction Rejected');
@@ -969,7 +973,9 @@ var RangoClient = /*#__PURE__*/function () {
969
973
  return balance;
970
974
  }();
971
975
  _proto.executeEvmRoute = /*#__PURE__*/function () {
972
- var _executeEvmRoute2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(signer, route) {
976
+ var _executeEvmRoute2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(
977
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
978
+ signer, route) {
973
979
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
974
980
  while (1) switch (_context10.prev = _context10.next) {
975
981
  case 0:
@@ -1 +1 @@
1
- {"version":3,"file":"rango-sdk-basic.cjs.development.js","sources":["../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/services/httpService.ts","../src/types/api/common.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":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","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,"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) {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse.isApproved) return true\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 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 await checkApprovalSync(requestId, approveTx.hash, client)\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 return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\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 { v4 } from 'uuid'\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 SwapperMetaDto,\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: boolean = 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 = v4()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = v4()\n }\n } catch (e) {\n this.deviceId = v4()\n }\n if (debug) {\n httpService.interceptors.request.use((request: any) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n httpService.interceptors.response.use((response: any) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async chains(): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async swappers(): Promise<SwapperMetaDto[]> {\n const axiosResponse = await httpService.get<SwapperMetaDto[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async quote(quoteRequest: QuoteRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string\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 }\n )\n return axiosResponse.data\n }\n\n public async status(statusRequest: StatusRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async swap(swapRequest: SwapRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest\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 }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress\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 }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n throw prettifyError(error)\n }\n }\n}\n"],"names":["baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","TransactionType","TransactionStatus","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","console","log","err","checkTransactionStatusSync","status","txStatus","FAILED","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","Error","type","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","v4","setItem","e","interceptors","request","use","JSON","stringify","response","meta","get","axiosResponse","chains","swappers","quote","quoteRequest","body","length","join","undefined","messagingProtocols","params","headers","statusRequest","swap","swapRequest","reportFailure","requestBody","post","balance","walletAddress"],"mappings":"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"}
1
+ {"version":3,"file":"rango-sdk-basic.cjs.development.js","sources":["../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../src/services/httpService.ts","../src/types/api/common.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":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","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,"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) {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse.isApproved) return true\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 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 await checkApprovalSync(requestId, approveTx.hash, client)\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 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 { v4 } from 'uuid'\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 SwapperMetaDto,\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 = v4()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = v4()\n }\n } catch (e) {\n this.deviceId = v4()\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(): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async chains(): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async swappers(): Promise<SwapperMetaDto[]> {\n const axiosResponse = await httpService.get<SwapperMetaDto[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async quote(quoteRequest: QuoteRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string\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 }\n )\n return axiosResponse.data\n }\n\n public async status(statusRequest: StatusRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async swap(swapRequest: SwapRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest\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 }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress\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 }\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 throw prettifyError(error)\n }\n }\n}\n"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","Error","byteToHex","i","push","toString","slice","unsafeStringify","arr","offset","toLowerCase","randomUUID","v4","options","buf","native","rnds","random","baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","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","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","requestId","txId","rangoClient","isApproved","approvalResponse","console","log","err","checkTransactionStatusSync","status","txStatus","TransactionStatus","FAILED","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","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","setItem","e","interceptors","request","use","JSON","stringify","response","meta","get","axiosResponse","chains","swappers","quote","quoteRequest","body","length","join","undefined","messagingProtocols","params","headers","statusRequest","swap","swapRequest","reportFailure","requestBody","post","balance","walletAddress"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=(t=require("axios"))&&"object"==typeof t&&"default"in t?t.default:t,r=require("eth-rpc-errors");function n(){n=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,o=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,n){var a=Object.create((e&&e.prototype instanceof d?e:d).prototype),i=new S(n||[]);return o(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 h={};function d(){}function l(){}function v(){}var g={};u(g,i,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(T([])));m&&m!==e&&r.call(m,i)&&(g=m);var w=v.prototype=d.prototype=Object.create(g);function x(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var n;o(this,"_invoke",{value:function(o,a){function i(){return new e((function(n,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)}(o,a,n,i)}))}return n=n?n.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=I(i,r);if(s){if(s===h)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===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function I(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,I(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;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,h):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}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 L(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 T(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:O}}function O(){return{value:void 0,done:!0}}return l.prototype=v,o(w,"constructor",{value:v,configurable:!0}),o(v,"constructor",{value:l,configurable:!0}),l.displayName=u(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"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(w),t},t.awrap=function(t){return{__await:t}},x(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()}))},x(w),u(w,c,"Generator"),u(w,i,(function(){return this})),u(w,"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=T,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(L),!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,h):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),h},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),L(r),h}},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;L(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}function o(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 a(t){return function(){var e=this,r=arguments;return new Promise((function(n,a){var i=t.apply(e,r);function s(t){o(i,n,a,s,c,"next",t)}function c(t){o(i,n,a,s,c,"throw",t)}s(void 0)}))}}function i(){return(i=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)}let s;const c=new Uint8Array(16);function u(){if(!s&&(s="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!s))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return s(c)}const p=[];for(let t=0;t<256;++t)p.push((t+256).toString(16).slice(1));var f={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function h(t,e,r){if(f.randomUUID&&!e&&!t)return f.randomUUID();const n=(t=t||{}).random||(t.rng||u)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){r=r||0;for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return(p[t[e+0]]+p[t[e+1]]+p[t[e+2]]+p[t[e+3]]+"-"+p[t[e+4]]+p[t[e+5]]+"-"+p[t[e+6]]+p[t[e+7]]+"-"+p[t[e+8]]+p[t[e+9]]+"-"+p[t[e+10]]+p[t[e+11]]+p[t[e+12]]+p[t[e+13]]+p[t[e+14]]+p[t[e+15]]).toLowerCase()}(n)}var d,l,v="undefined"!=typeof process&&process.env.REACT_APP_RANGO_BASE_URL?process.env.REACT_APP_RANGO_BASE_URL:"https://api.rango.exchange",g=e.create({baseURL:v});function y(t){return t.address?t.blockchain+"."+t.symbol+"--"+t.address:t.blockchain+"."+t.symbol}(d=exports.TransactionType||(exports.TransactionType={})).EVM="EVM",d.TRANSFER="TRANSFER",d.COSMOS="COSMOS",d.SOLANA="SOLANA",(l=exports.TransactionStatus||(exports.TransactionStatus={})).FAILED="failed",l.RUNNING="running",l.SUCCESS="success";var m={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 x(t,e){var r=t.gasPrice&&!t.gasPrice.startsWith("0x")?"0x"+parseInt(t.gasPrice).toString(16):null,n=i({},t,{gasPrice:r}),o={};return n.from&&(o=i({},o,{from:n.from})),e?(n.approveTo&&(o=i({},o,{to:n.approveTo})),n.approveData&&(o=i({},o,{data:n.approveData}))):(n.txTo&&(o=i({},o,{to:n.txTo})),n.txData&&(o=i({},o,{data:n.txData})),n.value&&(o=i({},o,{value:n.value})),n.gasLimit&&(o=i({},o,{gasLimit:n.gasLimit})),n.gasPrice&&(o=i({},o,{gasPrice:n.gasPrice}))),o}function b(t,e,r){return E.apply(this,arguments)}function E(){return(E=a(n().mark((function t(e,r,o){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=1,t.next=4,o.isApproved(e,r);case 4:if(!t.sent.isApproved){t.next=7;break}return t.abrupt("return",!0);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(1),console.log("ignorinig error",{err:t.t0});case 12:return t.next=14,w(3e3);case 14:t.next=0;break;case 16:case"end":return t.stop()}}),t,null,[[1,9]])})))).apply(this,arguments)}var I=function(){var t=a(n().mark((function t(e,r,o){var a;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=1,t.next=4,o.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=a(n().mark((function t(e,r,o){var a,i,s,c,u,p,f,h,d,l,v;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=o.tx,i=o.requestId,s=o.error,"OK"==(c=o.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:return u=a,p=parseInt(u.blockChain.chainId||"-1"),t.next=11,r.getChainId();case 11:if((f=t.sent)===p){t.next=14;break}throw new Error("Signer chainId "+f+" doesn't match required chainId "+p+".");case 14:if(!u.approveTo||!u.approveData){t.next=22;break}return h=x(u,!0),t.next=18,r.sendTransaction(h);case 18:return(d=t.sent).wait(),t.next=22,b(i,d.hash,e);case 22:return t.next=24,r.getChainId();case 24:if((f=t.sent)===p){t.next=27;break}throw new Error("Signer chainId "+f+" doesn't match required chainId "+p+".");case 27:return l=x(u,!1),t.next=30,r.sendTransaction(l);case 30:return(v=t.sent).wait(),t.next=34,I(i,v.hash,e);case 34:return t.abrupt("return",t.sent);case 36: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(m.provider).includes(t.code))return new Error(r.getMessageFromCode(t.code));var e,n,o;if(Object.values(m.rpc).includes(t.code))return t.code===m.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},S=function(){function t(t,e){void 0===e&&(e=!1),this.apiKey=t;try{if("undefined"!=typeof window){var r=localStorage.getItem("deviceId");if(r)this.deviceId=r;else{var n=h();localStorage.setItem("deviceId",n),this.deviceId=n}}else this.deviceId=h()}catch(t){this.deviceId=h()}e&&(g.interceptors.request.use((function(t){return console.log("Starting Request",JSON.stringify(t,null,2)),t})),g.interceptors.response.use((function(t){return console.log("Response:",JSON.stringify(t,null,2)),t})))}var e=t.prototype;return e.meta=function(){var t=a(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.get("/basic/meta?apiKey="+this.apiKey);case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),e.chains=function(){var t=a(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.get("/basic/meta/blockchains?apiKey="+this.apiKey);case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),e.swappers=function(){var t=a(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.get("/basic/meta/swappers?apiKey="+this.apiKey);case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),e.quote=function(){var t=a(n().mark((function t(e){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i({},e,{from:y(e.from),to:y(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,g.get("/basic/quote?apiKey="+this.apiKey,{params:r,headers:{"X-Rango-Id":this.deviceId}});case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.isApproved=function(){var t=a(n().mark((function t(e,r){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.get("/basic/is-approved?apiKey="+this.apiKey,{params:{requestId:e,txId:r},headers:{"X-Rango-Id":this.deviceId}});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)}}(),e.status=function(){var t=a(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.get("/basic/status?apiKey="+this.apiKey,{params:e,headers:{"X-Rango-Id":this.deviceId}});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)}}(),e.swap=function(){var t=a(n().mark((function t(e){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=i({},e,{from:y(e.from),to:y(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,g.get("/basic/swap?apiKey="+this.apiKey,{params:r,headers:{"X-Rango-Id":this.deviceId}});case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.reportFailure=function(){var t=a(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.post("/basic/report-tx?apiKey="+this.apiKey,e,{headers:{"X-Rango-Id":this.deviceId}});case 2:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.balance=function(){var t=a(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,g.get("/basic/balance?apiKey="+this.apiKey,{params:e,headers:{"X-Rango-Id":this.deviceId}});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)}}(),e.executeEvmRoute=function(){var t=a(n().mark((function t(e,r){return n().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:throw t.prev=6,t.t0=t.catch(0),L(t.t0);case 9:case"end":return t.stop()}}),t,this,[[0,6]])})));return function(e,r){return t.apply(this,arguments)}}(),t}();exports.MetamaskErrorCodes=m,exports.RangoClient=S,exports.assetToString=y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,r=(t=require("axios"))&&"object"==typeof t&&"default"in t?t.default:t,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 d?e:d).prototype),i=new k(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 h={};function d(){}function l(){}function v(){}var g={};u(g,i,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(L([])));m&&m!==e&&r.call(m,i)&&(g=m);var w=v.prototype=d.prototype=Object.create(g);function x(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=I(i,r);if(s){if(s===h)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===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function I(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,I(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=f(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;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,h):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function S(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 T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function L(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:O}}function O(){return{value:void 0,done:!0}}return l.prototype=v,n(w,"constructor",{value:v,configurable:!0}),n(v,"constructor",{value:l,configurable:!0}),l.displayName=u(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===l||"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(w),t},t.awrap=function(t){return{__await:t}},x(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()}))},x(w),u(w,c,"Generator"),u(w,i,(function(){return this})),u(w,"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=L,k.prototype={constructor:k,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(T),!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,h):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),h},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),T(r),h}},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;T(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:L(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},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=new Uint8Array(16);function u(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(c)}for(var p=[],f=0;f<256;++f)p.push((f+256).toString(16).slice(1));var h={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function d(t,e,r){if(h.randomUUID&&!e&&!t)return h.randomUUID();var n=(t=t||{}).random||(t.rng||u)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){r=r||0;for(var o=0;o<16;++o)e[r+o]=n[o];return e}return function(t,e){return void 0===e&&(e=0),(p[t[e+0]]+p[t[e+1]]+p[t[e+2]]+p[t[e+3]]+"-"+p[t[e+4]]+p[t[e+5]]+"-"+p[t[e+6]]+p[t[e+7]]+"-"+p[t[e+8]]+p[t[e+9]]+"-"+p[t[e+10]]+p[t[e+11]]+p[t[e+12]]+p[t[e+13]]+p[t[e+14]]+p[t[e+15]]).toLowerCase()}(n)}var l,v,g,y="undefined"!=typeof process&&process.env.REACT_APP_RANGO_BASE_URL?process.env.REACT_APP_RANGO_BASE_URL:"https://api.rango.exchange",m=r.create({baseURL:y});function w(t){return t.address?t.blockchain+"."+t.symbol+"--"+t.address:t.blockchain+"."+t.symbol}!function(t){t.CosmosMetaInfo="CosmosMetaInfo",t.EvmMetaInfo="EvmMetaInfo"}(l||(l={})),(v=exports.TransactionType||(exports.TransactionType={})).EVM="EVM",v.TRANSFER="TRANSFER",v.COSMOS="COSMOS",v.SOLANA="SOLANA",v.TRON="TRON",v.STARKNET="STARKNET",(g=exports.TransactionStatus||(exports.TransactionStatus={})).FAILED="failed",g.RUNNING="running",g.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 b(t){return new Promise((function(e){return setTimeout(e,t)}))}function E(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 I(t,e,r){return S.apply(this,arguments)}function S(){return(S=i(o().mark((function t(e,r,n){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(!t.sent.isApproved){t.next=7;break}return t.abrupt("return",!0);case 7:t.next=12;break;case 9:t.prev=9,t.t0=t.catch(1),console.log("ignorinig error",{err:t.t0});case 12:return t.next=14,b(3e3);case 14:t.next=0;break;case 16:case"end":return t.stop()}}),t,null,[[1,9]])})))).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,b(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,f,h,d,l,v;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:return u=a,p=parseInt(u.blockChain.chainId||"-1"),t.next=11,r.getChainId();case 11:if((f=t.sent)===p){t.next=14;break}throw new Error("Signer chainId "+f+" doesn't match required chainId "+p+".");case 14:if(!u.approveTo||!u.approveData){t.next=22;break}return h=E(u,!0),t.next=18,r.sendTransaction(h);case 18:return(d=t.sent).wait(),t.next=22,I(i,d.hash,e);case 22:return t.next=24,r.getChainId();case 24:if((f=t.sent)===p){t.next=27;break}throw new Error("Signer chainId "+f+" doesn't match required chainId "+p+".");case 27:return l=E(u,!1),t.next=30,r.sendTransaction(l);case 30:return(v=t.sent).wait(),t.next=34,T(i,v.hash,e);case 34:return t.abrupt("return",t.sent);case 36: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(x.provider).includes(t.code))return new Error(n.getMessageFromCode(t.code));var e,r,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!=(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},O=function(){function t(t,e){void 0===e&&(e=!1),this.apiKey=t;try{if("undefined"!=typeof window){var r=localStorage.getItem("deviceId");if(r)this.deviceId=r;else{var n=d();localStorage.setItem("deviceId",n),this.deviceId=n}}else this.deviceId=d()}catch(t){this.deviceId=d()}e&&(m.interceptors.request.use((function(t){return console.log("Starting Request",JSON.stringify(t,null,2)),t})),m.interceptors.response.use((function(t){return console.log("Response:",JSON.stringify(t,null,2)),t})))}var e=t.prototype;return e.meta=function(){var t=i(o().mark((function t(){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,m.get("/basic/meta?apiKey="+this.apiKey);case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),e.chains=function(){var t=i(o().mark((function t(){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,m.get("/basic/meta/blockchains?apiKey="+this.apiKey);case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),e.swappers=function(){var t=i(o().mark((function t(){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,m.get("/basic/meta/swappers?apiKey="+this.apiKey);case 2:return t.abrupt("return",t.sent.data);case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),e.quote=function(){var t=i(o().mark((function t(e){var r;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=s({},e,{from:w(e.from),to:w(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,m.get("/basic/quote?apiKey="+this.apiKey,{params:r,headers:{"X-Rango-Id":this.deviceId}});case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.isApproved=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,m.get("/basic/is-approved?apiKey="+this.apiKey,{params:{requestId:e,txId:r},headers:{"X-Rango-Id":this.deviceId}});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)}}(),e.status=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,m.get("/basic/status?apiKey="+this.apiKey,{params:e,headers:{"X-Rango-Id":this.deviceId}});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)}}(),e.swap=function(){var t=i(o().mark((function t(e){var r;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=s({},e,{from:w(e.from),to:w(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,m.get("/basic/swap?apiKey="+this.apiKey,{params:r,headers:{"X-Rango-Id":this.deviceId}});case 3:return t.abrupt("return",t.sent.data);case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.reportFailure=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,m.post("/basic/report-tx?apiKey="+this.apiKey,e,{headers:{"X-Rango-Id":this.deviceId}});case 2:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),e.balance=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,m.get("/basic/balance?apiKey="+this.apiKey,{params:e,headers:{"X-Rango-Id":this.deviceId}});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)}}(),e.executeEvmRoute=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.prev=0,t.next=3,k(this,e,r);case 3:return t.abrupt("return",t.sent);case 6:throw t.prev=6,t.t0=t.catch(0),L(t.t0);case 9: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=w;
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":["../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/services/httpService.ts","../node_modules/rango-types/src/api/shared/transactions.ts","../src/types/api/common.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","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",null,"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","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) {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse.isApproved) return true\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 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 await checkApprovalSync(requestId, approveTx.hash, client)\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 return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\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 { v4 } from 'uuid'\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 SwapperMetaDto,\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: boolean = 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 = v4()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = v4()\n }\n } catch (e) {\n this.deviceId = v4()\n }\n if (debug) {\n httpService.interceptors.request.use((request: any) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n httpService.interceptors.response.use((response: any) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async chains(): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async swappers(): Promise<SwapperMetaDto[]> {\n const axiosResponse = await httpService.get<SwapperMetaDto[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async quote(quoteRequest: QuoteRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string\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 }\n )\n return axiosResponse.data\n }\n\n public async status(statusRequest: StatusRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async swap(swapRequest: SwapRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest\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 }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress\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 }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n throw prettifyError(error)\n }\n }\n}\n"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","Error","byteToHex","i","push","toString","slice","randomUUID","v4","options","buf","offset","native","rnds","random","arr","toLowerCase","unsafeStringify","TransactionType","TransactionStatus","baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","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","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","_checkApprovalSync","requestId","txId","rangoClient","_context3","isApproved","console","log","err","checkTransactionStatusSync","_context","status","txStatus","FAILED","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","_context2","type","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","setItem","e","interceptors","request","use","JSON","stringify","response","_proto","meta","get","chains","swappers","quote","quoteRequest","body","length","join","undefined","messagingProtocols","_context4","params","headers","X-Rango-Id","_context5","statusRequest","_context6","swap","swapRequest","_context7","reportFailure","requestBody","_context8","post","balance","walletAddress","_context9","_context10"],"mappings":"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"}
1
+ {"version":3,"file":"rango-sdk-basic.cjs.production.min.js","sources":["../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../src/services/httpService.ts","../src/types/api/common.ts","../src/types/utils/errors.ts","../src/utils/promise.ts","../src/services/executor.ts","../src/utils/errors.ts","../src/services/client.ts"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","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","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) {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse.isApproved) return true\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 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 await checkApprovalSync(requestId, approveTx.hash, client)\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 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 { v4 } from 'uuid'\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 SwapperMetaDto,\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 = v4()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = v4()\n }\n } catch (e) {\n this.deviceId = v4()\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(): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async chains(): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async swappers(): Promise<SwapperMetaDto[]> {\n const axiosResponse = await httpService.get<SwapperMetaDto[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async quote(quoteRequest: QuoteRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string\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 }\n )\n return axiosResponse.data\n }\n\n public async status(statusRequest: StatusRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async swap(swapRequest: SwapRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest\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 }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress\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 }\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 throw prettifyError(error)\n }\n }\n}\n"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","Error","byteToHex","i","push","toString","slice","randomUUID","v4","options","buf","offset","native","rnds","random","arr","toLowerCase","unsafeStringify","baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","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","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","_checkApprovalSync","requestId","txId","rangoClient","_context3","isApproved","console","log","err","checkTransactionStatusSync","_context","status","txStatus","TransactionStatus","FAILED","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","_context2","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","setItem","e","interceptors","request","use","JSON","stringify","response","_proto","meta","get","chains","swappers","quote","quoteRequest","body","length","join","undefined","messagingProtocols","_context4","params","headers","X-Rango-Id","_context5","statusRequest","_context6","swap","swapRequest","_context7","reportFailure","requestBody","_context8","post","balance","walletAddress","_context9","_context10"],"mappings":"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"}
@@ -350,19 +350,17 @@ function _extends() {
350
350
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
351
351
  // require the crypto API and do not support built-in fallback to lower quality random number
352
352
  // generators (like Math.random()).
353
- let getRandomValues;
354
- const rnds8 = new Uint8Array(16);
353
+ var getRandomValues;
354
+ var rnds8 = /*#__PURE__*/new Uint8Array(16);
355
355
  function rng() {
356
356
  // lazy load so that environments that need to polyfill have a chance to do so
357
357
  if (!getRandomValues) {
358
358
  // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
359
359
  getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
360
-
361
360
  if (!getRandomValues) {
362
361
  throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
363
362
  }
364
363
  }
365
-
366
364
  return getRandomValues(rnds8);
367
365
  }
368
366
 
@@ -371,44 +369,41 @@ function rng() {
371
369
  * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
372
370
  */
373
371
 
374
- const byteToHex = [];
375
-
376
- for (let i = 0; i < 256; ++i) {
372
+ var byteToHex = [];
373
+ for (var i = 0; i < 256; ++i) {
377
374
  byteToHex.push((i + 0x100).toString(16).slice(1));
378
375
  }
379
-
380
- function unsafeStringify(arr, offset = 0) {
376
+ function unsafeStringify(arr, offset) {
377
+ if (offset === void 0) {
378
+ offset = 0;
379
+ }
381
380
  // Note: Be careful editing this code! It's been tuned for performance
382
381
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
383
382
  return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
384
383
  }
385
384
 
386
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
387
- var native = {
388
- randomUUID
385
+ var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && /*#__PURE__*/crypto.randomUUID.bind(crypto);
386
+ var _native = {
387
+ randomUUID: randomUUID
389
388
  };
390
389
 
391
390
  function v4(options, buf, offset) {
392
- if (native.randomUUID && !buf && !options) {
393
- return native.randomUUID();
391
+ if (_native.randomUUID && !buf && !options) {
392
+ return _native.randomUUID();
394
393
  }
395
-
396
394
  options = options || {};
397
- const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
395
+ var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
398
396
 
399
397
  rnds[6] = rnds[6] & 0x0f | 0x40;
400
398
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
401
399
 
402
400
  if (buf) {
403
401
  offset = offset || 0;
404
-
405
- for (let i = 0; i < 16; ++i) {
402
+ for (var i = 0; i < 16; ++i) {
406
403
  buf[offset + i] = rnds[i];
407
404
  }
408
-
409
405
  return buf;
410
406
  }
411
-
412
407
  return unsafeStringify(rnds);
413
408
  }
414
409
 
@@ -421,24 +416,32 @@ function assetToString(asset) {
421
416
  if (!!asset.address) return asset.blockchain + "." + asset.symbol + "--" + asset.address;else return asset.blockchain + "." + asset.symbol;
422
417
  }
423
418
 
419
+ var MetaInfoType;
420
+ (function (MetaInfoType) {
421
+ MetaInfoType["CosmosMetaInfo"] = "CosmosMetaInfo";
422
+ MetaInfoType["EvmMetaInfo"] = "EvmMetaInfo";
423
+ })(MetaInfoType || (MetaInfoType = {}));
424
+
424
425
  /**
425
426
  * The type of transaction
426
427
  */
427
428
  var TransactionType;
428
429
  (function (TransactionType) {
429
- TransactionType["EVM"] = "EVM";
430
- TransactionType["TRANSFER"] = "TRANSFER";
431
- TransactionType["COSMOS"] = "COSMOS";
432
- TransactionType["SOLANA"] = "SOLANA";
430
+ TransactionType["EVM"] = "EVM";
431
+ TransactionType["TRANSFER"] = "TRANSFER";
432
+ TransactionType["COSMOS"] = "COSMOS";
433
+ TransactionType["SOLANA"] = "SOLANA";
434
+ TransactionType["TRON"] = "TRON";
435
+ TransactionType["STARKNET"] = "STARKNET";
433
436
  })(TransactionType || (TransactionType = {}));
434
437
  /**
435
438
  * The status of transaction in tracking
436
439
  */
437
440
  var TransactionStatus;
438
441
  (function (TransactionStatus) {
439
- TransactionStatus["FAILED"] = "failed";
440
- TransactionStatus["RUNNING"] = "running";
441
- TransactionStatus["SUCCESS"] = "success";
442
+ TransactionStatus["FAILED"] = "failed";
443
+ TransactionStatus["RUNNING"] = "running";
444
+ TransactionStatus["SUCCESS"] = "success";
442
445
  })(TransactionStatus || (TransactionStatus = {}));
443
446
 
444
447
  var MetamaskErrorCodes = {
@@ -677,6 +680,7 @@ var executeEvmRoute = /*#__PURE__*/function () {
677
680
  };
678
681
  }();
679
682
 
683
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
680
684
  var prettifyError = function prettifyError(error) {
681
685
  if (!error) return error;
682
686
  if (error.code && (error.code === 'ACTION_REJECTED' || error.code === 4001)) return new Error('Transaction Rejected');
@@ -968,7 +972,9 @@ var RangoClient = /*#__PURE__*/function () {
968
972
  return balance;
969
973
  }();
970
974
  _proto.executeEvmRoute = /*#__PURE__*/function () {
971
- var _executeEvmRoute2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(signer, route) {
975
+ var _executeEvmRoute2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(
976
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
977
+ signer, route) {
972
978
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
973
979
  while (1) switch (_context10.prev = _context10.next) {
974
980
  case 0:
@@ -1 +1 @@
1
- {"version":3,"file":"rango-sdk-basic.esm.js","sources":["../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/services/httpService.ts","../src/types/api/common.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":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","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,"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) {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse.isApproved) return true\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 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 await checkApprovalSync(requestId, approveTx.hash, client)\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 return status\n}\n","import { getMessageFromCode } from 'eth-rpc-errors'\nimport { MetamaskErrorCodes } from '../types/utils/errors'\n\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 { v4 } from 'uuid'\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 SwapperMetaDto,\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: boolean = 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 = v4()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = v4()\n }\n } catch (e) {\n this.deviceId = v4()\n }\n if (debug) {\n httpService.interceptors.request.use((request: any) => {\n console.log('Starting Request', JSON.stringify(request, null, 2))\n return request\n })\n httpService.interceptors.response.use((response: any) => {\n console.log('Response:', JSON.stringify(response, null, 2))\n return response\n })\n }\n }\n\n public async meta(): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async chains(): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async swappers(): Promise<SwapperMetaDto[]> {\n const axiosResponse = await httpService.get<SwapperMetaDto[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async quote(quoteRequest: QuoteRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string\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 }\n )\n return axiosResponse.data\n }\n\n public async status(statusRequest: StatusRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async swap(swapRequest: SwapRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest\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 }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress\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 }\n )\n return axiosResponse.data\n }\n\n public async executeEvmRoute(\n signer: any,\n route: SwapResponse\n ): Promise<StatusResponse> {\n try {\n return await executeEvmRoute(this, signer as Signer, route)\n } catch (error) {\n throw prettifyError(error)\n }\n }\n}\n"],"names":["baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","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","console","log","err","checkTransactionStatusSync","status","txStatus","TransactionStatus","FAILED","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","v4","setItem","e","interceptors","request","use","JSON","stringify","response","meta","get","axiosResponse","chains","swappers","quote","quoteRequest","body","length","join","undefined","messagingProtocols","params","headers","statusRequest","swap","swapRequest","reportFailure","requestBody","post","balance","walletAddress"],"mappings":"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"}
1
+ {"version":3,"file":"rango-sdk-basic.esm.js","sources":["../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../src/services/httpService.ts","../src/types/api/common.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":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","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,"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) {\n while (true) {\n try {\n const approvalResponse = await rangoClient.isApproved(requestId, txId)\n if (approvalResponse.isApproved) return true\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 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 await checkApprovalSync(requestId, approveTx.hash, client)\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 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 { v4 } from 'uuid'\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 SwapperMetaDto,\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 = v4()\n localStorage.setItem('deviceId', generatedId)\n this.deviceId = generatedId\n }\n } else {\n this.deviceId = v4()\n }\n } catch (e) {\n this.deviceId = v4()\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(): Promise<MetaResponse> {\n const axiosResponse = await httpService.get<MetaResponse>(\n `/basic/meta?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async chains(): Promise<BlockchainMeta[]> {\n const axiosResponse = await httpService.get<BlockchainMeta[]>(\n `/basic/meta/blockchains?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async swappers(): Promise<SwapperMetaDto[]> {\n const axiosResponse = await httpService.get<SwapperMetaDto[]>(\n `/basic/meta/swappers?apiKey=${this.apiKey}`\n )\n return axiosResponse.data\n }\n\n public async quote(quoteRequest: QuoteRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async isApproved(\n requestId: string,\n txId: string\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 }\n )\n return axiosResponse.data\n }\n\n public async status(statusRequest: StatusRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async swap(swapRequest: SwapRequest): 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 }\n )\n return axiosResponse.data\n }\n\n public async reportFailure(\n requestBody: ReportTransactionRequest\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 }\n )\n }\n\n public async balance(\n walletAddress: WalletAddress\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 }\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 throw prettifyError(error)\n }\n }\n}\n"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","Error","byteToHex","i","push","toString","slice","unsafeStringify","arr","offset","toLowerCase","randomUUID","v4","options","buf","native","rnds","random","baseURL","process","env","REACT_APP_RANGO_BASE_URL","httpService","axios","create","assetToString","asset","address","blockchain","symbol","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","manipulatedTx","tx","from","approveTo","to","approveData","data","txTo","txData","value","gasLimit","checkApprovalSync","requestId","txId","rangoClient","isApproved","approvalResponse","console","log","err","checkTransactionStatusSync","status","txStatus","TransactionStatus","FAILED","SUCCESS","includes","executeEvmRoute","client","signer","route","error","resultType","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","setItem","e","interceptors","request","use","JSON","stringify","response","meta","get","axiosResponse","chains","swappers","quote","quoteRequest","body","length","join","undefined","messagingProtocols","params","headers","statusRequest","swap","swapRequest","reportFailure","requestBody","post","balance","walletAddress"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/services/client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EAErB,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAA;AAKjB,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;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe;IA8BrC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAO7B,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOnC,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOrC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBzD,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAWpB,MAAM,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAW7D,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBrD,aAAa,CACxB,WAAW,EAAE,wBAAwB,GACpC,OAAO,CAAC,IAAI,CAAC;IAUH,OAAO,CAClB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IAWpB,eAAe,CAC1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,CAAC;CAO3B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/services/client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EAErB,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAA;AAKjB,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;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,MAAM,EAAE,MAAM,EAAE,KAAK,UAAQ;IA8B5B,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAO7B,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOnC,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOrC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBzD,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAWpB,MAAM,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAW7D,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBrD,aAAa,CACxB,WAAW,EAAE,wBAAwB,GACpC,OAAO,CAAC,IAAI,CAAC;IAUH,OAAO,CAClB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IAWpB,eAAe,CAE1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,CAAC;CAO3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/utils/errors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,UAAW,GAAG,QAwBvC,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/utils/errors.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,UAAW,GAAG,QAwBvC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rango-sdk-basic",
3
- "version": "0.0.15",
3
+ "version": "0.1.0",
4
4
  "description": "Rango Exchange Basic SDK for dApps",
5
5
  "module": "lib/rango-sdk-basic.esm.js",
6
6
  "main": "lib/index.js",
@@ -9,17 +9,18 @@
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/rango-exchange/rango-sdk.git"
11
11
  },
12
- "homepage": "https://github.com/rango-exchange/rango-sdk/tree/basic-api",
12
+ "homepage": "https://github.com/rango-exchange/rango-sdk",
13
13
  "bugs": {
14
14
  "url": "https://github.com/rango-exchange/rango-sdk/issues"
15
15
  },
16
16
  "scripts": {
17
- "build": "tsdx build --tsconfig ./tsconfig.json && yarn mv:file lib",
17
+ "clean": "rm -rf ./lib",
18
+ "build": "tsdx build --tsconfig ./tsconfig.json && yarn post:build",
19
+ "post:build": "yarn mv:file lib && node ../../scripts/frank-build.js",
18
20
  "watch": "tsdx watch",
19
- "format": "prettier --write ./src",
20
- "lint": "eslint */**/*.{js,ts} --quiet --fix",
21
- "semantic-release": "semantic-release",
22
- "mv:file": "sh ./scripts/post-build.sh"
21
+ "lint": "eslint src -c ../../.eslintrc.json --fix --ignore-path ../../.prettierignore",
22
+ "format": "prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ../../.prettierrc.json --ignore-path ../../.prettierignore",
23
+ "mv:file": "sh ../../scripts/post-build.sh"
23
24
  },
24
25
  "keywords": [
25
26
  "Rango Exchange",
@@ -32,25 +33,12 @@
32
33
  ],
33
34
  "author": "rango.exchange",
34
35
  "license": "GPL-3.0",
35
- "devDependencies": {
36
- "@rollup/plugin-replace": "^5.0.2",
37
- "@types/uuid": "^9.0.0",
38
- "@types/node": "^18.11.18",
39
- "@typescript-eslint/eslint-plugin": "^5.9.1",
40
- "@typescript-eslint/parser": "^5.9.1",
41
- "eslint": "^8.33.0",
42
- "eslint-config-prettier": "^8.6.0",
43
- "eslint-plugin-import": "^2.27.5",
44
- "eslint-plugin-prettier": "^4.2.1",
45
- "prettier": "^2.8.3",
46
- "typescript": "^4.9.4"
47
- },
48
36
  "dependencies": {
49
37
  "axios": "^1.2.6",
50
38
  "bignumber.js": "^9.1.1",
51
39
  "eth-rpc-errors": "^4.0.3",
52
40
  "ethers": "^5.7.2",
53
- "rango-types": "^0.1.1",
41
+ "rango-types": "^0.1.2",
54
42
  "uuid": "^9.0.0"
55
43
  },
56
44
  "publishConfig": {