rango-sdk-basic 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -21
- package/lib/rango-sdk-basic.cjs.development.js +1002 -0
- package/lib/rango-sdk-basic.cjs.development.js.map +1 -0
- package/lib/rango-sdk-basic.cjs.production.min.js +2 -0
- package/lib/rango-sdk-basic.cjs.production.min.js.map +1 -0
- package/lib/rango-sdk-basic.esm.js +999 -0
- package/lib/rango-sdk-basic.esm.js.map +1 -0
- package/lib/services/client.d.ts +21 -21
- package/lib/services/client.d.ts.map +1 -1
- package/lib/services/executor.d.ts +7 -7
- package/lib/services/executor.d.ts.map +1 -1
- package/lib/services/httpService.d.ts +1 -1
- package/lib/services/httpService.d.ts.map +1 -1
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.d.ts.map +1 -1
- package/lib/types/api/balance.d.ts +1 -38
- package/lib/types/api/balance.d.ts.map +1 -1
- package/lib/types/api/common.d.ts +3 -126
- package/lib/types/api/common.d.ts.map +1 -1
- package/lib/types/api/meta.d.ts +1 -183
- package/lib/types/api/meta.d.ts.map +1 -1
- package/lib/types/api/routing.d.ts +1 -43
- package/lib/types/api/routing.d.ts.map +1 -1
- package/lib/types/api/transactions.d.ts +1 -188
- package/lib/types/api/transactions.d.ts.map +1 -1
- package/lib/types/api/txs/cosmos.d.ts +1 -68
- package/lib/types/api/txs/cosmos.d.ts.map +1 -1
- package/lib/types/api/txs/evm.d.ts +1 -29
- package/lib/types/api/txs/evm.d.ts.map +1 -1
- package/lib/types/api/txs/index.d.ts +3 -3
- package/lib/types/api/txs/index.d.ts.map +1 -1
- package/lib/types/api/txs/transfer.d.ts +1 -28
- package/lib/types/api/txs/transfer.d.ts.map +1 -1
- package/lib/types/index.d.ts +7 -7
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/utils/errors.d.ts +22 -22
- package/lib/types/utils/errors.d.ts.map +1 -1
- package/lib/utils/errors.d.ts +1 -1
- package/lib/utils/errors.d.ts.map +1 -1
- package/lib/utils/promise.d.ts +1 -1
- package/lib/utils/promise.d.ts.map +1 -1
- package/package.json +20 -19
- package/lib/index.js.map +0 -1
- package/lib/services/client.js +0 -257
- package/lib/services/client.js.map +0 -1
- package/lib/services/executor.js +0 -194
- package/lib/services/executor.js.map +0 -1
- package/lib/services/httpService.js +0 -14
- package/lib/services/httpService.js.map +0 -1
- package/lib/services/index.js +0 -6
- package/lib/services/index.js.map +0 -1
- package/lib/types/api/balance.js +0 -3
- package/lib/types/api/balance.js.map +0 -1
- package/lib/types/api/common.js +0 -11
- package/lib/types/api/common.js.map +0 -1
- package/lib/types/api/meta.js +0 -3
- package/lib/types/api/meta.js.map +0 -1
- package/lib/types/api/routing.js +0 -3
- package/lib/types/api/routing.js.map +0 -1
- package/lib/types/api/transactions.js +0 -22
- package/lib/types/api/transactions.js.map +0 -1
- package/lib/types/api/txs/cosmos.js +0 -3
- package/lib/types/api/txs/cosmos.js.map +0 -1
- package/lib/types/api/txs/evm.js +0 -3
- package/lib/types/api/txs/evm.js.map +0 -1
- package/lib/types/api/txs/index.js +0 -20
- package/lib/types/api/txs/index.js.map +0 -1
- package/lib/types/api/txs/transfer.js +0 -3
- package/lib/types/api/txs/transfer.js.map +0 -1
- package/lib/types/index.js +0 -24
- package/lib/types/index.js.map +0 -1
- package/lib/types/utils/errors.js +0 -26
- package/lib/types/utils/errors.js.map +0 -1
- package/lib/utils/errors.js +0 -31
- package/lib/utils/errors.js.map +0 -1
- package/lib/utils/promise.js +0 -8
- package/lib/utils/promise.js.map +0 -1
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +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;
|
|
2
|
+
//# sourceMappingURL=rango-sdk-basic.cjs.production.min.js.map
|
|
@@ -0,0 +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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"}
|