├── examples ├── basic │ ├── node-evm │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── rpc.ts │ │ ├── index.ts │ │ └── yarn.lock │ ├── node-psbt │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── index.ts │ │ └── yarn.lock │ ├── node-tron │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ └── index.ts │ ├── node-solana │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ └── index.ts │ ├── node-starknet │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ └── index.ts │ └── shared │ │ └── utils │ │ └── logger.ts └── main │ ├── node-evm │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── rpc.ts │ ├── index.ts │ └── yarn.lock │ ├── node-psbt │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── index.ts │ └── yarn.lock │ ├── node-solana │ ├── .gitignore │ ├── README.md │ ├── package.json │ └── index.ts │ ├── node-tron │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── index.ts │ └── yarn.lock │ ├── node-starknet │ ├── .gitignore │ ├── README.md │ ├── package.json │ └── index.ts │ └── shared │ └── utils │ ├── meta.ts │ └── logger.ts ├── packages ├── rango-sdk │ ├── src │ │ ├── services │ │ │ ├── index.ts │ │ │ └── client.ts │ │ ├── types │ │ │ ├── api │ │ │ │ ├── balance.ts │ │ │ │ ├── common.ts │ │ │ │ ├── routing.ts │ │ │ │ ├── txs │ │ │ │ │ ├── evm.ts │ │ │ │ │ ├── ton.ts │ │ │ │ │ ├── cosmos.ts │ │ │ │ │ ├── solana.ts │ │ │ │ │ ├── tron.ts │ │ │ │ │ ├── starknet.ts │ │ │ │ │ ├── transfer.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── transactions.ts │ │ │ │ └── meta.ts │ │ │ ├── configs.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ ├── tsdx.config.js │ ├── README.md │ └── package.json └── rango-sdk-basic │ ├── src │ ├── services │ │ ├── index.ts │ │ └── client.ts │ ├── types │ │ ├── api │ │ │ ├── balance.ts │ │ │ ├── routing.ts │ │ │ ├── txs │ │ │ │ ├── evm.ts │ │ │ │ ├── cosmos.ts │ │ │ │ ├── solana.ts │ │ │ │ ├── transfer.ts │ │ │ │ └── index.ts │ │ │ ├── transactions.ts │ │ │ ├── meta.ts │ │ │ └── common.ts │ │ ├── configs.ts │ │ └── index.ts │ └── index.ts │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ ├── tsdx.config.js │ ├── README.md │ └── package.json ├── .prettierrc.json ├── .prettierignore ├── scripts ├── post-build.sh └── frank-build.js ├── .gitignore ├── .husky └── post-commit ├── .eslintrc.json ├── tsconfig.json ├── tsdx.config.js ├── package.json ├── README.md ├── .github └── workflows │ └── publish.yml └── LICENSE /examples/basic/node-evm/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/basic/node-psbt/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/basic/node-tron/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/main/node-evm/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/main/node-psbt/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/main/node-solana/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/main/node-tron/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/basic/node-solana/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/basic/node-starknet/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/main/node-starknet/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/services/index.ts: -------------------------------------------------------------------------------- 1 | export { RangoClient } from './client' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/services/index.ts: -------------------------------------------------------------------------------- 1 | export { RangoClient } from './client' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/balance.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/balance' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/common.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/common' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/routing.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/routing' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/evm.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/txs/evm' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/ton.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/txs/ton' 2 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "endOfLine": "auto" 5 | } 6 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/balance.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/balance' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/routing.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/routing' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/txs/evm.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/txs/evm' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/cosmos.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/txs/cosmos' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/solana.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/txs/solana' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/tron.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/shared/txs/tron' 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .next 3 | yarn.lock 4 | package-lock.json 5 | public 6 | lib 7 | dist 8 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/index.ts: -------------------------------------------------------------------------------- 1 | export { RangoClient } from './services' 2 | export * from './types' 3 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/transactions.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/transactions' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/starknet.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/shared/txs/starknet' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/transfer.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/txs/transfer' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/index.ts: -------------------------------------------------------------------------------- 1 | export { RangoClient } from './services' 2 | export * from './types' 3 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/transactions.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/transactions' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/txs/cosmos.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/txs/cosmos' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/txs/solana.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/txs/solana' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/txs/transfer.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/txs/transfer' 2 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/txs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './evm' 2 | export * from './cosmos' 3 | export * from './transfer' 4 | export * from './solana' 5 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/configs.ts: -------------------------------------------------------------------------------- 1 | import { GenericAbortSignal } from 'axios' 2 | 3 | export interface RequestOptions { 4 | signal?: GenericAbortSignal 5 | } 6 | -------------------------------------------------------------------------------- /packages/rango-sdk/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "outDir": "lib/cjs", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /scripts/post-build.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | if [ -n "$1" ];then 4 | buildPath=$1 5 | echo "moved build files from dist to ${buildPath}" 6 | mv dist/ ${buildPath}/ 7 | fi 8 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/configs.ts: -------------------------------------------------------------------------------- 1 | import { GenericAbortSignal } from 'axios' 2 | 3 | export interface RequestOptions { 4 | signal?: GenericAbortSignal 5 | } 6 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/tsconfig.cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "outDir": "lib/cjs", 5 | "module": "CommonJS" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | **node_modules** 3 | **dist** 4 | **lib** 5 | /.env 6 | **build** 7 | .cache 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | .yalc 12 | yalc.lock 13 | .parcel-cache -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/meta.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/basic/meta' 2 | export * from 'rango-types/lib/api/shared/type-gaurds' 3 | export type { MetaRequest } from 'rango-types/lib/api/shared/meta' 4 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/meta.ts: -------------------------------------------------------------------------------- 1 | export * from 'rango-types/lib/api/main/meta' 2 | export * from 'rango-types/lib/api/shared/type-gaurds' 3 | export type { MetaRequest, SwapperMetaExtended } from 'rango-types/lib/api/shared/meta' 4 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/api/txs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './evm' 2 | export * from './cosmos' 3 | export * from './transfer' 4 | export * from './solana' 5 | export * from './starknet' 6 | export * from './tron' 7 | export * from './ton' 8 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './api/balance' 2 | export * from './api/common' 3 | export * from './api/meta' 4 | export * from './api/routing' 5 | export * from './api/transactions' 6 | export * from './api/txs' 7 | export * from './configs' 8 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './api/balance' 2 | export * from './api/common' 3 | export * from './api/meta' 4 | export * from './api/routing' 5 | export * from './api/transactions' 6 | export * from './api/txs' 7 | export * from './configs' 8 | -------------------------------------------------------------------------------- /.husky/post-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | if [ -z "${GIT_COMMITTER_DATE:-}" ]; then 5 | DATE="$(date -u +%Y-%m-%dT%H:%M:%S%z)"; 6 | export GIT_AUTHOR_DATE="$DATE"; 7 | export GIT_COMMITTER_DATE="$DATE" 8 | git commit --amend --date "$DATE" --no-edit 9 | fi -------------------------------------------------------------------------------- /packages/rango-sdk/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig", 3 | "compilerOptions": { 4 | "composite": true, 5 | "declaration": true, 6 | "noEmit": false, 7 | "outDir": "lib", 8 | "rootDir": "./src" 9 | }, 10 | "include": ["src"], 11 | "exclude": ["node_modules", "**/__tests__/*"] 12 | } 13 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig", 3 | "compilerOptions": { 4 | "composite": true, 5 | "declaration": true, 6 | "noEmit": false, 7 | "outDir": "lib", 8 | "rootDir": "./src" 9 | }, 10 | "include": ["src"], 11 | "exclude": ["node_modules", "**/__tests__/*"] 12 | } 13 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/types/api/common.ts: -------------------------------------------------------------------------------- 1 | import { RequestedAsset } from 'rango-types/lib/api/basic' 2 | export * from 'rango-types/lib/api/basic/common' 3 | 4 | export function assetToString(asset: RequestedAsset): string { 5 | return `${asset.blockchain}${asset.symbol ? '.' + asset.symbol : ''}${ 6 | asset.address ? '--' + asset.address : '' 7 | }` 8 | } 9 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": [ 7 | "plugin:prettier/recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ], 10 | "parser": "@typescript-eslint/parser", 11 | "parserOptions": { 12 | "ecmaVersion": 13, 13 | "sourceType": "module" 14 | }, 15 | "plugins": ["@typescript-eslint"] 16 | } 17 | -------------------------------------------------------------------------------- /examples/main/node-evm/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK for EVM Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk 6 | - ethers 7 | - Node.js >= 20 8 | 9 | ### How to run the code? 10 | 11 | Set up your wallet in index.ts, then run following commands in the root: 12 | 13 | ```sh 14 | yarn 15 | yarn build 16 | cd /path/to/example/ 17 | node --import=tsx index.ts 18 | ``` 19 | -------------------------------------------------------------------------------- /examples/basic/node-evm/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK-Basic for EVM Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk-basic 6 | - ethers 7 | - Node.js >= 20 8 | 9 | ### How to run the code? 10 | 11 | Set up your wallet in index.ts, then run following commands in the root: 12 | 13 | ```sh 14 | yarn 15 | yarn build 16 | cd /path/to/example/ 17 | node --import=tsx index.ts 18 | ``` 19 | -------------------------------------------------------------------------------- /examples/main/node-tron/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK for Tron Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk 6 | - @rango-dev/signer-tron 7 | - tronweb@beta 8 | - Node.js >= 20 9 | 10 | ### How to run the code? 11 | 12 | Set up your wallet in index.ts, then run following commands in the root: 13 | 14 | ```sh 15 | yarn 16 | yarn build 17 | cd /path/to/example/ 18 | node --import=tsx index.ts 19 | ``` 20 | -------------------------------------------------------------------------------- /examples/main/node-psbt/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK for PSBT Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk 6 | - bitcoinjs-lib 7 | - ecpair 8 | - tiny-secp256k1 9 | - Node.js >= 20 10 | 11 | ### How to run the code? 12 | 13 | Set up your wallet in index.ts, then run following commands in the root: 14 | 15 | ```sh 16 | yarn 17 | yarn build 18 | cd /path/to/example/ 19 | node --import=tsx index.ts 20 | ``` 21 | -------------------------------------------------------------------------------- /examples/main/node-starknet/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK for Starknet Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk 6 | - @rango-dev/signer-starknet 7 | - starknet 8 | - Node.js >= 20 9 | 10 | ### How to run the code? 11 | 12 | Set up your wallet in index.ts, then run following commands in the root: 13 | 14 | ```sh 15 | yarn 16 | yarn build 17 | cd /path/to/example/ 18 | node --import=tsx index.ts 19 | ``` 20 | -------------------------------------------------------------------------------- /examples/main/shared/utils/meta.ts: -------------------------------------------------------------------------------- 1 | import { Token } from "rango-sdk" 2 | 3 | export function findToken(tokens: Token[], blockchain: string, address: string | null): Token { 4 | const token = tokens.find(token => 5 | token.blockchain === blockchain && token.address == address 6 | ) 7 | if (!token) { 8 | throw new Error(`There was no token with blockchain=${blockchain} & address=${address}`) 9 | } 10 | return token 11 | } -------------------------------------------------------------------------------- /examples/basic/node-tron/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK-Basic for Tron Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk-basic 6 | - @rango-dev/signer-tron 7 | - tronweb@beta 8 | - Node.js >= 20 9 | 10 | ### How to run the code? 11 | 12 | Set up your wallet in index.ts, then run following commands in the root: 13 | 14 | ```sh 15 | yarn 16 | yarn build 17 | cd /path/to/example/ 18 | node --import=tsx index.ts 19 | ``` 20 | -------------------------------------------------------------------------------- /examples/basic/node-psbt/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK-Basic for PSBT Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk-basic 6 | - bitcoinjs-lib 7 | - ecpair 8 | - tiny-secp256k1 9 | - Node.js >= 20 10 | 11 | ### How to run the code? 12 | 13 | Set up your wallet in index.ts, then run following commands in the root: 14 | 15 | ```sh 16 | yarn 17 | yarn build 18 | cd /path/to/example/ 19 | node --import=tsx index.ts 20 | ``` 21 | -------------------------------------------------------------------------------- /examples/basic/node-starknet/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK-Basic for Starknet Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk-basic 6 | - @rango-dev/signer-starknet 7 | - starknet 8 | - Node.js >= 20 9 | 10 | ### How to run the code? 11 | 12 | Set up your wallet in index.ts, then run following commands in the root: 13 | 14 | ```sh 15 | yarn 16 | yarn build 17 | cd /path/to/example/ 18 | node --import=tsx index.ts 19 | ``` 20 | -------------------------------------------------------------------------------- /examples/main/node-solana/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK for Solana Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk 6 | - @rango-dev/signer-solana 7 | - solana/web3.js 8 | - bs58 9 | - Node.js >= 20 10 | 11 | ### How to run the code? 12 | 13 | Set up your wallet in index.ts, then run following commands in the root: 14 | 15 | ```sh 16 | yarn 17 | yarn build 18 | cd /path/to/example/ 19 | node --import=tsx index.ts 20 | ``` 21 | -------------------------------------------------------------------------------- /examples/basic/node-solana/README.md: -------------------------------------------------------------------------------- 1 | ## Node.js Example for integrating Rango-SDK-Basic for Solana Transactions 2 | 3 | ### Requirements: 4 | 5 | - rango-sdk-basic 6 | - @rango-dev/signer-solana 7 | - solana/web3.js 8 | - bs58 9 | - Node.js >= 20 10 | 11 | ### How to run the code? 12 | 13 | Set up your wallet in index.ts, then run following commands in the root: 14 | 15 | ```sh 16 | yarn 17 | yarn build 18 | cd /path/to/example/ 19 | node --import=tsx index.ts 20 | ``` 21 | -------------------------------------------------------------------------------- /examples/main/node-evm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-evm", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "ethers": "^6.13.2", 13 | "rango-sdk": "^0.1.56" 14 | }, 15 | "devDependencies": { 16 | "tsx": "^4.17.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/basic/node-evm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "basic-evm", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "ethers": "^6.13.2", 13 | "rango-sdk-basic": "^0.1.58" 14 | }, 15 | "devDependencies": { 16 | "tsx": "^4.17.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/main/node-tron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-tron", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "rango-sdk": "^0.1.56", 13 | "@rango-dev/signer-tron": "^0.29.0", 14 | "tronweb": "^6.0.0-beta.4" 15 | }, 16 | "devDependencies": { 17 | "tsx": "^4.17.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/basic/node-tron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "basic-tron", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "@rango-dev/signer-tron": "^0.29.0", 13 | "rango-sdk-basic": "^0.1.58", 14 | "tronweb": "^6.0.0-beta.4" 15 | }, 16 | "devDependencies": { 17 | "tsx": "^4.17.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/main/node-starknet/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-starknet", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "rango-sdk": "^0.1.56", 13 | "@rango-dev/signer-starknet": "^0.30.0", 14 | "starknet": "^6.11.0" 15 | }, 16 | "devDependencies": { 17 | "tsx": "^4.17.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/main/node-evm/rpc.ts: -------------------------------------------------------------------------------- 1 | import { MetaResponse, TransactionType } from "rango-sdk"; 2 | 3 | export function getRpcUrlForBlockchain(meta: MetaResponse, blockchainName: string): string { 4 | const rpcUrl = meta 5 | .blockchains 6 | .filter(blockchain => blockchain.type === TransactionType.EVM) 7 | .find(blockchain => blockchain.name === blockchainName) 8 | ?.info.rpcUrls?.[0] 9 | if (!rpcUrl) { 10 | throw new Error(`There is no rpc url for blockchain ${blockchainName}`) 11 | } 12 | return rpcUrl 13 | } -------------------------------------------------------------------------------- /examples/basic/node-evm/rpc.ts: -------------------------------------------------------------------------------- 1 | import { MetaResponse, TransactionType } from "rango-sdk-basic"; 2 | 3 | export function getRpcUrlForBlockchain(meta: MetaResponse, blockchainName: string): string { 4 | const rpcUrl = meta 5 | .blockchains 6 | .filter(blockchain => blockchain.type === TransactionType.EVM) 7 | .find(blockchain => blockchain.name === blockchainName) 8 | ?.info.rpcUrls?.[0] 9 | if (!rpcUrl) { 10 | throw new Error(`There is no rpc url for blockchain ${blockchainName}`) 11 | } 12 | return rpcUrl 13 | } -------------------------------------------------------------------------------- /examples/basic/node-starknet/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "basic-starknet", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "rango-sdk-basic": "^0.1.58", 13 | "@rango-dev/signer-starknet": "^0.30.0", 14 | "starknet": "^6.11.0" 15 | }, 16 | "devDependencies": { 17 | "tsx": "^4.17.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/basic/node-psbt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "basic-psbt", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "bitcoinjs-lib": "^6.1.7", 13 | "ecpair": "^3.0.0", 14 | "rango-sdk-basic": "^0.1.67", 15 | "tiny-secp256k1": "^2.2.3" 16 | }, 17 | "devDependencies": { 18 | "tsx": "^4.17.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/main/node-psbt/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-psbt", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "rango-sdk": "^0.1.67", 13 | "bitcoinjs-lib": "^6.1.7", 14 | "ecpair": "^3.0.0", 15 | "tiny-secp256k1": "^2.2.3" 16 | }, 17 | "devDependencies": { 18 | "tsx": "^4.17.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/main/node-solana/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-solana", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "@rango-dev/signer-solana": "^0.31.0", 13 | "@solana/web3.js": "^1.91.4", 14 | "bs58": "^6.0.0", 15 | "rango-sdk": "^0.1.56" 16 | }, 17 | "devDependencies": { 18 | "tsx": "^4.17.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/basic/node-solana/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "basic-solana", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "echo \"No need for a build. \"", 8 | "clean": "echo \"No need for a clean. \"" 9 | }, 10 | "type": "module", 11 | "dependencies": { 12 | "@rango-dev/signer-solana": "^0.31.0", 13 | "@solana/web3.js": "^1.91.4", 14 | "bs58": "^6.0.0", 15 | "rango-sdk-basic": "^0.1.58" 16 | }, 17 | "devDependencies": { 18 | "tsx": "^4.17.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2019", 4 | "module": "ESNext", 5 | "moduleResolution": "node", 6 | "declaration": true, 7 | "declarationMap": true, 8 | "outDir": "./lib", 9 | "lib": ["esnext", "dom", "dom.iterable"], 10 | "allowSyntheticDefaultImports": true, 11 | "esModuleInterop": true, 12 | "isolatedModules": true, 13 | "forceConsistentCasingInFileNames": true, 14 | "resolveJsonModule": true, 15 | "skipLibCheck": true, 16 | "sourceMap": true, 17 | "strict": true, 18 | "noUnusedLocals": false, 19 | "noUnusedParameters": true, 20 | "noImplicitReturns": true, 21 | "noEmit": false 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tsdx.config.js: -------------------------------------------------------------------------------- 1 | const replace = require('@rollup/plugin-replace') 2 | 3 | module.exports = { 4 | rollup(config, opts) { 5 | // https://github.com/jaredpalmer/tsdx/issues/179#issuecomment-525306272 6 | config.external = (id) => { 7 | if (id !== 'axios' && id !== 'eth-rpc-errors' && id !== 'uuid-random') 8 | return false 9 | return true 10 | } 11 | // https://github.com/jaredpalmer/tsdx/issues/981#issuecomment-789920054 12 | config.plugins = config.plugins.map((p) => 13 | p.name === 'replace' 14 | ? replace({ 15 | 'process.env.NODE_ENV': JSON.stringify(opts.env), 16 | preventAssignment: true, 17 | }) 18 | : p 19 | ) 20 | // config.output.esModule = true 21 | return config 22 | }, 23 | } 24 | -------------------------------------------------------------------------------- /packages/rango-sdk/tsdx.config.js: -------------------------------------------------------------------------------- 1 | const replace = require('@rollup/plugin-replace') 2 | 3 | module.exports = { 4 | rollup(config, opts) { 5 | // https://github.com/jaredpalmer/tsdx/issues/179#issuecomment-525306272 6 | config.external = (id) => { 7 | if (id !== 'axios' && id !== 'eth-rpc-errors' && id !== 'uuid-random') 8 | return false 9 | return true 10 | } 11 | // https://github.com/jaredpalmer/tsdx/issues/981#issuecomment-789920054 12 | config.plugins = config.plugins.map((p) => 13 | p.name === 'replace' 14 | ? replace({ 15 | 'process.env.NODE_ENV': JSON.stringify(opts.env), 16 | preventAssignment: true, 17 | }) 18 | : p 19 | ) 20 | // config.output.esModule = true 21 | return config 22 | }, 23 | } 24 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/tsdx.config.js: -------------------------------------------------------------------------------- 1 | const replace = require('@rollup/plugin-replace') 2 | 3 | module.exports = { 4 | rollup(config, opts) { 5 | // https://github.com/jaredpalmer/tsdx/issues/179#issuecomment-525306272 6 | config.external = (id) => { 7 | if (id !== 'axios' && id !== 'eth-rpc-errors' && id !== 'uuid-random') 8 | return false 9 | return true 10 | } 11 | // https://github.com/jaredpalmer/tsdx/issues/981#issuecomment-789920054 12 | config.plugins = config.plugins.map((p) => 13 | p.name === 'replace' 14 | ? replace({ 15 | 'process.env.NODE_ENV': JSON.stringify(opts.env), 16 | preventAssignment: true, 17 | }) 18 | : p 19 | ) 20 | // config.output.esModule = true 21 | return config 22 | }, 23 | } 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "sideEffects": false, 4 | "workspaces": [ 5 | "packages/*", 6 | "examples/basic/*", 7 | "examples/main/*" 8 | ], 9 | "scripts": { 10 | "prepare": "husky install", 11 | "build": "yarn workspaces run build", 12 | "clean": "yarn workspaces run clean", 13 | "dev": "yarn workspaces run watch", 14 | "format": "yarn workspaces run format", 15 | "lint": "yarn workspaces run lint" 16 | }, 17 | "devDependencies": { 18 | "husky": "^8.0.3", 19 | "@rollup/plugin-replace": "^5.0.2", 20 | "@types/node": "^18.11.18", 21 | "@types/uuid": "^9.0.0", 22 | "@typescript-eslint/eslint-plugin": "^5.9.1", 23 | "@typescript-eslint/parser": "^5.9.1", 24 | "eslint": "^8.33.0", 25 | "eslint-config-prettier": "^8.6.0", 26 | "eslint-plugin-import": "^2.27.5", 27 | "eslint-plugin-prettier": "^4.2.1", 28 | "fs-extra": "^11.1.0", 29 | "prettier": "^2.8.3", 30 | "typescript": "^4.9.4", 31 | "tsdx": "^0.14.1" 32 | }, 33 | "dependencies": {} 34 | } 35 | -------------------------------------------------------------------------------- /packages/rango-sdk/README.md: -------------------------------------------------------------------------------- 1 | # Rango Exchange SDK 2 | 3 | - [Multiple-SDK Reference](https://docs.rango.exchange/api-integration/main-api-multi-step/api-reference) 4 | 5 | ## Main SDK (Multi Step Tx) 6 | 7 | [![npm version](https://badge.fury.io/js/rango-sdk.svg)](https://badge.fury.io/js/rango-sdk) 8 | [![license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/rango-exchange/rango-sdk/blob/master/LICENSE) 9 | 10 | ### Installation 11 | 12 | ```shell 13 | yarn add rango-sdk 14 | # or 15 | npm install rango-sdk --save 16 | ``` 17 | 18 | ## Usage 19 | 20 | - [Main-SDK Reference](https://docs.rango.exchange/api-integration/main-api-multi-step/api-reference) 21 | - Examples 22 | - [EVM Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/main/node-evm/) 23 | - [Solana Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/main/node-solana/) 24 | - [Tron Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/main/node-tron/) 25 | - [Starknet Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/main/node-starknet/) 26 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/README.md: -------------------------------------------------------------------------------- 1 | # Rango Exchange SDK 2 | 3 | ## Basic SDK (Single Step Tx) 4 | 5 | [![npm version](https://badge.fury.io/js/rango-sdk-basic.svg)](https://badge.fury.io/js/rango-sdk-basic) 6 | [![license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/rango-exchange/rango-sdk/blob/master/LICENSE) 7 | 8 | ### Installation 9 | 10 | ```shell 11 | yarn add rango-sdk-basic 12 | # or 13 | npm install rango-sdk-basic --save 14 | ``` 15 | 16 | ## Usage 17 | 18 | - [Basic-SDK Integration Tutorial](https://docs.rango.exchange/api-integration/basic-api-single-step/tutorial/sdk-example) 19 | - [Basic-SDK Reference](https://docs.rango.exchange/api-integration/basic-api-single-step/api-reference) 20 | - Examples 21 | - [EVM Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/basic/node-evm/) 22 | - [Solana Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/basic/node-solana/) 23 | - [Tron Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/basic/node-tron/) 24 | - [Starknet Example](https://github.com/rango-exchange/rango-sdk/tree/master/examples/basic/node-starknet/) 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rango Exchange SDK 2 | 3 | Documents: 4 | 5 | - [Basic-SDK Reference](https://docs.rango.exchange/api-integration/basic-api-single-step/api-reference) 6 | - [Multiple-SDK Reference](https://docs.rango.exchange/api-integration/main-api-multi-step/api-reference) 7 | - [Examples](https://github.com/rango-exchange/rango-sdk/tree/master/examples) 8 | - [Basic-SDK Integration Tutorial](https://docs.rango.exchange/api-integration/basic-api-single-step/tutorial/sdk-example) 9 | 10 | ## Basic SDK (Single Step Tx) 11 | 12 | [![npm version](https://badge.fury.io/js/rango-sdk-basic.svg)](https://badge.fury.io/js/rango-sdk-basic) 13 | [![license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/rango-exchange/rango-sdk/blob/master/LICENSE) 14 | 15 | ### Installation 16 | 17 | ```shell 18 | yarn add rango-sdk-basic 19 | # or 20 | npm install rango-sdk-basic --save 21 | ``` 22 | 23 | ## Main SDK (Multi Step Tx) 24 | 25 | [![npm version](https://badge.fury.io/js/rango-sdk.svg)](https://badge.fury.io/js/rango-sdk) 26 | [![license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/rango-exchange/rango-sdk/blob/master/LICENSE) 27 | 28 | ### Installation 29 | 30 | ```shell 31 | yarn add rango-sdk 32 | # or 33 | npm install rango-sdk --save 34 | ``` 35 | -------------------------------------------------------------------------------- /packages/rango-sdk/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rango-sdk", 3 | "version": "0.1.71", 4 | "description": "Rango Exchange SDK for dApps", 5 | "module": "lib/rango-sdk.esm.js", 6 | "main": "lib/index.js", 7 | "types": "lib/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 | "scripts": { 17 | "clean": "rm -rf ./lib && rm -rf ./dist", 18 | "build": "tsdx build --tsconfig ./tsconfig.json && yarn post:build", 19 | "post:build": "yarn mv:file lib", 20 | "watch": "tsdx watch", 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" 24 | }, 25 | "keywords": [ 26 | "Rango Exchange", 27 | "SDK", 28 | "Cross-Chain", 29 | "Multi-Chain", 30 | "Ethereum", 31 | "Cosmos", 32 | "Solana", 33 | "Tron", 34 | "Starknet", 35 | "Ton", 36 | "Aggregator" 37 | ], 38 | "files": [ 39 | "lib/**/*", 40 | "src" 41 | ], 42 | "author": "rango.exchange", 43 | "license": "GPL-3.0", 44 | "dependencies": { 45 | "axios": "^1.7.4", 46 | "rango-types": "^0.1.89", 47 | "uuid-random": "^1.3.2" 48 | }, 49 | "publishConfig": { 50 | "access": "public", 51 | "branches": [ 52 | "master" 53 | ] 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rango-sdk-basic", 3 | "version": "0.1.71", 4 | "description": "Rango Exchange Basic SDK for dApps", 5 | "module": "lib/rango-sdk-basic.esm.js", 6 | "main": "lib/index.js", 7 | "types": "lib/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-basic", 13 | "bugs": { 14 | "url": "https://github.com/rango-exchange/rango-sdk/issues" 15 | }, 16 | "scripts": { 17 | "clean": "rm -rf ./lib && rm -rf ./dist", 18 | "build": "tsdx build --tsconfig ./tsconfig.json && yarn post:build", 19 | "post:build": "yarn mv:file lib", 20 | "watch": "tsdx watch", 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" 24 | }, 25 | "keywords": [ 26 | "Rango Exchange", 27 | "SDK", 28 | "Cross-Chain", 29 | "Multi-Chain", 30 | "Ethereum", 31 | "Cosmos", 32 | "Solana", 33 | "Tron", 34 | "Starknet", 35 | "Ton", 36 | "Aggregator" 37 | ], 38 | "files": [ 39 | "lib/**/*", 40 | "src" 41 | ], 42 | "author": "rango.exchange", 43 | "license": "GPL-3.0", 44 | "dependencies": { 45 | "axios": "^1.7.4", 46 | "rango-types": "^0.1.89", 47 | "uuid-random": "^1.3.2" 48 | }, 49 | "publishConfig": { 50 | "access": "public", 51 | "branches": [ 52 | "master" 53 | ] 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /scripts/frank-build.js: -------------------------------------------------------------------------------- 1 | const fse = require('fs-extra') 2 | const path = require('path') 3 | 4 | const pckPath = process.cwd() 5 | const destPath = path.join(pckPath, './lib') 6 | 7 | async function includeFileInBuild(file) { 8 | const sourcePath = path.resolve(pckPath, file) 9 | const targetPath = path.resolve(destPath, path.basename(file)) 10 | if (fse.existsSync(sourcePath)) { 11 | await fse.copy(sourcePath, targetPath) 12 | } 13 | console.log(`Copied ${sourcePath} to ${targetPath}`) 14 | } 15 | 16 | async function createPackageFile() { 17 | const packageData = await fse.readFile( 18 | path.resolve(pckPath, './package.json'), 19 | 'utf8' 20 | ) 21 | const { scripts, devDependencies, workspaces, files, ...packageDataOther } = 22 | JSON.parse(packageData) 23 | 24 | const newPackageData = { 25 | ...packageDataOther, 26 | private: false, 27 | ...(packageDataOther.main 28 | ? { 29 | main: './cjs/index.js', 30 | module: './index.js', 31 | types: './index.d.ts', 32 | } 33 | : {}), 34 | } 35 | 36 | const targetPath = path.resolve(destPath, './package.json') 37 | 38 | await fse.writeFile( 39 | targetPath, 40 | JSON.stringify(newPackageData, null, 2), 41 | 'utf8' 42 | ) 43 | console.log(`Created package.json in ${targetPath}.`) 44 | 45 | return newPackageData 46 | } 47 | 48 | async function run() { 49 | try { 50 | await createPackageFile() 51 | await Promise.all( 52 | ['../../README.md', '../../LICENSE'].map((file) => 53 | includeFileInBuild(file) 54 | ) 55 | ) 56 | } catch (err) { 57 | console.error(err) 58 | process.exit(1) 59 | } 60 | } 61 | 62 | run() 63 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish Packages 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | publish-packages: 10 | if: | 11 | !contains(github.event.head_commit.message , 'ci(release)') 12 | && !contains(github.event.head_commit.message , 'example') 13 | 14 | name: Publish Packages 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v3 19 | with: 20 | fetch-depth: 0 21 | ref: master 22 | token: ${{ secrets.PAT }} 23 | 24 | - name: Setup NodeJS 25 | uses: actions/setup-node@v3 26 | with: 27 | node-version: '20' 28 | cache: 'yarn' 29 | 30 | - name: Set Git Config 31 | run: | 32 | git config --global user.name 'github-actions[bot]' 33 | git config --global user.email 'github-actions[bot]@users.noreply.github.com' 34 | 35 | - name: Auth 36 | run: | 37 | echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc 38 | npm whoami 39 | 40 | env: 41 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 42 | 43 | - name: Install dependencies 44 | run: yarn install 45 | 46 | - name: Pull latest changes 47 | run: git pull origin master 48 | 49 | - name: Build packages 50 | run: yarn build 51 | 52 | - name: Bump version of packages 53 | run: | 54 | # Get the list of packages in the packages folder 55 | packages=$(ls packages) 56 | 57 | # Loop through each package and bump the version 58 | for package in $packages; do 59 | cd packages/$package 60 | npm version patch --no-git-tag-version 61 | cd ../../ 62 | done 63 | 64 | - name: Commit and push changes 65 | run: | 66 | git stash -- yarn.lock 67 | git commit -am "ci(release): bump package versions" 68 | git push origin master 69 | 70 | - name: Publish packages 71 | run: | 72 | cd packages/rango-sdk 73 | npm publish --access public 74 | cd ../rango-sdk-basic 75 | npm publish --access public 76 | -------------------------------------------------------------------------------- /examples/basic/node-tron/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | RangoClient, 5 | TransactionStatus, 6 | TransactionType, 7 | } from 'rango-sdk-basic' 8 | import { 9 | logQuote, 10 | logWallet, 11 | logSwap, 12 | logSwapStatus, 13 | logTransactionHash, 14 | } from '../shared/utils/logger.js' 15 | import { setTimeout } from 'timers/promises' 16 | import { DefaultTronSigner } from '@rango-dev/signer-tron' 17 | import { TronWeb } from 'tronweb' 18 | 19 | // setup wallet and tron web 20 | const privateKey = 'YOUR_PRIVATE_KEY' // Replace with your private key 21 | 22 | // in web based apps, you could use injected provider instead 23 | // e.g. use window.tronLink.tronWeb or ... instead 24 | const TRON_API = 'https://api.trongrid.io' 25 | const tronWeb = new TronWeb(TRON_API, TRON_API, TRON_API, privateKey) 26 | const walletAddress = tronWeb.address.fromPrivateKey(privateKey) || '' 27 | 28 | logWallet(walletAddress) 29 | 30 | // initiate sdk using your api key 31 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 32 | const rango = new RangoClient(API_KEY) 33 | 34 | // some example tokens for test purpose 35 | const sourceBlockchain = 'TRON' 36 | const sourceTokenAddress = null 37 | const targetBlockchain = 'TRON' 38 | const targetTokenAddress = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t' 39 | const amount = '1000' // 0.001 TRX 40 | 41 | // get quote 42 | const quoteRequest = { 43 | from: { blockchain: sourceBlockchain, address: sourceTokenAddress }, 44 | to: { blockchain: targetBlockchain, address: targetTokenAddress }, 45 | amount, 46 | slippage: 1.0, 47 | } 48 | const quote = await rango.quote(quoteRequest) 49 | logQuote(quote) 50 | 51 | const swapRequest = { 52 | ...quoteRequest, 53 | fromAddress: walletAddress, 54 | toAddress: walletAddress, 55 | } 56 | 57 | // create transaction 58 | const swap = await rango.swap(swapRequest) 59 | logSwap(swap) 60 | 61 | const tx = swap.tx 62 | 63 | if (!tx) { 64 | throw new Error(`Error creating the transaction ${swap.error}`) 65 | } 66 | 67 | if (tx.type === TransactionType.TRON) { 68 | const defaultSigner = new DefaultTronSigner({ tronWeb }) 69 | 70 | const { hash } = await defaultSigner.signAndSendTx(tx) 71 | logTransactionHash(hash, false) 72 | 73 | // track swap status 74 | while (true) { 75 | await setTimeout(10_000) 76 | const state = await rango.status({ 77 | requestId: swap.requestId, 78 | txId: hash, 79 | }) 80 | logSwapStatus(state) 81 | 82 | const status = state.status 83 | if ( 84 | status && 85 | [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(status) 86 | ) { 87 | break 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /examples/basic/node-starknet/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | RangoClient, 5 | TransactionStatus, 6 | TransactionType, 7 | } from 'rango-sdk-basic' 8 | import { 9 | logQuote, 10 | logWallet, 11 | logSwap, 12 | logSwapStatus, 13 | logTransactionHash, 14 | } from '../shared/utils/logger.js' 15 | import { setTimeout } from 'timers/promises' 16 | import { DefaultStarknetSigner } from '@rango-dev/signer-starknet' 17 | import { Account, RpcProvider } from 'starknet' 18 | 19 | // setup wallet 20 | const privateKey = 'YOUR_PRIVATE_KEY' // Replace with your private key 21 | const walletAddress = 'YOUR_WALLET_ADDRESS' // Replace with your wallet address 22 | 23 | // in web based apps, you could use injected provider instead 24 | // e.g. use window.starknet_braavos or window.starknet_argentX instead 25 | // https://starknetjs.com/docs/guides/connect_network 26 | const provider = new RpcProvider({ 27 | nodeUrl: 'https://starknet-mainnet.public.blastapi.io/rpc/v0_7', 28 | }) 29 | const account = new Account(provider, walletAddress, privateKey) 30 | 31 | logWallet(walletAddress) 32 | 33 | // initiate sdk using your api key 34 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 35 | const rango = new RangoClient(API_KEY) 36 | 37 | // some example tokens for test purpose 38 | const sourceBlockchain = 'STARKNET' 39 | const sourceTokenAddress = 40 | '0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7' 41 | const targetBlockchain = 'STARKNET' 42 | const targetTokenAddress = 43 | '0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d' 44 | const amount = '1000000000' 45 | 46 | // get quote 47 | const quoteRequest = { 48 | from: { blockchain: sourceBlockchain, address: sourceTokenAddress }, 49 | to: { blockchain: targetBlockchain, address: targetTokenAddress }, 50 | amount, 51 | slippage: 1.0, 52 | } 53 | const quote = await rango.quote(quoteRequest) 54 | logQuote(quote) 55 | 56 | const swapRequest = { 57 | ...quoteRequest, 58 | fromAddress: walletAddress, 59 | toAddress: walletAddress, 60 | } 61 | 62 | // create transaction 63 | const swap = await rango.swap(swapRequest) 64 | logSwap(swap) 65 | 66 | const tx = swap.tx 67 | 68 | if (!tx) { 69 | throw new Error(`Error creating the transaction ${swap.error}`) 70 | } 71 | 72 | if (tx.type === TransactionType.STARKNET) { 73 | const defaultSigner = new DefaultStarknetSigner({ 74 | account, 75 | enable: () => { 76 | //do nothing 77 | }, 78 | }) 79 | 80 | const { hash } = await defaultSigner.signAndSendTx(tx) 81 | logTransactionHash(hash, false) 82 | 83 | // track swap status 84 | while (true) { 85 | await setTimeout(10_000) 86 | const state = await rango.status({ 87 | requestId: swap.requestId, 88 | txId: hash, 89 | }) 90 | logSwapStatus(state) 91 | 92 | const status = state.status 93 | if ( 94 | status && 95 | [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(status) 96 | ) { 97 | break 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /examples/basic/shared/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { 2 | MetaResponse, 3 | QuoteResponse, 4 | RoutingResultType, 5 | StatusResponse, 6 | SwapResponse, 7 | TransactionStatus, 8 | TransactionType, 9 | } from 'rango-sdk-basic' 10 | 11 | export function logMeta(meta: MetaResponse) { 12 | const { tokens, blockchains } = meta 13 | console.log( 14 | `- fetched ${tokens.length} tokens and ${blockchains.length} blockchains` 15 | ) 16 | } 17 | 18 | export function logQuote(quote: QuoteResponse) { 19 | const route = quote.route 20 | if (route && quote.resultType === RoutingResultType.OK) { 21 | console.log(`- found a quote via ${route.swapper.title}`) 22 | console.log(` - result type: ${quote.resultType}`) 23 | console.log( 24 | ` - output: ${route.outputAmount} ${route.to.symbol} equals to $${route.outputAmountUsd}` 25 | ) 26 | console.log(` - fee: $${route.feeUsd}`) 27 | console.log(` - estimated time: ${route.estimatedTimeInSeconds}s`) 28 | } else { 29 | console.log(`There was no route! ${quote.error} ${quote.resultType}`) 30 | } 31 | } 32 | 33 | export function logWallet(address: string) { 34 | console.log(`- connected to walelt address: ${address}`) 35 | } 36 | 37 | export function logSwap(swap: SwapResponse) { 38 | const { error, tx } = swap 39 | if (tx) { 40 | console.log(`- transaction created successfully.`) 41 | const tx = swap.tx 42 | if (tx?.type === TransactionType.EVM) { 43 | if (tx.approveData && tx.approveTo) { 44 | console.log(`- user doesn't have enough approval`) 45 | console.log(`- signing the approve transaction ...`) 46 | } else { 47 | console.log(`- user has enough approval`) 48 | console.log(`- signing the main transaction ...`) 49 | } 50 | } 51 | } else { 52 | console.log(`- error creating the transaction, ${error}`) 53 | } 54 | } 55 | 56 | export function logSwapStatus(state: StatusResponse) { 57 | const { status, bridgeData } = state 58 | console.log(`- transaction status: ${status}`) 59 | if (status === TransactionStatus.SUCCESS) { 60 | console.log(`- Hooray! Swap succeeds!`) 61 | } else if (status === TransactionStatus.FAILED) { 62 | console.log(`- Swap failed!`) 63 | } 64 | if ( 65 | status && 66 | [TransactionStatus.SUCCESS, TransactionStatus.FAILED].includes(status) 67 | ) { 68 | console.log( 69 | ` - Output token: ${state.output?.receivedToken.blockchain}.${state.output?.receivedToken.symbol}` 70 | ) 71 | console.log(` - Output token type: ${state.output?.type}`) 72 | console.log(` - Output token amount: ${state.output?.amount}`) 73 | console.log(` - Inbound transaction hash: ${bridgeData?.srcTxHash}`) 74 | console.log(` - Outbound transaction hash: ${bridgeData?.destTxHash}`) 75 | } 76 | } 77 | 78 | export function logTransactionHash(hash: string, isApproval: boolean) { 79 | if (isApproval) { 80 | console.log(`- sending approve transaction: ${hash}`) 81 | } else { 82 | console.log(`- sending main transaction: ${hash}`) 83 | } 84 | } 85 | 86 | export function logApprovalResponse(isApproved: boolean) { 87 | console.log(`- does user have enough approve amount? ${isApproved}`) 88 | } 89 | -------------------------------------------------------------------------------- /examples/basic/node-solana/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | RangoClient, 5 | TransactionStatus, 6 | TransactionType, 7 | } from 'rango-sdk-basic' 8 | import { 9 | logQuote, 10 | logWallet, 11 | logSwap, 12 | logSwapStatus, 13 | logTransactionHash, 14 | } from '../shared/utils/logger.js' 15 | import { setTimeout } from 'timers/promises' 16 | import bs58 from 'bs58' 17 | import { 18 | Keypair, 19 | PublicKey, 20 | Transaction, 21 | VersionedTransaction, 22 | } from '@solana/web3.js' 23 | import { 24 | DefaultSolanaSigner, 25 | setSolanaSignerConfig, 26 | } from '@rango-dev/signer-solana' 27 | 28 | // setup wallet key pair 29 | const base58PrivateKey = 'YOUR_BASE58_ENCODED_PRIVATE_KEY' 30 | const privateKey = bs58.decode(base58PrivateKey) 31 | const keypair = Keypair.fromSecretKey(privateKey) 32 | const walletAddress = keypair.publicKey.toString() 33 | 34 | // in web based apps, you could use injected provider instead 35 | // e.g. use window.phantom.solana instead of SolanaProvider 36 | class SolanaProvider { 37 | public publicKey?: PublicKey 38 | private keypair: Keypair 39 | 40 | constructor(keypair: Keypair) { 41 | this.keypair = keypair 42 | this.publicKey = keypair.publicKey 43 | } 44 | 45 | async signTransaction(transaction: VersionedTransaction | Transaction) { 46 | if (transaction instanceof VersionedTransaction) 47 | transaction.sign([this.keypair]) 48 | else transaction.sign(this.keypair) 49 | return transaction 50 | } 51 | } 52 | const solana = new SolanaProvider(keypair) 53 | 54 | logWallet(walletAddress) 55 | 56 | // initiate sdk using your api key 57 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 58 | const rango = new RangoClient(API_KEY) 59 | 60 | // some example tokens for test purpose 61 | const sourceBlockchain = 'SOLANA' 62 | const sourceTokenAddress = null 63 | const targetBlockchain = 'SOLANA' 64 | const targetTokenAddress = 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB' 65 | const amount = '10000' 66 | 67 | // get quote 68 | const quoteRequest = { 69 | from: { blockchain: sourceBlockchain, address: sourceTokenAddress }, 70 | to: { blockchain: targetBlockchain, address: targetTokenAddress }, 71 | amount, 72 | slippage: 1.0, 73 | } 74 | const quote = await rango.quote(quoteRequest) 75 | logQuote(quote) 76 | 77 | const swapRequest = { 78 | ...quoteRequest, 79 | fromAddress: walletAddress, 80 | toAddress: walletAddress, 81 | } 82 | 83 | // create transaction 84 | const swap = await rango.swap(swapRequest) 85 | logSwap(swap) 86 | 87 | const tx = swap.tx 88 | 89 | if (!tx) { 90 | throw new Error(`Error creating the transaction ${swap.error}`) 91 | } 92 | 93 | if (tx.type === TransactionType.SOLANA) { 94 | const defaultSigner = new DefaultSolanaSigner(solana as any) 95 | setSolanaSignerConfig('customRPC', 'https://api.mainnet-beta.solana.com/') 96 | 97 | const { hash } = await defaultSigner.signAndSendTx(tx) 98 | logTransactionHash(hash, false) 99 | 100 | // track swap status 101 | while (true) { 102 | await setTimeout(10_000) 103 | const state = await rango.status({ 104 | requestId: swap.requestId, 105 | txId: hash, 106 | }) 107 | logSwapStatus(state) 108 | 109 | const status = state.status 110 | if ( 111 | status && 112 | [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(status) 113 | ) { 114 | break 115 | } 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /examples/main/shared/utils/logger.ts: -------------------------------------------------------------------------------- 1 | import { SwapResult, MetaResponse, MultiRouteResponse, Token, TransactionStatusResponse, ConfirmRouteResponse, TransactionStatus } from 'rango-sdk' 2 | 3 | 4 | export function logMeta(meta: MetaResponse) { 5 | const { tokens, blockchains } = meta 6 | console.log(`- fetched ${tokens.length} tokens and ${blockchains.length} blockchains`) 7 | } 8 | 9 | export function logSelectedTokens(sourceToken: Token, targetToken: Token) { 10 | console.log(`- user selects to swap ${sourceToken.blockchain}.${sourceToken.symbol} to ${targetToken.blockchain}.${targetToken.symbol}`) 11 | } 12 | 13 | export function logRoutes(routingResponse: MultiRouteResponse) { 14 | const routes = routingResponse.results 15 | if (routes.length > 0) { 16 | console.log(`- found ${routes.length} routes:`) 17 | for (const [index, route] of routes.entries()) { 18 | console.log(` - route ${index + 1}: ${route.swaps.map(swap => swap.swapperId).join(' -> ')}`) 19 | console.log(` - result type: ${route.resultType}`) 20 | console.log(` - output: ${route.outputAmount} ${route.swaps[route.swaps.length - 1].to.symbol}`) 21 | console.log(` - tags: ${route.tags.map(tag => tag.label).join(', ') || '-'}`) 22 | } 23 | } else { 24 | console.log(`There was no route! ${routingResponse.error}`) 25 | } 26 | } 27 | 28 | export function logConfirmedRoute(response: ConfirmRouteResponse['result']) { 29 | const route = response?.result! 30 | console.log(`- confirmed route: ${route.swaps.map(swap => swap.swapperId).join(' -> ')}`) 31 | console.log(` - request id: ${response?.requestId}`) 32 | console.log(` - result type: ${route.resultType}`) 33 | console.log(` - output: ${route.outputAmount} ${route.swaps[route.swaps.length - 1].to.symbol}`) 34 | console.log(` - balance validations:`) 35 | for (const validation of response?.validationStatus || []) { 36 | console.log(` - ${validation.blockchain}:`) 37 | for (const wallet of validation.wallets) { 38 | for (const asset of wallet.requiredAssets) { 39 | console.log(` - asset: ${asset.asset.symbol}, reason: ${asset.reason}, required balance: ${asset.requiredAmount.amount}, current balance: ${asset.currentAmount.amount}, ok? ${asset.ok}`) 40 | } 41 | } 42 | } 43 | } 44 | 45 | 46 | export function logRouteStep(swap: SwapResult, step: number) { 47 | console.log(`- executing step #${step} from: ${swap.fromAmount} ${swap.from.blockchain}-${swap.from.symbol} to ${swap.toAmount} ${swap.to.blockchain}-${swap.to.symbol} via ${swap.swapperId}`) 48 | } 49 | 50 | 51 | export function logWallet(address: string) { 52 | console.log(`- connected to walelt address: ${address}`) 53 | } 54 | 55 | export function logStepStatus(state: TransactionStatusResponse) { 56 | const { status } = state 57 | console.log(` - transaction status: ${status}`) 58 | if (status === TransactionStatus.SUCCESS) { 59 | console.log(` - Hooray! Swap step succeeds!`) 60 | } else if (status === TransactionStatus.FAILED) { 61 | console.log(` - Swap failed!`) 62 | } 63 | if (status && [TransactionStatus.SUCCESS, TransactionStatus.FAILED].includes(status)) { 64 | console.log(` - Output token: ${state.outputToken?.blockchain}.${state.outputToken?.symbol}`) 65 | console.log(` - Output token type: ${state.outputType}`) 66 | console.log(` - Output token amount: ${state.outputAmount}`) 67 | for (const data of state.explorerUrl || []) { 68 | console.log(` - ${data.description}: ${data.url}`) 69 | } 70 | } 71 | } 72 | 73 | export function logTransactionHash(hash: string, isApproval: boolean) { 74 | if (isApproval) { 75 | console.log(` - sending approve transaction: ${hash}`) 76 | } else { 77 | console.log(` - sending main transaction: ${hash}`) 78 | } 79 | } 80 | 81 | export function logApprovalResponse(isApproved: boolean) { 82 | console.log(` - does user have enough approve amount? ${isApproved}`) 83 | } -------------------------------------------------------------------------------- /examples/basic/node-psbt/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { RangoClient, SwapRequest, TransactionStatus } from 'rango-sdk-basic' 4 | import process from 'node:process' 5 | 6 | import { 7 | logMeta, 8 | logQuote, 9 | logWallet, 10 | logSwap, 11 | logSwapStatus, 12 | logTransactionHash, 13 | } from '../shared/utils/logger.js' 14 | import { setTimeout } from 'timers/promises' 15 | import * as bitcoin from 'bitcoinjs-lib' 16 | import { ECPairFactory } from 'ecpair' 17 | import * as tinysecp from 'tiny-secp256k1' 18 | 19 | // Configuration constants 20 | const BTC_RPC_URL = 'https://go.getblock.io/f37bad28a991436483c0a3679a3acbee' 21 | const BITCOIN_WIF = 'YOUR_BITCOIN_PRIVATE_KEY' 22 | const EVM_ADDRESS = 'YOUR_EVM_ADDRESS' 23 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 24 | const NETWORK = bitcoin.networks.bitcoin // switch to bitcoin.networks.testnet for testnet 25 | 26 | // quote request example for test purpose 27 | const sourceBlockchain = 'BTC' 28 | const sourceTokenAddress = null 29 | const targetBlockchain = 'ARBITRUM' 30 | const targetTokenAddress = '0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f' 31 | const transactionAmount = '20000' 32 | const transactionSlippage = 1.0 33 | 34 | async function executeSwapTransaction() { 35 | // 1. Initialize key pair and derive address 36 | const ECPair = ECPairFactory(tinysecp) 37 | const keyPair = ECPair.fromWIF(BITCOIN_WIF, NETWORK) 38 | const { address } = bitcoin.payments.p2wpkh({ 39 | pubkey: Buffer.from(keyPair.publicKey), 40 | network: NETWORK, 41 | }) 42 | 43 | if (!address) throw new Error('Invalid wallet address') 44 | logWallet(address) 45 | 46 | // 2. Initialize SDK client and fetch metadata 47 | const rango = new RangoClient(API_KEY) 48 | const meta = await rango.meta() 49 | logMeta(meta) 50 | 51 | // 3. Request a quote 52 | const quoteRequest = { 53 | from: { blockchain: sourceBlockchain, address: sourceTokenAddress }, 54 | to: { blockchain: targetBlockchain, address: targetTokenAddress }, 55 | amount: transactionAmount, 56 | slippage: transactionSlippage, 57 | } 58 | 59 | const quote = await rango.quote(quoteRequest) 60 | logQuote(quote) 61 | 62 | // 4. Build and send swap request 63 | const swapRequest: SwapRequest = { 64 | ...quoteRequest, 65 | fromAddress: address, 66 | toAddress: EVM_ADDRESS, 67 | } 68 | const swap = await rango.swap(swapRequest) 69 | logSwap(swap) 70 | const { tx } = swap 71 | if (tx?.type !== 'TRANSFER' || !tx.psbt) 72 | throw new Error('Invalid transaction structure') 73 | 74 | // 5. Sign and finalize PSBT 75 | const psbt = bitcoin.Psbt.fromBase64(tx.psbt.unsignedPsbtBase64) 76 | const signer: bitcoin.Signer = { 77 | publicKey: Buffer.from(keyPair.publicKey), 78 | sign: (hash: Buffer) => Buffer.from(keyPair.sign(Uint8Array.from(hash))), 79 | } 80 | tx.psbt.inputsToSign.forEach((input) => { 81 | input.signingIndexes.forEach((index) => psbt.signInput(index, signer)) 82 | }) 83 | psbt.finalizeAllInputs() 84 | const rawTransactionHex = psbt.extractTransaction().toHex() 85 | 86 | // 6. Broadcast raw transaction 87 | const response = await fetch(BTC_RPC_URL, { 88 | method: 'POST', 89 | headers: { 'Content-Type': 'application/json' }, 90 | body: JSON.stringify({ 91 | method: 'sendrawtransaction', 92 | params: [rawTransactionHex], 93 | }), 94 | }) 95 | if (!response.ok) 96 | throw new Error(`Broadcast failed: ${await response.text()}`) 97 | const { result: transactionId } = await response.json() 98 | logTransactionHash(transactionId, false) 99 | 100 | // 7. Monitor transaction status 101 | 102 | while (true) { 103 | await setTimeout(10_000) 104 | const state = await rango.status({ 105 | requestId: swap.requestId, 106 | txId: transactionId, 107 | }) 108 | logSwapStatus(state) 109 | 110 | const status = state.status 111 | if ( 112 | status && 113 | ![TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(status) 114 | ) { 115 | break 116 | } 117 | } 118 | } 119 | 120 | executeSwapTransaction().catch((e) => { 121 | console.error(e) 122 | process.exit(1) 123 | }) 124 | -------------------------------------------------------------------------------- /examples/basic/node-evm/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | RangoClient, 5 | SwapRequest, 6 | TransactionStatus, 7 | TransactionType, 8 | } from 'rango-sdk-basic' 9 | import { 10 | logMeta, 11 | logQuote, 12 | logWallet, 13 | logSwap, 14 | logSwapStatus, 15 | logTransactionHash, 16 | logApprovalResponse, 17 | } from '../shared/utils/logger.js' 18 | import { TransactionRequest, ethers } from 'ethers' 19 | import { setTimeout } from 'timers/promises' 20 | import { getRpcUrlForBlockchain } from './rpc.js' 21 | 22 | // setup wallet 23 | const privateKey = 'YOUR_PRIVATE_KEY' 24 | const wallet = new ethers.Wallet(privateKey) 25 | 26 | logWallet(wallet.address) 27 | 28 | // initiate sdk using your api key 29 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 30 | const rango = new RangoClient(API_KEY) 31 | 32 | // get blockchains and tokens meta data 33 | const meta = await rango.meta() 34 | logMeta(meta) 35 | 36 | // some example tokens for test purpose 37 | const sourceBlockchain = 'BSC' 38 | const sourceTokenAddress = '0x55d398326f99059ff775485246999027b3197955' 39 | const targetBlockchain = 'BSC' 40 | const targetTokenAddress = null 41 | const amount = '10000000000000' 42 | 43 | // get quote 44 | const quoteRequest = { 45 | from: { blockchain: sourceBlockchain, address: sourceTokenAddress }, 46 | to: { blockchain: targetBlockchain, address: targetTokenAddress }, 47 | amount, 48 | slippage: 1.0, 49 | } 50 | const quote = await rango.quote(quoteRequest) 51 | logQuote(quote) 52 | 53 | const swapRequest: SwapRequest = { 54 | ...quoteRequest, 55 | fromAddress: wallet.address, 56 | toAddress: wallet.address, 57 | } 58 | 59 | // create transaction 60 | const swap = await rango.swap(swapRequest) 61 | logSwap(swap) 62 | 63 | const tx = swap.tx 64 | 65 | if (!tx) { 66 | throw new Error(`Error creating the transaction ${swap.error}`) 67 | } 68 | 69 | if (tx.type === TransactionType.EVM) { 70 | // set rpc provider 71 | const rpcProvider = new ethers.JsonRpcProvider( 72 | getRpcUrlForBlockchain(meta, tx.blockChain.name) 73 | ) 74 | const walletWithProvider = wallet.connect(rpcProvider) 75 | 76 | if (tx.approveData && tx.approveTo) { 77 | // sign the approve transaction 78 | const approveTransaction: TransactionRequest = { 79 | from: tx.from, 80 | to: tx.approveTo, 81 | data: tx.approveData, 82 | maxFeePerGas: tx.maxFeePerGas, 83 | maxPriorityFeePerGas: tx.maxPriorityFeePerGas, 84 | gasPrice: tx.gasPrice, 85 | } 86 | const { hash } = await walletWithProvider.sendTransaction( 87 | approveTransaction 88 | ) 89 | logTransactionHash(hash, true) 90 | 91 | // wait for approval 92 | while (true) { 93 | await setTimeout(10_000) 94 | const { 95 | isApproved, 96 | currentApprovedAmount, 97 | requiredApprovedAmount, 98 | txStatus, 99 | } = await rango.isApproved(swap.requestId, hash) 100 | logApprovalResponse(isApproved) 101 | if (isApproved) break 102 | else if (txStatus === TransactionStatus.FAILED) 103 | throw new Error('Approve transaction failed in blockchain') 104 | else if (txStatus === TransactionStatus.SUCCESS) 105 | throw new Error( 106 | `Insufficient approve, current amount: ${currentApprovedAmount}, required amount: ${requiredApprovedAmount}` 107 | ) 108 | } 109 | } 110 | 111 | // signing the main transaction 112 | const transaction: TransactionRequest = { 113 | from: tx.from, 114 | to: tx.txTo, 115 | data: tx.txData, 116 | value: tx.value, 117 | gasLimit: tx.gasLimit, 118 | maxFeePerGas: tx.maxFeePerGas, 119 | maxPriorityFeePerGas: tx.maxPriorityFeePerGas, 120 | gasPrice: tx.gasPrice, 121 | } 122 | const { hash } = await walletWithProvider.sendTransaction(transaction) 123 | logTransactionHash(hash, false) 124 | 125 | // track swap status 126 | while (true) { 127 | await setTimeout(10_000) 128 | const state = await rango.status({ 129 | requestId: swap.requestId, 130 | txId: hash, 131 | }) 132 | logSwapStatus(state) 133 | 134 | const status = state.status 135 | if ( 136 | status && 137 | [TransactionStatus.FAILED, TransactionStatus.SUCCESS].includes(status) 138 | ) { 139 | break 140 | } 141 | } 142 | } 143 | -------------------------------------------------------------------------------- /examples/main/node-tron/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | CreateTransactionRequest, 5 | MultiRouteRequest, 6 | RangoClient, 7 | TransactionStatus, 8 | TransactionType, 9 | } from 'rango-sdk' 10 | import { findToken } from '../shared/utils/meta.js' 11 | import { 12 | logMeta, 13 | logSelectedTokens, 14 | logWallet, 15 | logTransactionHash, 16 | logRoutes, 17 | logStepStatus, 18 | logConfirmedRoute, 19 | logRouteStep, 20 | } from '../shared/utils/logger.js' 21 | import { setTimeout } from 'timers/promises' 22 | import { DefaultTronSigner } from '@rango-dev/signer-tron' 23 | import { TronWeb } from 'tronweb' 24 | 25 | 26 | // setup wallet and tron web 27 | const privateKey = 'YOUR_PRIVATE_KEY' // Replace with your private key 28 | 29 | // in web based apps, you could use injected provider instead 30 | // e.g. use window.tronLink.tronWeb or ... instead 31 | const TRON_API = 'https://api.trongrid.io' 32 | const tronWeb = new TronWeb(TRON_API, TRON_API, TRON_API, privateKey) 33 | const walletAddress = tronWeb.address.fromPrivateKey(privateKey) || '' 34 | 35 | logWallet(walletAddress) 36 | 37 | // initiate sdk using your api key 38 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 39 | const rango = new RangoClient(API_KEY) 40 | 41 | // get blockchains and tokens meta data 42 | const meta = await rango.getAllMetadata() 43 | logMeta(meta) 44 | 45 | // some example tokens for test purpose 46 | const sourceBlockchain = 'TRON' 47 | const sourceTokenAddress = null 48 | const targetBlockchain = 'TRON' 49 | const targetTokenAddress = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t' 50 | const amount = '0.001' // 0.001 TRX 51 | 52 | // find selected tokens in meta.tokens 53 | const sourceToken = findToken(meta.tokens, sourceBlockchain, sourceTokenAddress) 54 | const targetToken = findToken(meta.tokens, targetBlockchain, targetTokenAddress) 55 | logSelectedTokens(sourceToken, targetToken) 56 | 57 | // get route 58 | const routingRequest: MultiRouteRequest = { 59 | from: sourceToken, 60 | to: targetToken, 61 | amount, 62 | slippage: '1.0', 63 | transactionTypes: [TransactionType.TRON], 64 | } 65 | const routingResponse = await rango.getAllRoutes(routingRequest) 66 | 67 | logRoutes(routingResponse) 68 | 69 | if (routingResponse.results.length === 0) { 70 | throw new Error(`No routes found! ${routingResponse.error}`) 71 | } 72 | 73 | // confirm one of the routes 74 | const selectedRoute = routingResponse.results[0] 75 | 76 | const selectedWallets = selectedRoute.swaps 77 | .flatMap((swap) => [swap.from.blockchain, swap.to.blockchain]) 78 | .filter((blockchain, index, self) => self.indexOf(blockchain) === index) 79 | .map((blockchain) => ({ [blockchain]: walletAddress })) 80 | .reduce((acc, obj) => { 81 | return { ...acc, ...obj } 82 | }, {}) 83 | 84 | const confirmResponse = await rango.confirmRoute({ 85 | requestId: selectedRoute.requestId, 86 | selectedWallets, 87 | }) 88 | 89 | const confirmedRoute = confirmResponse.result 90 | 91 | if (!confirmedRoute) { 92 | throw new Error(`Error in confirming route, ${confirmResponse.error}`) 93 | } 94 | 95 | logConfirmedRoute(confirmedRoute) 96 | 97 | // check wallet to have enough balance or fee using confirm response 98 | for (const validation of confirmedRoute?.validationStatus || []) { 99 | for (const wallet of validation.wallets) { 100 | for (const asset of wallet.requiredAssets) { 101 | if (!asset.ok) { 102 | const message = `Insufficient ${asset.reason}: asset: ${asset.asset.blockchain}.${asset.asset.symbol}, 103 | required balance: ${asset.requiredAmount.amount}, current balance: ${asset.currentAmount.amount}` 104 | throw new Error(message) 105 | } 106 | } 107 | } 108 | } 109 | 110 | let step = 1 111 | const swapSteps = confirmedRoute.result?.swaps || [] 112 | for (const swap of swapSteps) { 113 | logRouteStep(swap, step) 114 | 115 | const request: CreateTransactionRequest = { 116 | requestId: confirmedRoute.requestId, 117 | step: step, 118 | userSettings: { 119 | slippage: '1.0', 120 | infiniteApprove: false, 121 | }, 122 | validations: { 123 | approve: true, 124 | balance: false, 125 | fee: false, 126 | }, 127 | } 128 | let createTransactionResponse = await rango.createTransaction(request) 129 | let tx = createTransactionResponse.transaction 130 | if (!tx) { 131 | throw new Error( 132 | `Error creating the transaction ${createTransactionResponse.error}` 133 | ) 134 | } 135 | 136 | if (tx.type === TransactionType.TRON) { 137 | const defaultSigner = new DefaultTronSigner({ tronWeb }) 138 | const { hash } = await defaultSigner.signAndSendTx(tx) 139 | logTransactionHash(hash, false) 140 | 141 | // track swap status 142 | while (true) { 143 | await setTimeout(10_000) 144 | const state = await rango.checkStatus({ 145 | requestId: confirmedRoute.requestId, 146 | step, 147 | txId: hash, 148 | }) 149 | logStepStatus(state) 150 | 151 | const status = state.status 152 | if (status === TransactionStatus.SUCCESS) { 153 | // we could proceed with the next step of the route 154 | step += 1 155 | break 156 | } else if (status === TransactionStatus.FAILED) { 157 | throw new Error(`Swap failed on step ${step}`) 158 | } 159 | } 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /examples/main/node-starknet/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | CreateTransactionRequest, 5 | MultiRouteRequest, 6 | RangoClient, 7 | TransactionStatus, 8 | TransactionType, 9 | } from 'rango-sdk' 10 | import { findToken } from '../shared/utils/meta.js' 11 | import { 12 | logMeta, 13 | logSelectedTokens, 14 | logWallet, 15 | logTransactionHash, 16 | logRoutes, 17 | logStepStatus, 18 | logConfirmedRoute, 19 | logRouteStep, 20 | } from '../shared/utils/logger.js' 21 | import { setTimeout } from 'timers/promises' 22 | import { DefaultStarknetSigner } from '@rango-dev/signer-starknet' 23 | import { Account, RpcProvider } from 'starknet'; 24 | 25 | 26 | // setup wallet 27 | const privateKey = 'YOUR_PRIVATE_KEY' // Replace with your private key 28 | const walletAddress = 'YOUR_WALLET_ADDRESS' // Replace with your wallet address 29 | 30 | // in web based apps, you could use injected provider instead 31 | // e.g. use window.starknet_braavos or window.starknet_argentX instead 32 | // https://starknetjs.com/docs/guides/connect_network 33 | const provider = new RpcProvider({ nodeUrl: "https://starknet-mainnet.public.blastapi.io/rpc/v0_7" }); 34 | const account = new Account(provider, walletAddress, privateKey); 35 | 36 | logWallet(account.address) 37 | 38 | // initiate sdk using your api key 39 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 40 | const rango = new RangoClient(API_KEY) 41 | 42 | // get blockchains and tokens meta data 43 | const meta = await rango.getAllMetadata() 44 | logMeta(meta) 45 | 46 | // some example tokens for test purpose 47 | const sourceBlockchain = 'STARKNET' 48 | const sourceTokenAddress = '0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7' 49 | const targetBlockchain = 'STARKNET' 50 | const targetTokenAddress = '0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d' 51 | const amount = '0.001' 52 | 53 | // find selected tokens in meta.tokens 54 | const sourceToken = findToken(meta.tokens, sourceBlockchain, sourceTokenAddress) 55 | const targetToken = findToken(meta.tokens, targetBlockchain, targetTokenAddress) 56 | logSelectedTokens(sourceToken, targetToken) 57 | 58 | // get route 59 | const routingRequest: MultiRouteRequest = { 60 | from: sourceToken, 61 | to: targetToken, 62 | amount, 63 | slippage: '1.0', 64 | transactionTypes: [TransactionType.STARKNET], 65 | } 66 | const routingResponse = await rango.getAllRoutes(routingRequest) 67 | 68 | logRoutes(routingResponse) 69 | 70 | if (routingResponse.results.length === 0) { 71 | throw new Error(`No routes found! ${routingResponse.error}`) 72 | } 73 | 74 | // confirm one of the routes 75 | const selectedRoute = routingResponse.results[0] 76 | 77 | const selectedWallets = selectedRoute.swaps 78 | .flatMap((swap) => [swap.from.blockchain, swap.to.blockchain]) 79 | .filter((blockchain, index, self) => self.indexOf(blockchain) === index) 80 | .map((blockchain) => ({ [blockchain]: walletAddress })) 81 | .reduce((acc, obj) => { 82 | return { ...acc, ...obj } 83 | }, {}) 84 | 85 | const confirmResponse = await rango.confirmRoute({ 86 | requestId: selectedRoute.requestId, 87 | selectedWallets, 88 | }) 89 | 90 | const confirmedRoute = confirmResponse.result 91 | 92 | if (!confirmedRoute) { 93 | throw new Error(`Error in confirming route, ${confirmResponse.error}`) 94 | } 95 | 96 | logConfirmedRoute(confirmedRoute) 97 | 98 | // check wallet to have enough balance or fee using confirm response 99 | for (const validation of confirmedRoute?.validationStatus || []) { 100 | for (const wallet of validation.wallets) { 101 | for (const asset of wallet.requiredAssets) { 102 | if (!asset.ok) { 103 | const message = `Insufficient ${asset.reason}: asset: ${asset.asset.blockchain}.${asset.asset.symbol}, 104 | required balance: ${asset.requiredAmount.amount}, current balance: ${asset.currentAmount.amount}` 105 | throw new Error(message) 106 | } 107 | } 108 | } 109 | } 110 | 111 | let step = 1 112 | const swapSteps = confirmedRoute.result?.swaps || [] 113 | for (const swap of swapSteps) { 114 | logRouteStep(swap, step) 115 | 116 | const request: CreateTransactionRequest = { 117 | requestId: confirmedRoute.requestId, 118 | step: step, 119 | userSettings: { 120 | slippage: '1.0', 121 | infiniteApprove: false, 122 | }, 123 | validations: { 124 | approve: true, 125 | balance: false, 126 | fee: false, 127 | }, 128 | } 129 | let createTransactionResponse = await rango.createTransaction(request) 130 | let tx = createTransactionResponse.transaction 131 | if (!tx) { 132 | throw new Error( 133 | `Error creating the transaction ${createTransactionResponse.error}` 134 | ) 135 | } 136 | 137 | if (tx.type === TransactionType.STARKNET) { 138 | const defaultSigner = new DefaultStarknetSigner({ account, enable: () => { } }) 139 | 140 | const { hash } = await defaultSigner.signAndSendTx(tx) 141 | logTransactionHash(hash, false) 142 | 143 | // track swap status 144 | while (true) { 145 | await setTimeout(10_000) 146 | const state = await rango.checkStatus({ 147 | requestId: confirmedRoute.requestId, 148 | step, 149 | txId: hash, 150 | }) 151 | logStepStatus(state) 152 | 153 | const status = state.status 154 | if (status === TransactionStatus.SUCCESS) { 155 | // we could proceed with the next step of the route 156 | step += 1 157 | break 158 | } else if (status === TransactionStatus.FAILED) { 159 | throw new Error(`Swap failed on step ${step}`) 160 | } 161 | } 162 | } 163 | } 164 | -------------------------------------------------------------------------------- /examples/main/node-solana/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | CreateTransactionRequest, 5 | MultiRouteRequest, 6 | RangoClient, 7 | TransactionStatus, 8 | TransactionType, 9 | } from 'rango-sdk' 10 | import { findToken } from '../shared/utils/meta.js' 11 | import { 12 | logMeta, 13 | logSelectedTokens, 14 | logWallet, 15 | logTransactionHash, 16 | logRoutes, 17 | logStepStatus, 18 | logConfirmedRoute, 19 | logRouteStep, 20 | } from '../shared/utils/logger.js' 21 | import { setTimeout } from 'timers/promises' 22 | import bs58 from 'bs58' 23 | import { 24 | Keypair, 25 | PublicKey, 26 | Transaction, 27 | VersionedTransaction, 28 | } from '@solana/web3.js' 29 | import { 30 | DefaultSolanaSigner, 31 | setSolanaSignerConfig, 32 | } from '@rango-dev/signer-solana' 33 | 34 | // setup wallet key pair 35 | const base58PrivateKey = 'YOUR_BASE58_ENCODED_PRIVATE_KEY' 36 | const privateKey = bs58.decode(base58PrivateKey) 37 | const keypair = Keypair.fromSecretKey(privateKey) 38 | const walletAddress = keypair.publicKey.toString() 39 | 40 | // in web based apps, you could use injected provider instead 41 | // e.g. use window.phantom.solana instead of SolanaProvider 42 | class SolanaProvider { 43 | public publicKey?: PublicKey 44 | private keypair: Keypair 45 | 46 | constructor(keypair: Keypair) { 47 | this.keypair = keypair 48 | this.publicKey = keypair.publicKey 49 | } 50 | 51 | async signTransaction(transaction: VersionedTransaction | Transaction) { 52 | if (transaction instanceof VersionedTransaction) 53 | transaction.sign([this.keypair]) 54 | else transaction.sign(this.keypair) 55 | return transaction 56 | } 57 | } 58 | const solana = new SolanaProvider(keypair) 59 | 60 | logWallet(walletAddress) 61 | 62 | // initiate sdk using your api key 63 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 64 | const rango = new RangoClient(API_KEY) 65 | 66 | // get blockchains and tokens meta data 67 | const meta = await rango.getAllMetadata() 68 | logMeta(meta) 69 | 70 | // some example tokens for test purpose 71 | const sourceBlockchain = 'SOLANA' 72 | const sourceTokenAddress = null 73 | const targetBlockchain = 'SOLANA' 74 | const targetTokenAddress = 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB' 75 | const amount = '10000' 76 | 77 | // find selected tokens in meta.tokens 78 | const sourceToken = findToken(meta.tokens, sourceBlockchain, sourceTokenAddress) 79 | const targetToken = findToken(meta.tokens, targetBlockchain, targetTokenAddress) 80 | logSelectedTokens(sourceToken, targetToken) 81 | 82 | // get route 83 | const routingRequest: MultiRouteRequest = { 84 | from: sourceToken, 85 | to: targetToken, 86 | amount, 87 | slippage: '1.0', 88 | transactionTypes: [TransactionType.SOLANA], 89 | } 90 | const routingResponse = await rango.getAllRoutes(routingRequest) 91 | 92 | logRoutes(routingResponse) 93 | 94 | if (routingResponse.results.length === 0) { 95 | throw new Error(`No routes found! ${routingResponse.error}`) 96 | } 97 | 98 | // confirm one of the routes 99 | const selectedRoute = routingResponse.results[0] 100 | 101 | const selectedWallets = selectedRoute.swaps 102 | .flatMap((swap) => [swap.from.blockchain, swap.to.blockchain]) 103 | .filter((blockchain, index, self) => self.indexOf(blockchain) === index) 104 | .map((blockchain) => ({ [blockchain]: walletAddress })) 105 | .reduce((acc, obj) => { 106 | return { ...acc, ...obj } 107 | }, {}) 108 | 109 | const confirmResponse = await rango.confirmRoute({ 110 | requestId: selectedRoute.requestId, 111 | selectedWallets, 112 | }) 113 | 114 | const confirmedRoute = confirmResponse.result 115 | 116 | if (!confirmedRoute) { 117 | throw new Error(`Error in confirming route, ${confirmResponse.error}`) 118 | } 119 | 120 | logConfirmedRoute(confirmedRoute) 121 | 122 | // check wallet to have enough balance or fee using confirm response 123 | for (const validation of confirmedRoute?.validationStatus || []) { 124 | for (const wallet of validation.wallets) { 125 | for (const asset of wallet.requiredAssets) { 126 | if (!asset.ok) { 127 | const message = `Insufficient ${asset.reason}: asset: ${asset.asset.blockchain}.${asset.asset.symbol}, 128 | required balance: ${asset.requiredAmount.amount}, current balance: ${asset.currentAmount.amount}` 129 | throw new Error(message) 130 | } 131 | } 132 | } 133 | } 134 | 135 | let step = 1 136 | const swapSteps = confirmedRoute.result?.swaps || [] 137 | for (const swap of swapSteps) { 138 | logRouteStep(swap, step) 139 | 140 | const request: CreateTransactionRequest = { 141 | requestId: confirmedRoute.requestId, 142 | step: step, 143 | userSettings: { 144 | slippage: '1.0', 145 | infiniteApprove: false, 146 | }, 147 | validations: { 148 | approve: true, 149 | balance: false, 150 | fee: false, 151 | }, 152 | } 153 | let createTransactionResponse = await rango.createTransaction(request) 154 | let tx = createTransactionResponse.transaction 155 | if (!tx) { 156 | throw new Error( 157 | `Error creating the transaction ${createTransactionResponse.error}` 158 | ) 159 | } 160 | 161 | if (tx.type === TransactionType.SOLANA) { 162 | const defaultSigner = new DefaultSolanaSigner(solana as any) 163 | setSolanaSignerConfig('customRPC', 'https://api.mainnet-beta.solana.com/') 164 | 165 | const { hash } = await defaultSigner.signAndSendTx(tx) 166 | logTransactionHash(hash, false) 167 | 168 | // track swap status 169 | while (true) { 170 | await setTimeout(10_000) 171 | const state = await rango.checkStatus({ 172 | requestId: confirmedRoute.requestId, 173 | step, 174 | txId: hash, 175 | }) 176 | logStepStatus(state) 177 | 178 | const status = state.status 179 | if (status === TransactionStatus.SUCCESS) { 180 | // we could proceed with the next step of the route 181 | step += 1 182 | break 183 | } else if (status === TransactionStatus.FAILED) { 184 | throw new Error(`Swap failed on step ${step}`) 185 | } 186 | } 187 | } 188 | } 189 | -------------------------------------------------------------------------------- /examples/main/node-psbt/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { 4 | BestRouteRequest, 5 | CreateTransactionRequest, 6 | RangoClient, 7 | TransactionStatus, 8 | TransactionType, 9 | } from 'rango-sdk' 10 | import { findToken } from '../shared/utils/meta.js' 11 | import { 12 | logMeta, 13 | logSelectedTokens, 14 | logWallet, 15 | logTransactionHash, 16 | logRoutes, 17 | logStepStatus, 18 | logConfirmedRoute, 19 | } from '../shared/utils/logger.js' 20 | import { setTimeout } from 'timers/promises' 21 | 22 | import * as bitcoin from 'bitcoinjs-lib' 23 | import { ECPairFactory } from 'ecpair' 24 | import * as tinysecp from 'tiny-secp256k1' 25 | 26 | // Configuration parameters 27 | const BTC_RPC_URL = 'https://go.getblock.io/f37bad28a991436483c0a3679a3acbee' 28 | const BITCOIN_WIF = 'YOUR_BITCOIN_PRIVATE_KEY' 29 | const EVM_ADDRESS = 'YOUR_EVM_ADDRESS' 30 | const API_KEY = 'c6381a79-2817-4602-83bf-6a641a409e32' 31 | const NETWORK = bitcoin.networks.bitcoin // Use testnet: bitcoin.networks.testnet 32 | const MAX_STEPS = 1 // Limit to one route 33 | const STEP_INDEX = 1 // Execute the first step 34 | 35 | // Example request values 36 | const SOURCE_CHAIN = 'BTC' 37 | const SOURCE_TOKEN_ADDR = null 38 | const TARGET_CHAIN = 'ARBITRUM' 39 | const TARGET_TOKEN_ADDR = '0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f' 40 | const AMOUNT = '0.0002' 41 | const SLIPPAGE = '1.0' 42 | 43 | async function processSwapRoutes() { 44 | try { 45 | // Step 1: Load and validate wallet 46 | const ECPair = ECPairFactory(tinysecp) 47 | const keyPair = ECPair.fromWIF(BITCOIN_WIF, NETWORK) 48 | const { address } = bitcoin.payments.p2wpkh({ 49 | pubkey: Buffer.from(keyPair.publicKey), 50 | network: NETWORK, 51 | }) 52 | 53 | if (!address) throw new Error('Failed to derive wallet address') 54 | logWallet(address) 55 | 56 | // Step 2: Initialize client and fetch metadata 57 | const rango = new RangoClient(API_KEY) 58 | const metadata = await rango.getAllMetadata() 59 | logMeta(metadata) 60 | 61 | // Step 3: Select tokens for routing 62 | const sourceToken = findToken( 63 | metadata.tokens, 64 | SOURCE_CHAIN, 65 | SOURCE_TOKEN_ADDR 66 | ) 67 | const targetToken = findToken( 68 | metadata.tokens, 69 | TARGET_CHAIN, 70 | TARGET_TOKEN_ADDR 71 | ) 72 | logSelectedTokens(sourceToken, targetToken) 73 | 74 | // Step 4: Request possible routes 75 | const routeRequest: BestRouteRequest = { 76 | from: sourceToken, 77 | to: targetToken, 78 | amount: AMOUNT, 79 | slippage: SLIPPAGE, 80 | maxLength: MAX_STEPS, 81 | transactionTypes: [TransactionType.TRANSFER], 82 | selectedWallets: {}, 83 | } 84 | const routeResponse = await rango.getAllRoutes(routeRequest) 85 | logRoutes(routeResponse) 86 | if (!routeResponse.results.length) { 87 | throw new Error(`No routes available: ${routeResponse.error}`) 88 | } 89 | 90 | // Step 5: Confirm the chosen route 91 | const chosen = routeResponse.results[0] 92 | const walletsMap = chosen.swaps 93 | .flatMap((s) => [s.from.blockchain, s.to.blockchain]) 94 | .filter((value, index, self) => self.indexOf(value) === index) 95 | .reduce( 96 | (acc, chain) => ({ 97 | ...acc, 98 | [chain]: chain === SOURCE_CHAIN ? address : EVM_ADDRESS, 99 | }), 100 | {} as Record 101 | ) 102 | const confirmResponse = await rango.confirmRoute({ 103 | requestId: chosen.requestId, 104 | selectedWallets: walletsMap, 105 | }) 106 | 107 | const confirmedRoute = confirmResponse.result 108 | 109 | if (!confirmedRoute) { 110 | throw new Error(`Error in confirming route, ${confirmResponse.error}`) 111 | } 112 | 113 | logConfirmedRoute(confirmedRoute) 114 | 115 | // Step 6: Validate balances and fees 116 | for (const val of confirmedRoute?.validationStatus || []) { 117 | for (const wallet of val.wallets) { 118 | for (const asset of wallet.requiredAssets) { 119 | if (!asset.ok) { 120 | throw new Error( 121 | `Insufficient ${asset.reason}: need ${asset.requiredAmount.amount}, have ${asset.currentAmount.amount}` 122 | ) 123 | } 124 | } 125 | } 126 | } 127 | 128 | // Step 7: Create transaction 129 | const txRequest: CreateTransactionRequest = { 130 | requestId: confirmedRoute.requestId, 131 | step: STEP_INDEX, 132 | userSettings: { slippage: SLIPPAGE, infiniteApprove: false }, 133 | validations: { approve: true, balance: false, fee: false }, 134 | } 135 | const { transaction } = await rango.createTransaction(txRequest) 136 | const swapSteps = confirmedRoute?.result?.swaps 137 | if ( 138 | transaction?.type !== 'TRANSFER' || 139 | !transaction.psbt || 140 | !swapSteps || 141 | swapSteps.length > MAX_STEPS 142 | ) { 143 | throw new Error('Transaction creation failed') 144 | } 145 | 146 | // Step 8: Sign and finalize PSBT 147 | const psbt = bitcoin.Psbt.fromBase64(transaction.psbt.unsignedPsbtBase64) 148 | const signer: bitcoin.Signer = { 149 | publicKey: Buffer.from(keyPair.publicKey), 150 | sign: (hash: Buffer) => Buffer.from(keyPair.sign(Uint8Array.from(hash))), 151 | } 152 | transaction.psbt.inputsToSign.forEach((input) => 153 | input.signingIndexes.forEach((i) => psbt.signInput(i, signer)) 154 | ) 155 | psbt.finalizeAllInputs() 156 | const rawTx = psbt.extractTransaction().toHex() 157 | 158 | // Step 9: Broadcast raw transaction 159 | const response = await fetch(BTC_RPC_URL, { 160 | method: 'POST', 161 | headers: { 'Content-Type': 'application/json' }, 162 | body: JSON.stringify({ method: 'sendrawtransaction', params: [rawTx] }), 163 | }) 164 | if (!response.ok) throw new Error(`Network error: ${await response.text()}`) 165 | const { result: txId } = await response.json() 166 | logTransactionHash(txId, false) 167 | 168 | // Step 10: Monitor execution status 169 | while (true) { 170 | await setTimeout(10_000) 171 | const statusResponse = await rango.checkStatus({ 172 | requestId: confirmedRoute.requestId, 173 | txId, 174 | step: STEP_INDEX, 175 | }) 176 | logStepStatus(statusResponse) 177 | if (statusResponse.status === TransactionStatus.SUCCESS) break 178 | if (statusResponse.status === TransactionStatus.FAILED) { 179 | throw new Error(`Step ${STEP_INDEX} failed`) 180 | } 181 | } 182 | } catch (err) { 183 | console.error('Swap process encountered an error:', err) 184 | process.exit(1) 185 | } 186 | } 187 | 188 | // Start the swap process 189 | processSwapRoutes().catch((err) => { 190 | console.error(err) 191 | process.exit(1) 192 | }) 193 | -------------------------------------------------------------------------------- /examples/main/node-evm/index.ts: -------------------------------------------------------------------------------- 1 | // run `node --import=tsx index.ts` in the terminal 2 | 3 | import { CreateTransactionRequest, MultiRouteRequest, RangoClient, TransactionStatus, TransactionType } from "rango-sdk"; 4 | import { findToken } from '../shared/utils/meta.js' 5 | import { logMeta, logSelectedTokens, logWallet, logTransactionHash, logApprovalResponse, logRoutes, logStepStatus, logConfirmedRoute, logRouteStep } from "../shared/utils/logger.js"; 6 | import { TransactionRequest, ethers } from "ethers"; 7 | import { setTimeout } from 'timers/promises' 8 | import { getRpcUrlForBlockchain } from "./rpc.js"; 9 | 10 | // setup wallet 11 | const privateKey = 'YOUR_PRIVATE_KEY'; 12 | const wallet = new ethers.Wallet(privateKey); 13 | const waleltAddress = wallet.address 14 | logWallet(waleltAddress) 15 | 16 | // initiate sdk using your api key 17 | const API_KEY = "c6381a79-2817-4602-83bf-6a641a409e32" 18 | const rango = new RangoClient(API_KEY) 19 | 20 | // get blockchains and tokens meta data 21 | const meta = await rango.getAllMetadata() 22 | logMeta(meta) 23 | 24 | // some example tokens for test purpose 25 | const sourceBlockchain = "BSC" 26 | const sourceTokenAddress = "0x55d398326f99059ff775485246999027b3197955" 27 | const targetBlockchain = "AVAX_CCHAIN" 28 | const targetTokenAddress = null 29 | const amount = "0.001" 30 | 31 | // find selected tokens in meta.tokens 32 | const sourceToken = findToken(meta.tokens, sourceBlockchain, sourceTokenAddress) 33 | const targetToken = findToken(meta.tokens, targetBlockchain, targetTokenAddress) 34 | logSelectedTokens(sourceToken, targetToken) 35 | 36 | // get route 37 | const routingRequest: MultiRouteRequest = { 38 | from: sourceToken, 39 | to: targetToken, 40 | amount, 41 | slippage: '1.0', 42 | transactionTypes: [TransactionType.EVM] 43 | } 44 | const routingResponse = await rango.getAllRoutes(routingRequest) 45 | 46 | logRoutes(routingResponse) 47 | 48 | if (routingResponse.results.length === 0) { 49 | throw new Error(`No routes found! ${routingResponse.error}`) 50 | } 51 | 52 | // confirm one of the routes 53 | const selectedRoute = routingResponse.results[0] 54 | 55 | 56 | const selectedWallets = selectedRoute.swaps 57 | .flatMap(swap => [swap.from.blockchain, swap.to.blockchain]) 58 | .filter((blockchain, index, self) => self.indexOf(blockchain) === index) 59 | .map(blockchain => ({ [blockchain]: waleltAddress })) 60 | .reduce((acc, obj) => { 61 | return { ...acc, ...obj }; 62 | }, {}); 63 | 64 | const confirmResponse = await rango.confirmRoute({ 65 | requestId: selectedRoute.requestId, 66 | selectedWallets, 67 | }) 68 | 69 | const confirmedRoute = confirmResponse.result 70 | 71 | if (!confirmedRoute) { 72 | throw new Error(`Error in confirming route, ${confirmResponse.error}`) 73 | } 74 | 75 | logConfirmedRoute(confirmedRoute) 76 | 77 | // check wallet to have enough balance or fee using confirm response 78 | for (const validation of confirmedRoute?.validationStatus || []) { 79 | for (const wallet of validation.wallets) { 80 | for (const asset of wallet.requiredAssets) { 81 | if (!asset.ok) { 82 | const message = `Insufficient ${asset.reason}: asset: ${asset.asset.blockchain}.${asset.asset.symbol}, 83 | required balance: ${asset.requiredAmount.amount}, current balance: ${asset.currentAmount.amount}` 84 | throw new Error(message) 85 | } 86 | } 87 | } 88 | } 89 | 90 | let step = 1 91 | const swapSteps = confirmedRoute.result?.swaps || [] 92 | for (const swap of swapSteps) { 93 | logRouteStep(swap, step) 94 | 95 | // set rpc provider for this step 96 | const rpcProvider = new ethers.JsonRpcProvider(getRpcUrlForBlockchain(meta, swap.from.blockchain)); 97 | const walletWithProvider = wallet.connect(rpcProvider); 98 | 99 | const request: CreateTransactionRequest = { 100 | requestId: confirmedRoute.requestId, 101 | step: step, 102 | userSettings: { 103 | slippage: '1.0', 104 | infiniteApprove: false 105 | }, 106 | validations: { 107 | approve: true, 108 | balance: false, 109 | fee: false, 110 | } 111 | } 112 | let createTransactionResponse = await rango.createTransaction(request) 113 | let tx = createTransactionResponse.transaction 114 | if (!tx) { 115 | throw new Error(`Error creating the transaction ${createTransactionResponse.error}`) 116 | } 117 | 118 | if (tx.type === TransactionType.EVM) { 119 | if (tx.isApprovalTx) { 120 | // sign the approve transaction 121 | const approveTransaction: TransactionRequest = { 122 | from: tx.from, 123 | to: tx.to, 124 | data: tx.data, 125 | value: tx.value, 126 | maxFeePerGas: tx.maxFeePerGas, 127 | maxPriorityFeePerGas: tx.maxPriorityFeePerGas, 128 | gasPrice: tx.gasPrice, 129 | gasLimit: tx.gasLimit, 130 | } 131 | const { hash } = await walletWithProvider.sendTransaction(approveTransaction); 132 | logTransactionHash(hash, true) 133 | 134 | // wait for approval 135 | while (true) { 136 | await setTimeout(5_000) 137 | const { isApproved, currentApprovedAmount, requiredApprovedAmount, txStatus } = await rango.checkApproval(confirmedRoute.requestId, hash) 138 | logApprovalResponse(isApproved) 139 | if (isApproved) 140 | break 141 | else if (txStatus === TransactionStatus.FAILED) 142 | throw new Error('Approve transaction failed in blockchain') 143 | else if (txStatus === TransactionStatus.SUCCESS) 144 | throw new Error(`Insufficient approve, current amount: ${currentApprovedAmount}, required amount: ${requiredApprovedAmount}`) 145 | } 146 | 147 | // create the main transaction if previous one was approval transaction 148 | createTransactionResponse = await rango.createTransaction(request) 149 | tx = createTransactionResponse.transaction 150 | if (!tx || tx.type !== TransactionType.EVM) { 151 | throw new Error(`Error creating the transaction ${createTransactionResponse.error}`) 152 | } 153 | } 154 | 155 | // sign the main transaction 156 | const mainTransaction: TransactionRequest = { 157 | from: tx.from, 158 | to: tx.to, 159 | data: tx.data, 160 | value: tx.value, 161 | maxFeePerGas: tx.maxFeePerGas, 162 | maxPriorityFeePerGas: tx.maxPriorityFeePerGas, 163 | gasPrice: tx.gasPrice, 164 | gasLimit: tx.gasLimit, 165 | } 166 | const { hash } = await walletWithProvider.sendTransaction(mainTransaction); 167 | logTransactionHash(hash, false) 168 | 169 | // track swap status 170 | while (true) { 171 | await setTimeout(10_000) 172 | const state = await rango.checkStatus({ 173 | requestId: confirmedRoute.requestId, 174 | step, 175 | txId: hash 176 | }) 177 | logStepStatus(state) 178 | 179 | const status = state.status 180 | if (status === TransactionStatus.SUCCESS) { 181 | // we could proceed with the next step of the route 182 | step += 1; 183 | break 184 | } else if (status === TransactionStatus.FAILED) { 185 | throw new Error(`Swap failed on step ${step}`) 186 | } 187 | } 188 | } 189 | } 190 | -------------------------------------------------------------------------------- /packages/rango-sdk-basic/src/services/client.ts: -------------------------------------------------------------------------------- 1 | import uuid from 'uuid-random' 2 | 3 | import { 4 | MetaRequest, 5 | MetaResponse, 6 | QuoteRequest, 7 | QuoteResponse, 8 | CheckApprovalResponse, 9 | StatusRequest, 10 | StatusResponse, 11 | SwapRequest, 12 | SwapResponse, 13 | ReportTransactionRequest, 14 | WalletDetailsResponse, 15 | assetToString, 16 | BlockchainMeta, 17 | RequestOptions, 18 | MessagingProtocolsResponse, 19 | SwapperMetaExtended, 20 | ConnectedAssetsResponse, 21 | ConnectedAssetsRequest, 22 | CustomTokenRequest, 23 | CustomTokenResponse, 24 | TokenBalanceRequest, 25 | TokenBalanceResponse, 26 | } from '../types' 27 | import axios, { AxiosInstance } from 'axios' 28 | 29 | type WalletAddress = { blockchain: string; address: string } 30 | 31 | export class RangoClient { 32 | private readonly deviceId: string 33 | private readonly apiKey: string 34 | private readonly apiUrl: string 35 | private readonly httpService: AxiosInstance 36 | 37 | constructor(apiKey: string, debug = false, apiUrl?: string) { 38 | this.apiUrl = apiUrl || 'https://api.rango.exchange' 39 | this.apiKey = apiKey 40 | try { 41 | if (typeof window !== 'undefined') { 42 | const deviceId = localStorage.getItem('deviceId') 43 | if (deviceId) { 44 | this.deviceId = deviceId 45 | } else { 46 | const generatedId = uuid() 47 | localStorage.setItem('deviceId', generatedId) 48 | this.deviceId = generatedId 49 | } 50 | } else { 51 | this.deviceId = uuid() 52 | } 53 | } catch (e) { 54 | this.deviceId = uuid() 55 | } 56 | this.httpService = axios.create({ 57 | baseURL: this.apiUrl, 58 | }) 59 | if (debug) { 60 | this.httpService.interceptors.request.use((request) => { 61 | console.log('Starting Request', JSON.stringify(request, null, 2)) 62 | return request 63 | }) 64 | this.httpService.interceptors.response.use((response) => { 65 | console.log('Response:', JSON.stringify(response, null, 2)) 66 | return response 67 | }) 68 | } 69 | } 70 | 71 | public async meta( 72 | metaRequest?: MetaRequest, 73 | options?: RequestOptions 74 | ): Promise { 75 | const params = { 76 | ...metaRequest, 77 | blockchains: metaRequest?.blockchains?.join(), 78 | swappers: metaRequest?.swappers?.join(), 79 | swappersGroups: metaRequest?.swappersGroups?.join(), 80 | transactionTypes: metaRequest?.transactionTypes?.join(), 81 | } 82 | const axiosResponse = await this.httpService.get( 83 | `/basic/meta?apiKey=${this.apiKey}`, 84 | { 85 | params, 86 | ...options, 87 | } 88 | ) 89 | return axiosResponse.data 90 | } 91 | 92 | public async chains(options?: RequestOptions): Promise { 93 | const axiosResponse = await this.httpService.get( 94 | `/basic/meta/blockchains?apiKey=${this.apiKey}`, 95 | { ...options } 96 | ) 97 | return axiosResponse.data 98 | } 99 | 100 | public async swappers(options?: RequestOptions): Promise { 101 | const axiosResponse = await this.httpService.get( 102 | `/basic/meta/swappers?apiKey=${this.apiKey}`, 103 | { ...options } 104 | ) 105 | return axiosResponse.data 106 | } 107 | 108 | public async messagingProtocols( 109 | options?: RequestOptions 110 | ): Promise { 111 | const axiosResponse = 112 | await this.httpService.get( 113 | `/basic/meta/messaging-protocols?apiKey=${this.apiKey}`, 114 | { ...options } 115 | ) 116 | return axiosResponse.data 117 | } 118 | 119 | 120 | public async token( 121 | customTokenRequest?: CustomTokenRequest, 122 | options?: RequestOptions 123 | ): Promise { 124 | const axiosResponse = await this.httpService.get( 125 | `/basic/meta/custom-token?apiKey=${this.apiKey}`, 126 | { params: customTokenRequest, ...options } 127 | ) 128 | return axiosResponse.data 129 | } 130 | 131 | public async quote( 132 | quoteRequest: QuoteRequest, 133 | options?: RequestOptions 134 | ): Promise { 135 | const body = { 136 | ...quoteRequest, 137 | from: assetToString(quoteRequest.from), 138 | to: assetToString(quoteRequest.to), 139 | swappers: 140 | !!quoteRequest.swappers && quoteRequest.swappers.length > 0 141 | ? quoteRequest.swappers.join(',') 142 | : undefined, 143 | swapperGroups: 144 | !!quoteRequest.swapperGroups && quoteRequest.swapperGroups.length > 0 145 | ? quoteRequest.swapperGroups.join(',') 146 | : undefined, 147 | messagingProtocols: 148 | !!quoteRequest.messagingProtocols && 149 | quoteRequest.messagingProtocols.length > 0 150 | ? quoteRequest.messagingProtocols.join(',') 151 | : undefined, 152 | } 153 | const axiosResponse = await this.httpService.get( 154 | `/basic/quote?apiKey=${this.apiKey}`, 155 | { 156 | params: body, 157 | headers: { 'X-Rango-Id': this.deviceId }, 158 | ...options, 159 | } 160 | ) 161 | return axiosResponse.data 162 | } 163 | 164 | public async isApproved( 165 | requestId: string, 166 | txId?: string, 167 | options?: RequestOptions 168 | ): Promise { 169 | const axiosResponse = await this.httpService.get( 170 | `/basic/is-approved?apiKey=${this.apiKey}`, 171 | { 172 | params: { requestId, txId }, 173 | headers: { 'X-Rango-Id': this.deviceId }, 174 | ...options, 175 | } 176 | ) 177 | return axiosResponse.data 178 | } 179 | 180 | public async status( 181 | statusRequest: StatusRequest, 182 | options?: RequestOptions 183 | ): Promise { 184 | const axiosResponse = await this.httpService.get( 185 | `/basic/status?apiKey=${this.apiKey}`, 186 | { 187 | params: statusRequest, 188 | headers: { 'X-Rango-Id': this.deviceId }, 189 | ...options, 190 | } 191 | ) 192 | return axiosResponse.data 193 | } 194 | 195 | public async swap( 196 | swapRequest: SwapRequest, 197 | options?: RequestOptions 198 | ): Promise { 199 | const body = { 200 | ...swapRequest, 201 | from: assetToString(swapRequest.from), 202 | to: assetToString(swapRequest.to), 203 | referrerAddress: swapRequest.referrerAddress || null, 204 | referrerFee: swapRequest.referrerFee || null, 205 | disableEstimate: swapRequest.disableEstimate || false, 206 | swappers: 207 | !!swapRequest.swappers && swapRequest.swappers.length > 0 208 | ? swapRequest.swappers.join(',') 209 | : undefined, 210 | swapperGroups: 211 | !!swapRequest.swapperGroups && swapRequest.swapperGroups.length > 0 212 | ? swapRequest.swapperGroups.join(',') 213 | : undefined, 214 | messagingProtocols: 215 | !!swapRequest.messagingProtocols && 216 | swapRequest.messagingProtocols.length > 0 217 | ? swapRequest.messagingProtocols.join(',') 218 | : undefined, 219 | } 220 | const axiosResponse = await this.httpService.get( 221 | `/basic/swap?apiKey=${this.apiKey}`, 222 | { 223 | params: body, 224 | headers: { 'X-Rango-Id': this.deviceId }, 225 | ...options, 226 | } 227 | ) 228 | return axiosResponse.data 229 | } 230 | 231 | public async reportFailure( 232 | requestBody: ReportTransactionRequest, 233 | options?: RequestOptions 234 | ): Promise { 235 | await this.httpService.post( 236 | `/basic/report-tx?apiKey=${this.apiKey}`, 237 | requestBody, 238 | { 239 | headers: { 'X-Rango-Id': this.deviceId }, 240 | ...options, 241 | } 242 | ) 243 | } 244 | 245 | public async balance( 246 | walletAddress: WalletAddress, 247 | options?: RequestOptions 248 | ): Promise { 249 | const axiosResponse = await this.httpService.get( 250 | `/basic/balance?apiKey=${this.apiKey}`, 251 | { 252 | params: walletAddress, 253 | headers: { 'X-Rango-Id': this.deviceId }, 254 | ...options, 255 | } 256 | ) 257 | return axiosResponse.data 258 | } 259 | 260 | public async tokenBalance( 261 | tokenBalanceRequest: TokenBalanceRequest, 262 | options?: RequestOptions 263 | ): Promise { 264 | const axiosResponse = await this.httpService.get( 265 | `/basic/token-balance?apiKey=${this.apiKey}`, 266 | { params: tokenBalanceRequest, ...options } 267 | ) 268 | return axiosResponse.data 269 | } 270 | 271 | public async connectedAssets( 272 | connectedAssetsRequest: ConnectedAssetsRequest, 273 | options?: RequestOptions 274 | ): Promise { 275 | const body = { 276 | from: assetToString(connectedAssetsRequest.from), 277 | } 278 | 279 | const axiosResponse = await this.httpService.get( 280 | `/basic/connected-assets?apiKey=${this.apiKey}`, 281 | { 282 | params: body, 283 | headers: { 'X-Rango-Id': this.deviceId }, 284 | ...options, 285 | } 286 | ) 287 | return axiosResponse.data 288 | } 289 | } 290 | -------------------------------------------------------------------------------- /packages/rango-sdk/src/services/client.ts: -------------------------------------------------------------------------------- 1 | import uuid from 'uuid-random' 2 | import { 3 | MetaRequest, 4 | MetaResponse, 5 | BestRouteRequest, 6 | BestRouteResponse, 7 | CheckApprovalResponse, 8 | CheckTxStatusRequest, 9 | TransactionStatusResponse, 10 | CreateTransactionRequest, 11 | CreateTransactionResponse, 12 | ReportTransactionRequest, 13 | WalletDetailsResponse, 14 | RequestOptions, 15 | BlockchainMeta, 16 | CompactMetaResponse, 17 | CompactToken, 18 | Token, 19 | MultiRouteRequest, 20 | MultiRouteResponse, 21 | ConfirmRouteResponse, 22 | ConfirmRouteRequest, 23 | CustomTokenRequest, 24 | CustomTokenResponse, 25 | TokenBalanceResponse, 26 | TokenBalanceRequest, 27 | SwapperMetaExtended, 28 | MultipleTokenBalanceRequest, 29 | MultipleTokenBalanceResponse, 30 | SearchCustomTokensRequest, 31 | SearchCustomTokensResponse, 32 | } from '../types' 33 | import axios, { AxiosInstance } from 'axios' 34 | 35 | type WalletAddresses = { blockchain: string; address: string }[] 36 | 37 | export class RangoClient { 38 | private readonly deviceId: string 39 | private readonly apiKey: string 40 | private readonly apiUrl: string 41 | private readonly httpService: AxiosInstance 42 | 43 | constructor(apiKey: string, apiUrl?: string) { 44 | this.apiUrl = apiUrl || 'https://api.rango.exchange' 45 | this.apiKey = apiKey 46 | try { 47 | if (typeof window !== 'undefined') { 48 | const deviceId = localStorage.getItem('deviceId') 49 | if (deviceId) { 50 | this.deviceId = deviceId 51 | } else { 52 | const generatedId = uuid() 53 | localStorage.setItem('deviceId', generatedId) 54 | this.deviceId = generatedId 55 | } 56 | } else { 57 | this.deviceId = uuid() 58 | } 59 | } catch (e) { 60 | this.deviceId = uuid() 61 | } 62 | this.httpService = axios.create({ 63 | baseURL: this.apiUrl, 64 | }) 65 | } 66 | 67 | public async getAllMetadata( 68 | metaRequest?: MetaRequest, 69 | options?: RequestOptions 70 | ): Promise { 71 | const params = { 72 | ...metaRequest, 73 | blockchains: metaRequest?.blockchains?.join(), 74 | swappers: metaRequest?.swappers?.join(), 75 | swappersGroups: metaRequest?.swappersGroups?.join(), 76 | transactionTypes: metaRequest?.transactionTypes?.join(), 77 | } 78 | const axiosResponse = await this.httpService.get( 79 | `/meta/compact?apiKey=${this.apiKey}`, 80 | { 81 | params, 82 | ...options, 83 | } 84 | ) 85 | const reformatTokens = (tokens: CompactToken[]): Token[] => 86 | tokens.map((tm) => ({ 87 | blockchain: tm.b, 88 | symbol: tm.s, 89 | image: tm.i, 90 | address: tm.a || null, 91 | usdPrice: tm.p || null, 92 | isSecondaryCoin: tm.is || false, 93 | coinSource: tm.c || null, 94 | coinSourceUrl: tm.cu || null, 95 | name: tm.n || null, 96 | decimals: tm.d, 97 | isPopular: tm.ip || false, 98 | supportedSwappers: tm.ss || [], 99 | })) 100 | 101 | const tokens = reformatTokens(axiosResponse.data.tokens) 102 | const popularTokens = reformatTokens(axiosResponse.data.popularTokens) 103 | return { ...axiosResponse.data, tokens, popularTokens } 104 | } 105 | 106 | public async getBlockchains( 107 | options?: RequestOptions 108 | ): Promise { 109 | const axiosResponse = await this.httpService.get( 110 | `/meta/blockchains?apiKey=${this.apiKey}`, 111 | { ...options } 112 | ) 113 | return axiosResponse.data 114 | } 115 | 116 | public async getSwappers( 117 | options?: RequestOptions 118 | ): Promise { 119 | const axiosResponse = await this.httpService.get( 120 | `/meta/swappers?apiKey=${this.apiKey}`, 121 | { ...options } 122 | ) 123 | return axiosResponse.data 124 | } 125 | 126 | public async getCustomToken( 127 | customTokenRequest?: CustomTokenRequest, 128 | options?: RequestOptions 129 | ): Promise { 130 | const axiosResponse = await this.httpService.get( 131 | `/meta/custom-token?apiKey=${this.apiKey}`, 132 | { params: customTokenRequest, ...options } 133 | ) 134 | return axiosResponse.data 135 | } 136 | 137 | public async searchCustomTokens( 138 | searchCustomTokensRequest: SearchCustomTokensRequest, 139 | options?: RequestOptions 140 | ): Promise { 141 | const axiosResponse = 142 | await this.httpService.get( 143 | `/meta/token/search?apiKey=${this.apiKey}`, 144 | { params: searchCustomTokensRequest, ...options } 145 | ) 146 | return axiosResponse.data 147 | } 148 | 149 | public async getBestRoute( 150 | requestBody: BestRouteRequest, 151 | options?: RequestOptions 152 | ): Promise { 153 | const axiosResponse = await this.httpService.post( 154 | `/routing/best?apiKey=${this.apiKey}`, 155 | requestBody, 156 | { headers: { 'X-Rango-Id': this.deviceId }, ...options } 157 | ) 158 | return axiosResponse.data 159 | } 160 | 161 | public async getAllRoutes( 162 | requestBody: MultiRouteRequest, 163 | options?: RequestOptions 164 | ): Promise { 165 | const axiosResponse = await this.httpService.post( 166 | `/routing/bests?apiKey=${this.apiKey}`, 167 | requestBody, 168 | { headers: { 'X-Rango-Id': this.deviceId }, ...options } 169 | ) 170 | return axiosResponse.data 171 | } 172 | 173 | public async confirmRoute( 174 | requestBody: ConfirmRouteRequest, 175 | options?: RequestOptions 176 | ): Promise { 177 | const axiosResponse = await this.httpService.post( 178 | `/routing/confirm?apiKey=${this.apiKey}`, 179 | requestBody, 180 | { headers: { 'X-Rango-Id': this.deviceId }, ...options } 181 | ) 182 | return axiosResponse.data 183 | } 184 | 185 | // @deprecated use confirmRoute instead 186 | public async confirmRouteRequest( 187 | requestBody: ConfirmRouteRequest, 188 | options?: RequestOptions 189 | ): Promise { 190 | const axiosResponse = await this.httpService.post( 191 | `/routing/confirm?apiKey=${this.apiKey}`, 192 | requestBody, 193 | { headers: { 'X-Rango-Id': this.deviceId }, ...options } 194 | ) 195 | return axiosResponse.data 196 | } 197 | 198 | public async checkApproval( 199 | requestId: string, 200 | txId?: string, 201 | options?: RequestOptions 202 | ): Promise { 203 | const axiosResponse = await this.httpService.get( 204 | `/tx/${requestId}/check-approval?apiKey=${this.apiKey}`, 205 | { params: { txId }, ...options } 206 | ) 207 | return axiosResponse.data 208 | } 209 | 210 | public async checkStatus( 211 | requestBody: CheckTxStatusRequest, 212 | options?: RequestOptions 213 | ): Promise { 214 | const axiosResponse = 215 | await this.httpService.post( 216 | `/tx/check-status?apiKey=${this.apiKey}`, 217 | requestBody, 218 | { ...options } 219 | ) 220 | return axiosResponse.data 221 | } 222 | 223 | public async createTransaction( 224 | requestBody: CreateTransactionRequest, 225 | options?: RequestOptions 226 | ): Promise { 227 | const axiosResponse = 228 | await this.httpService.post( 229 | `/tx/create?apiKey=${this.apiKey}`, 230 | requestBody, 231 | { ...options } 232 | ) 233 | return axiosResponse.data 234 | } 235 | 236 | public async reportFailure( 237 | requestBody: ReportTransactionRequest, 238 | options?: RequestOptions 239 | ): Promise { 240 | await this.httpService.post( 241 | `/tx/report-tx?apiKey=${this.apiKey}`, 242 | requestBody, 243 | { 244 | ...options, 245 | } 246 | ) 247 | } 248 | 249 | public async getWalletsDetails( 250 | walletAddresses: WalletAddresses, 251 | options?: RequestOptions 252 | ): Promise { 253 | let walletAddressesQueryParams = '' 254 | for (let i = 0; i < walletAddresses.length; i++) { 255 | const walletAddress = walletAddresses[i] 256 | walletAddressesQueryParams += `&address=${walletAddress.blockchain}.${walletAddress.address}` 257 | } 258 | const axiosResponse = await this.httpService.get( 259 | `/wallets/details?apiKey=${this.apiKey}${walletAddressesQueryParams}`, 260 | { ...options } 261 | ) 262 | return axiosResponse.data 263 | } 264 | 265 | public async getTokenBalance( 266 | tokenBalanceRequest: TokenBalanceRequest, 267 | options?: RequestOptions 268 | ): Promise { 269 | const axiosResponse = await this.httpService.get( 270 | `/wallets/token-balance?apiKey=${this.apiKey}`, 271 | { params: tokenBalanceRequest, ...options } 272 | ) 273 | return axiosResponse.data 274 | } 275 | 276 | public async getMultipleTokenBalance( 277 | requestBody: MultipleTokenBalanceRequest, 278 | options?: RequestOptions 279 | ): Promise { 280 | const axiosResponse = 281 | await this.httpService.post( 282 | `/wallets/multiple-token-balance?apiKey=${this.apiKey}`, 283 | requestBody, 284 | { ...options } 285 | ) 286 | return axiosResponse.data 287 | } 288 | } 289 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /examples/main/node-evm/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@adraffy/ens-normalize@1.10.1": 6 | version "1.10.1" 7 | resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" 8 | integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== 9 | 10 | "@esbuild/aix-ppc64@0.23.0": 11 | version "0.23.0" 12 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" 13 | integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== 14 | 15 | "@esbuild/android-arm64@0.23.0": 16 | version "0.23.0" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" 18 | integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== 19 | 20 | "@esbuild/android-arm@0.23.0": 21 | version "0.23.0" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" 23 | integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== 24 | 25 | "@esbuild/android-x64@0.23.0": 26 | version "0.23.0" 27 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" 28 | integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== 29 | 30 | "@esbuild/darwin-arm64@0.23.0": 31 | version "0.23.0" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" 33 | integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== 34 | 35 | "@esbuild/darwin-x64@0.23.0": 36 | version "0.23.0" 37 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" 38 | integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== 39 | 40 | "@esbuild/freebsd-arm64@0.23.0": 41 | version "0.23.0" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" 43 | integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== 44 | 45 | "@esbuild/freebsd-x64@0.23.0": 46 | version "0.23.0" 47 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" 48 | integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== 49 | 50 | "@esbuild/linux-arm64@0.23.0": 51 | version "0.23.0" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" 53 | integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== 54 | 55 | "@esbuild/linux-arm@0.23.0": 56 | version "0.23.0" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" 58 | integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== 59 | 60 | "@esbuild/linux-ia32@0.23.0": 61 | version "0.23.0" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" 63 | integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== 64 | 65 | "@esbuild/linux-loong64@0.23.0": 66 | version "0.23.0" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" 68 | integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== 69 | 70 | "@esbuild/linux-mips64el@0.23.0": 71 | version "0.23.0" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" 73 | integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== 74 | 75 | "@esbuild/linux-ppc64@0.23.0": 76 | version "0.23.0" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" 78 | integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== 79 | 80 | "@esbuild/linux-riscv64@0.23.0": 81 | version "0.23.0" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" 83 | integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== 84 | 85 | "@esbuild/linux-s390x@0.23.0": 86 | version "0.23.0" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" 88 | integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== 89 | 90 | "@esbuild/linux-x64@0.23.0": 91 | version "0.23.0" 92 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" 93 | integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== 94 | 95 | "@esbuild/netbsd-x64@0.23.0": 96 | version "0.23.0" 97 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" 98 | integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== 99 | 100 | "@esbuild/openbsd-arm64@0.23.0": 101 | version "0.23.0" 102 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" 103 | integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== 104 | 105 | "@esbuild/openbsd-x64@0.23.0": 106 | version "0.23.0" 107 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" 108 | integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== 109 | 110 | "@esbuild/sunos-x64@0.23.0": 111 | version "0.23.0" 112 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" 113 | integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== 114 | 115 | "@esbuild/win32-arm64@0.23.0": 116 | version "0.23.0" 117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" 118 | integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== 119 | 120 | "@esbuild/win32-ia32@0.23.0": 121 | version "0.23.0" 122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" 123 | integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== 124 | 125 | "@esbuild/win32-x64@0.23.0": 126 | version "0.23.0" 127 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" 128 | integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== 129 | 130 | "@noble/curves@1.2.0": 131 | version "1.2.0" 132 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" 133 | integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== 134 | dependencies: 135 | "@noble/hashes" "1.3.2" 136 | 137 | "@noble/hashes@1.3.2": 138 | version "1.3.2" 139 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" 140 | integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== 141 | 142 | "@types/node@18.15.13": 143 | version "18.15.13" 144 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" 145 | integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== 146 | 147 | aes-js@4.0.0-beta.5: 148 | version "4.0.0-beta.5" 149 | resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" 150 | integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== 151 | 152 | asynckit@^0.4.0: 153 | version "0.4.0" 154 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 155 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 156 | 157 | axios@^1.7.4: 158 | version "1.7.7" 159 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" 160 | integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== 161 | dependencies: 162 | follow-redirects "^1.15.6" 163 | form-data "^4.0.0" 164 | proxy-from-env "^1.1.0" 165 | 166 | combined-stream@^1.0.8: 167 | version "1.0.8" 168 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 169 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 170 | dependencies: 171 | delayed-stream "~1.0.0" 172 | 173 | delayed-stream@~1.0.0: 174 | version "1.0.0" 175 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 176 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 177 | 178 | esbuild@~0.23.0: 179 | version "0.23.0" 180 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" 181 | integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== 182 | optionalDependencies: 183 | "@esbuild/aix-ppc64" "0.23.0" 184 | "@esbuild/android-arm" "0.23.0" 185 | "@esbuild/android-arm64" "0.23.0" 186 | "@esbuild/android-x64" "0.23.0" 187 | "@esbuild/darwin-arm64" "0.23.0" 188 | "@esbuild/darwin-x64" "0.23.0" 189 | "@esbuild/freebsd-arm64" "0.23.0" 190 | "@esbuild/freebsd-x64" "0.23.0" 191 | "@esbuild/linux-arm" "0.23.0" 192 | "@esbuild/linux-arm64" "0.23.0" 193 | "@esbuild/linux-ia32" "0.23.0" 194 | "@esbuild/linux-loong64" "0.23.0" 195 | "@esbuild/linux-mips64el" "0.23.0" 196 | "@esbuild/linux-ppc64" "0.23.0" 197 | "@esbuild/linux-riscv64" "0.23.0" 198 | "@esbuild/linux-s390x" "0.23.0" 199 | "@esbuild/linux-x64" "0.23.0" 200 | "@esbuild/netbsd-x64" "0.23.0" 201 | "@esbuild/openbsd-arm64" "0.23.0" 202 | "@esbuild/openbsd-x64" "0.23.0" 203 | "@esbuild/sunos-x64" "0.23.0" 204 | "@esbuild/win32-arm64" "0.23.0" 205 | "@esbuild/win32-ia32" "0.23.0" 206 | "@esbuild/win32-x64" "0.23.0" 207 | 208 | ethers@^6.13.2: 209 | version "6.13.2" 210 | resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" 211 | integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== 212 | dependencies: 213 | "@adraffy/ens-normalize" "1.10.1" 214 | "@noble/curves" "1.2.0" 215 | "@noble/hashes" "1.3.2" 216 | "@types/node" "18.15.13" 217 | aes-js "4.0.0-beta.5" 218 | tslib "2.4.0" 219 | ws "8.17.1" 220 | 221 | follow-redirects@^1.15.6: 222 | version "1.15.6" 223 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" 224 | integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 225 | 226 | form-data@^4.0.0: 227 | version "4.0.0" 228 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 229 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 230 | dependencies: 231 | asynckit "^0.4.0" 232 | combined-stream "^1.0.8" 233 | mime-types "^2.1.12" 234 | 235 | fsevents@~2.3.3: 236 | version "2.3.3" 237 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 238 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 239 | 240 | get-tsconfig@^4.7.5: 241 | version "4.7.6" 242 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" 243 | integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== 244 | dependencies: 245 | resolve-pkg-maps "^1.0.0" 246 | 247 | mime-db@1.52.0: 248 | version "1.52.0" 249 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 250 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 251 | 252 | mime-types@^2.1.12: 253 | version "2.1.35" 254 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 255 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 256 | dependencies: 257 | mime-db "1.52.0" 258 | 259 | proxy-from-env@^1.1.0: 260 | version "1.1.0" 261 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 262 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 263 | 264 | rango-sdk@^0.1.56: 265 | version "0.1.56" 266 | resolved "https://registry.yarnpkg.com/rango-sdk/-/rango-sdk-0.1.56.tgz#02ff80ae45563b5f1fc577e8c03f1114dc4ae333" 267 | integrity sha512-EMQKqiKO5iKDTwPviFtreawKwN/l5NGJhzOwIlrnIIXrA1fH7qtsxO/ioZ0w1UPtrpx1dg7gwuonDntMrG4+DA== 268 | dependencies: 269 | axios "^1.7.4" 270 | rango-types "^0.1.73" 271 | uuid-random "^1.3.2" 272 | 273 | rango-types@^0.1.73: 274 | version "0.1.73" 275 | resolved "https://registry.yarnpkg.com/rango-types/-/rango-types-0.1.73.tgz#2b0a96d64ae4caedd44771eb078f5b1bf03471cd" 276 | integrity sha512-h4Ent3q+3X8cuSrYjuhOtFi0xsh64JE6NYE/IpTlopOsHCwG7sxAPiG6jQ7BGUoprFLHYYjSDvQBDgwAgBlF5Q== 277 | 278 | resolve-pkg-maps@^1.0.0: 279 | version "1.0.0" 280 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" 281 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== 282 | 283 | tslib@2.4.0: 284 | version "2.4.0" 285 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" 286 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== 287 | 288 | tsx@^4.17.0: 289 | version "4.17.0" 290 | resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.17.0.tgz#6ffd9851a0c7aa4ecacf4dc19f28d82112af25c5" 291 | integrity sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg== 292 | dependencies: 293 | esbuild "~0.23.0" 294 | get-tsconfig "^4.7.5" 295 | optionalDependencies: 296 | fsevents "~2.3.3" 297 | 298 | uuid-random@^1.3.2: 299 | version "1.3.2" 300 | resolved "https://registry.yarnpkg.com/uuid-random/-/uuid-random-1.3.2.tgz#96715edbaef4e84b1dcf5024b00d16f30220e2d0" 301 | integrity sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ== 302 | 303 | ws@8.17.1: 304 | version "8.17.1" 305 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" 306 | integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== 307 | -------------------------------------------------------------------------------- /examples/basic/node-evm/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@adraffy/ens-normalize@1.10.1": 6 | version "1.10.1" 7 | resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" 8 | integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== 9 | 10 | "@esbuild/aix-ppc64@0.23.0": 11 | version "0.23.0" 12 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" 13 | integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== 14 | 15 | "@esbuild/android-arm64@0.23.0": 16 | version "0.23.0" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" 18 | integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== 19 | 20 | "@esbuild/android-arm@0.23.0": 21 | version "0.23.0" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" 23 | integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== 24 | 25 | "@esbuild/android-x64@0.23.0": 26 | version "0.23.0" 27 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" 28 | integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== 29 | 30 | "@esbuild/darwin-arm64@0.23.0": 31 | version "0.23.0" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" 33 | integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== 34 | 35 | "@esbuild/darwin-x64@0.23.0": 36 | version "0.23.0" 37 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" 38 | integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== 39 | 40 | "@esbuild/freebsd-arm64@0.23.0": 41 | version "0.23.0" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" 43 | integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== 44 | 45 | "@esbuild/freebsd-x64@0.23.0": 46 | version "0.23.0" 47 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" 48 | integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== 49 | 50 | "@esbuild/linux-arm64@0.23.0": 51 | version "0.23.0" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" 53 | integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== 54 | 55 | "@esbuild/linux-arm@0.23.0": 56 | version "0.23.0" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" 58 | integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== 59 | 60 | "@esbuild/linux-ia32@0.23.0": 61 | version "0.23.0" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" 63 | integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== 64 | 65 | "@esbuild/linux-loong64@0.23.0": 66 | version "0.23.0" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" 68 | integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== 69 | 70 | "@esbuild/linux-mips64el@0.23.0": 71 | version "0.23.0" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" 73 | integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== 74 | 75 | "@esbuild/linux-ppc64@0.23.0": 76 | version "0.23.0" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" 78 | integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== 79 | 80 | "@esbuild/linux-riscv64@0.23.0": 81 | version "0.23.0" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" 83 | integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== 84 | 85 | "@esbuild/linux-s390x@0.23.0": 86 | version "0.23.0" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" 88 | integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== 89 | 90 | "@esbuild/linux-x64@0.23.0": 91 | version "0.23.0" 92 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" 93 | integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== 94 | 95 | "@esbuild/netbsd-x64@0.23.0": 96 | version "0.23.0" 97 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" 98 | integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== 99 | 100 | "@esbuild/openbsd-arm64@0.23.0": 101 | version "0.23.0" 102 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" 103 | integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== 104 | 105 | "@esbuild/openbsd-x64@0.23.0": 106 | version "0.23.0" 107 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" 108 | integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== 109 | 110 | "@esbuild/sunos-x64@0.23.0": 111 | version "0.23.0" 112 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" 113 | integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== 114 | 115 | "@esbuild/win32-arm64@0.23.0": 116 | version "0.23.0" 117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" 118 | integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== 119 | 120 | "@esbuild/win32-ia32@0.23.0": 121 | version "0.23.0" 122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" 123 | integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== 124 | 125 | "@esbuild/win32-x64@0.23.0": 126 | version "0.23.0" 127 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" 128 | integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== 129 | 130 | "@noble/curves@1.2.0": 131 | version "1.2.0" 132 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" 133 | integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== 134 | dependencies: 135 | "@noble/hashes" "1.3.2" 136 | 137 | "@noble/hashes@1.3.2": 138 | version "1.3.2" 139 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" 140 | integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== 141 | 142 | "@types/node@18.15.13": 143 | version "18.15.13" 144 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" 145 | integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== 146 | 147 | aes-js@4.0.0-beta.5: 148 | version "4.0.0-beta.5" 149 | resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" 150 | integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== 151 | 152 | asynckit@^0.4.0: 153 | version "0.4.0" 154 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 155 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 156 | 157 | axios@^1.7.4: 158 | version "1.7.7" 159 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" 160 | integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== 161 | dependencies: 162 | follow-redirects "^1.15.6" 163 | form-data "^4.0.0" 164 | proxy-from-env "^1.1.0" 165 | 166 | combined-stream@^1.0.8: 167 | version "1.0.8" 168 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 169 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 170 | dependencies: 171 | delayed-stream "~1.0.0" 172 | 173 | delayed-stream@~1.0.0: 174 | version "1.0.0" 175 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 176 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 177 | 178 | esbuild@~0.23.0: 179 | version "0.23.0" 180 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" 181 | integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== 182 | optionalDependencies: 183 | "@esbuild/aix-ppc64" "0.23.0" 184 | "@esbuild/android-arm" "0.23.0" 185 | "@esbuild/android-arm64" "0.23.0" 186 | "@esbuild/android-x64" "0.23.0" 187 | "@esbuild/darwin-arm64" "0.23.0" 188 | "@esbuild/darwin-x64" "0.23.0" 189 | "@esbuild/freebsd-arm64" "0.23.0" 190 | "@esbuild/freebsd-x64" "0.23.0" 191 | "@esbuild/linux-arm" "0.23.0" 192 | "@esbuild/linux-arm64" "0.23.0" 193 | "@esbuild/linux-ia32" "0.23.0" 194 | "@esbuild/linux-loong64" "0.23.0" 195 | "@esbuild/linux-mips64el" "0.23.0" 196 | "@esbuild/linux-ppc64" "0.23.0" 197 | "@esbuild/linux-riscv64" "0.23.0" 198 | "@esbuild/linux-s390x" "0.23.0" 199 | "@esbuild/linux-x64" "0.23.0" 200 | "@esbuild/netbsd-x64" "0.23.0" 201 | "@esbuild/openbsd-arm64" "0.23.0" 202 | "@esbuild/openbsd-x64" "0.23.0" 203 | "@esbuild/sunos-x64" "0.23.0" 204 | "@esbuild/win32-arm64" "0.23.0" 205 | "@esbuild/win32-ia32" "0.23.0" 206 | "@esbuild/win32-x64" "0.23.0" 207 | 208 | ethers@^6.13.2: 209 | version "6.13.2" 210 | resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" 211 | integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== 212 | dependencies: 213 | "@adraffy/ens-normalize" "1.10.1" 214 | "@noble/curves" "1.2.0" 215 | "@noble/hashes" "1.3.2" 216 | "@types/node" "18.15.13" 217 | aes-js "4.0.0-beta.5" 218 | tslib "2.4.0" 219 | ws "8.17.1" 220 | 221 | follow-redirects@^1.15.6: 222 | version "1.15.6" 223 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" 224 | integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 225 | 226 | form-data@^4.0.0: 227 | version "4.0.0" 228 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 229 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 230 | dependencies: 231 | asynckit "^0.4.0" 232 | combined-stream "^1.0.8" 233 | mime-types "^2.1.12" 234 | 235 | fsevents@~2.3.3: 236 | version "2.3.3" 237 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 238 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 239 | 240 | get-tsconfig@^4.7.5: 241 | version "4.7.6" 242 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" 243 | integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== 244 | dependencies: 245 | resolve-pkg-maps "^1.0.0" 246 | 247 | mime-db@1.52.0: 248 | version "1.52.0" 249 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 250 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 251 | 252 | mime-types@^2.1.12: 253 | version "2.1.35" 254 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 255 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 256 | dependencies: 257 | mime-db "1.52.0" 258 | 259 | proxy-from-env@^1.1.0: 260 | version "1.1.0" 261 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 262 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 263 | 264 | rango-sdk-basic@^0.1.58: 265 | version "0.1.58" 266 | resolved "https://registry.yarnpkg.com/rango-sdk-basic/-/rango-sdk-basic-0.1.58.tgz#9e22dd9125393f70feb9b481236d90217f4341c1" 267 | integrity sha512-TwFOuUPIQqQoPE01zWeqJOyTthBVVgnuIfHpYnbapVYIxoStUqbd3FpG3Hc4PK7q9+hnbaSzET+hLyf/fOh4pg== 268 | dependencies: 269 | axios "^1.7.4" 270 | rango-types "^0.1.75" 271 | uuid-random "^1.3.2" 272 | 273 | rango-types@^0.1.75: 274 | version "0.1.75" 275 | resolved "https://registry.yarnpkg.com/rango-types/-/rango-types-0.1.75.tgz#24d2a3a30e113a7bf1088853e89b39b5722e9c04" 276 | integrity sha512-Xb/lfV+fXEQdk6APY77C0oKl++mqdDdwlRyfVi10tV5tfw0Yvl5+p8Av16oPqBcM20WJGjBFCUpHEAKsEprXNQ== 277 | 278 | resolve-pkg-maps@^1.0.0: 279 | version "1.0.0" 280 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" 281 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== 282 | 283 | tslib@2.4.0: 284 | version "2.4.0" 285 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" 286 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== 287 | 288 | tsx@^4.17.0: 289 | version "4.17.0" 290 | resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.17.0.tgz#6ffd9851a0c7aa4ecacf4dc19f28d82112af25c5" 291 | integrity sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg== 292 | dependencies: 293 | esbuild "~0.23.0" 294 | get-tsconfig "^4.7.5" 295 | optionalDependencies: 296 | fsevents "~2.3.3" 297 | 298 | uuid-random@^1.3.2: 299 | version "1.3.2" 300 | resolved "https://registry.yarnpkg.com/uuid-random/-/uuid-random-1.3.2.tgz#96715edbaef4e84b1dcf5024b00d16f30220e2d0" 301 | integrity sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ== 302 | 303 | ws@8.17.1: 304 | version "8.17.1" 305 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" 306 | integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== 307 | -------------------------------------------------------------------------------- /examples/main/node-psbt/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@esbuild/aix-ppc64@0.23.0": 6 | version "0.23.0" 7 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" 8 | integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== 9 | 10 | "@esbuild/android-arm64@0.23.0": 11 | version "0.23.0" 12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" 13 | integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== 14 | 15 | "@esbuild/android-arm@0.23.0": 16 | version "0.23.0" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" 18 | integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== 19 | 20 | "@esbuild/android-x64@0.23.0": 21 | version "0.23.0" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" 23 | integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== 24 | 25 | "@esbuild/darwin-arm64@0.23.0": 26 | version "0.23.0" 27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" 28 | integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== 29 | 30 | "@esbuild/darwin-x64@0.23.0": 31 | version "0.23.0" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" 33 | integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== 34 | 35 | "@esbuild/freebsd-arm64@0.23.0": 36 | version "0.23.0" 37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" 38 | integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== 39 | 40 | "@esbuild/freebsd-x64@0.23.0": 41 | version "0.23.0" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" 43 | integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== 44 | 45 | "@esbuild/linux-arm64@0.23.0": 46 | version "0.23.0" 47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" 48 | integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== 49 | 50 | "@esbuild/linux-arm@0.23.0": 51 | version "0.23.0" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" 53 | integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== 54 | 55 | "@esbuild/linux-ia32@0.23.0": 56 | version "0.23.0" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" 58 | integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== 59 | 60 | "@esbuild/linux-loong64@0.23.0": 61 | version "0.23.0" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" 63 | integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== 64 | 65 | "@esbuild/linux-mips64el@0.23.0": 66 | version "0.23.0" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" 68 | integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== 69 | 70 | "@esbuild/linux-ppc64@0.23.0": 71 | version "0.23.0" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" 73 | integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== 74 | 75 | "@esbuild/linux-riscv64@0.23.0": 76 | version "0.23.0" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" 78 | integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== 79 | 80 | "@esbuild/linux-s390x@0.23.0": 81 | version "0.23.0" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" 83 | integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== 84 | 85 | "@esbuild/linux-x64@0.23.0": 86 | version "0.23.0" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" 88 | integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== 89 | 90 | "@esbuild/netbsd-x64@0.23.0": 91 | version "0.23.0" 92 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" 93 | integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== 94 | 95 | "@esbuild/openbsd-arm64@0.23.0": 96 | version "0.23.0" 97 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" 98 | integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== 99 | 100 | "@esbuild/openbsd-x64@0.23.0": 101 | version "0.23.0" 102 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" 103 | integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== 104 | 105 | "@esbuild/sunos-x64@0.23.0": 106 | version "0.23.0" 107 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" 108 | integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== 109 | 110 | "@esbuild/win32-arm64@0.23.0": 111 | version "0.23.0" 112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" 113 | integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== 114 | 115 | "@esbuild/win32-ia32@0.23.0": 116 | version "0.23.0" 117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" 118 | integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== 119 | 120 | "@esbuild/win32-x64@0.23.0": 121 | version "0.23.0" 122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" 123 | integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== 124 | 125 | "@noble/hashes@^1.2.0": 126 | version "1.8.0" 127 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" 128 | integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== 129 | 130 | asynckit@^0.4.0: 131 | version "0.4.0" 132 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 133 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 134 | 135 | axios@^1.7.4: 136 | version "1.7.7" 137 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" 138 | integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== 139 | dependencies: 140 | follow-redirects "^1.15.6" 141 | form-data "^4.0.0" 142 | proxy-from-env "^1.1.0" 143 | 144 | base-x@^4.0.0: 145 | version "4.0.1" 146 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.1.tgz#817fb7b57143c501f649805cb247617ad016a885" 147 | integrity sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw== 148 | 149 | base-x@^5.0.0: 150 | version "5.0.1" 151 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" 152 | integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== 153 | 154 | bech32@^2.0.0: 155 | version "2.0.0" 156 | resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" 157 | integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== 158 | 159 | bip174@^2.1.1: 160 | version "2.1.1" 161 | resolved "https://registry.yarnpkg.com/bip174/-/bip174-2.1.1.tgz#ef3e968cf76de234a546962bcf572cc150982f9f" 162 | integrity sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ== 163 | 164 | bitcoinjs-lib@^6.1.7: 165 | version "6.1.7" 166 | resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz#0f98dec1333d658574eefa455295668cfae38bb0" 167 | integrity sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg== 168 | dependencies: 169 | "@noble/hashes" "^1.2.0" 170 | bech32 "^2.0.0" 171 | bip174 "^2.1.1" 172 | bs58check "^3.0.1" 173 | typeforce "^1.11.3" 174 | varuint-bitcoin "^1.1.2" 175 | 176 | bs58@^5.0.0: 177 | version "5.0.0" 178 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" 179 | integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== 180 | dependencies: 181 | base-x "^4.0.0" 182 | 183 | bs58@^6.0.0: 184 | version "6.0.0" 185 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" 186 | integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== 187 | dependencies: 188 | base-x "^5.0.0" 189 | 190 | bs58check@^3.0.1: 191 | version "3.0.1" 192 | resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-3.0.1.tgz#2094d13720a28593de1cba1d8c4e48602fdd841c" 193 | integrity sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ== 194 | dependencies: 195 | "@noble/hashes" "^1.2.0" 196 | bs58 "^5.0.0" 197 | 198 | bs58check@^4.0.0: 199 | version "4.0.0" 200 | resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-4.0.0.tgz#46cda52a5713b7542dcb78ec2efdf78f5bf1d23c" 201 | integrity sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g== 202 | dependencies: 203 | "@noble/hashes" "^1.2.0" 204 | bs58 "^6.0.0" 205 | 206 | combined-stream@^1.0.8: 207 | version "1.0.8" 208 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 209 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 210 | dependencies: 211 | delayed-stream "~1.0.0" 212 | 213 | delayed-stream@~1.0.0: 214 | version "1.0.0" 215 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 216 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 217 | 218 | ecpair@^3.0.0: 219 | version "3.0.0" 220 | resolved "https://registry.yarnpkg.com/ecpair/-/ecpair-3.0.0.tgz#7a9c5fcebbefd074b3759fe0a4ee20976ead44ea" 221 | integrity sha512-kf4JxjsRQoD4EBzpYjGAcR0t9i/4oAeRPtyCpKvSwyotgkc6oA4E4M0/e+kep7cXe+mgxAvoeh/jdgH9h5+Wxw== 222 | dependencies: 223 | uint8array-tools "^0.0.8" 224 | valibot "^0.37.0" 225 | wif "^5.0.0" 226 | 227 | esbuild@~0.23.0: 228 | version "0.23.0" 229 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" 230 | integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== 231 | optionalDependencies: 232 | "@esbuild/aix-ppc64" "0.23.0" 233 | "@esbuild/android-arm" "0.23.0" 234 | "@esbuild/android-arm64" "0.23.0" 235 | "@esbuild/android-x64" "0.23.0" 236 | "@esbuild/darwin-arm64" "0.23.0" 237 | "@esbuild/darwin-x64" "0.23.0" 238 | "@esbuild/freebsd-arm64" "0.23.0" 239 | "@esbuild/freebsd-x64" "0.23.0" 240 | "@esbuild/linux-arm" "0.23.0" 241 | "@esbuild/linux-arm64" "0.23.0" 242 | "@esbuild/linux-ia32" "0.23.0" 243 | "@esbuild/linux-loong64" "0.23.0" 244 | "@esbuild/linux-mips64el" "0.23.0" 245 | "@esbuild/linux-ppc64" "0.23.0" 246 | "@esbuild/linux-riscv64" "0.23.0" 247 | "@esbuild/linux-s390x" "0.23.0" 248 | "@esbuild/linux-x64" "0.23.0" 249 | "@esbuild/netbsd-x64" "0.23.0" 250 | "@esbuild/openbsd-arm64" "0.23.0" 251 | "@esbuild/openbsd-x64" "0.23.0" 252 | "@esbuild/sunos-x64" "0.23.0" 253 | "@esbuild/win32-arm64" "0.23.0" 254 | "@esbuild/win32-ia32" "0.23.0" 255 | "@esbuild/win32-x64" "0.23.0" 256 | 257 | follow-redirects@^1.15.6: 258 | version "1.15.6" 259 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" 260 | integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 261 | 262 | form-data@^4.0.0: 263 | version "4.0.0" 264 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 265 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 266 | dependencies: 267 | asynckit "^0.4.0" 268 | combined-stream "^1.0.8" 269 | mime-types "^2.1.12" 270 | 271 | fsevents@~2.3.3: 272 | version "2.3.3" 273 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 274 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 275 | 276 | get-tsconfig@^4.7.5: 277 | version "4.7.6" 278 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" 279 | integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== 280 | dependencies: 281 | resolve-pkg-maps "^1.0.0" 282 | 283 | mime-db@1.52.0: 284 | version "1.52.0" 285 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 286 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 287 | 288 | mime-types@^2.1.12: 289 | version "2.1.35" 290 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 291 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 292 | dependencies: 293 | mime-db "1.52.0" 294 | 295 | proxy-from-env@^1.1.0: 296 | version "1.1.0" 297 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 298 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 299 | 300 | rango-sdk@^0.1.67: 301 | version "0.1.67" 302 | resolved "https://registry.yarnpkg.com/rango-sdk/-/rango-sdk-0.1.67.tgz#1c137a508dbfbca6bf0fc77636fdeb616133bfde" 303 | integrity sha512-uHz56t2e1YtdAZDZY3g+aui7292HKDD2/UqoAW9xjUwl4sf0xDTAz/cIDf2k7lIubJXGI61SbZeclw1fCjOoDQ== 304 | dependencies: 305 | axios "^1.7.4" 306 | rango-types "^0.1.84" 307 | uuid-random "^1.3.2" 308 | 309 | rango-types@^0.1.84: 310 | version "0.1.84" 311 | resolved "https://registry.yarnpkg.com/rango-types/-/rango-types-0.1.84.tgz#c79f5ccd0aee5debb679488d092d5488425955f1" 312 | integrity sha512-qHlil6XTvuQq/+5dkCBhTGsjiVkQ+ihg4XkO/rU/3/IFcXd93CEKelMME19RX8Da0LZTqls0bx9K5FVw0QDc9Q== 313 | 314 | resolve-pkg-maps@^1.0.0: 315 | version "1.0.0" 316 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" 317 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== 318 | 319 | safe-buffer@^5.1.1: 320 | version "5.2.1" 321 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 322 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 323 | 324 | tiny-secp256k1@^2.2.3: 325 | version "2.2.3" 326 | resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-2.2.3.tgz#fe1dde11a64fcee2091157d4b78bcb300feb9b65" 327 | integrity sha512-SGcL07SxcPN2nGKHTCvRMkQLYPSoeFcvArUSCYtjVARiFAWU44cCIqYS0mYAU6nY7XfvwURuTIGo2Omt3ZQr0Q== 328 | dependencies: 329 | uint8array-tools "0.0.7" 330 | 331 | tsx@^4.17.0: 332 | version "4.17.0" 333 | resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.17.0.tgz#6ffd9851a0c7aa4ecacf4dc19f28d82112af25c5" 334 | integrity sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg== 335 | dependencies: 336 | esbuild "~0.23.0" 337 | get-tsconfig "^4.7.5" 338 | optionalDependencies: 339 | fsevents "~2.3.3" 340 | 341 | typeforce@^1.11.3: 342 | version "1.18.0" 343 | resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" 344 | integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== 345 | 346 | uint8array-tools@0.0.7: 347 | version "0.0.7" 348 | resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.7.tgz#a7a2bb5d8836eae2fade68c771454e6a438b390d" 349 | integrity sha512-vrrNZJiusLWoFWBqz5Y5KMCgP9W9hnjZHzZiZRT8oNAkq3d5Z5Oe76jAvVVSRh4U8GGR90N2X1dWtrhvx6L8UQ== 350 | 351 | uint8array-tools@^0.0.8: 352 | version "0.0.8" 353 | resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.8.tgz#712bab001f8347bd782f45bc47c76ffff32d1e0b" 354 | integrity sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g== 355 | 356 | uuid-random@^1.3.2: 357 | version "1.3.2" 358 | resolved "https://registry.yarnpkg.com/uuid-random/-/uuid-random-1.3.2.tgz#96715edbaef4e84b1dcf5024b00d16f30220e2d0" 359 | integrity sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ== 360 | 361 | valibot@^0.37.0: 362 | version "0.37.0" 363 | resolved "https://registry.yarnpkg.com/valibot/-/valibot-0.37.0.tgz#b71f597a581c716f6546a3b53cefd2829b559c55" 364 | integrity sha512-FQz52I8RXgFgOHym3XHYSREbNtkgSjF9prvMFH1nBsRyfL6SfCzoT1GuSDTlbsuPubM7/6Kbw0ZMQb8A+V+VsQ== 365 | 366 | varuint-bitcoin@^1.1.2: 367 | version "1.1.2" 368 | resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" 369 | integrity sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw== 370 | dependencies: 371 | safe-buffer "^5.1.1" 372 | 373 | wif@^5.0.0: 374 | version "5.0.0" 375 | resolved "https://registry.yarnpkg.com/wif/-/wif-5.0.0.tgz#445e44b8f62e155144d1c970c01ca2ba3979cc3f" 376 | integrity sha512-iFzrC/9ne740qFbNjTZ2FciSRJlHIXoxqk/Y5EnE08QOXu1WjJyCCswwDTYbohAOEnlCtLaAAQBhyaLRFh2hMA== 377 | dependencies: 378 | bs58check "^4.0.0" 379 | -------------------------------------------------------------------------------- /examples/basic/node-psbt/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@esbuild/aix-ppc64@0.23.0": 6 | version "0.23.0" 7 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" 8 | integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== 9 | 10 | "@esbuild/android-arm64@0.23.0": 11 | version "0.23.0" 12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" 13 | integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== 14 | 15 | "@esbuild/android-arm@0.23.0": 16 | version "0.23.0" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" 18 | integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== 19 | 20 | "@esbuild/android-x64@0.23.0": 21 | version "0.23.0" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" 23 | integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== 24 | 25 | "@esbuild/darwin-arm64@0.23.0": 26 | version "0.23.0" 27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" 28 | integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== 29 | 30 | "@esbuild/darwin-x64@0.23.0": 31 | version "0.23.0" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" 33 | integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== 34 | 35 | "@esbuild/freebsd-arm64@0.23.0": 36 | version "0.23.0" 37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" 38 | integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== 39 | 40 | "@esbuild/freebsd-x64@0.23.0": 41 | version "0.23.0" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" 43 | integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== 44 | 45 | "@esbuild/linux-arm64@0.23.0": 46 | version "0.23.0" 47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" 48 | integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== 49 | 50 | "@esbuild/linux-arm@0.23.0": 51 | version "0.23.0" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" 53 | integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== 54 | 55 | "@esbuild/linux-ia32@0.23.0": 56 | version "0.23.0" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" 58 | integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== 59 | 60 | "@esbuild/linux-loong64@0.23.0": 61 | version "0.23.0" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" 63 | integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== 64 | 65 | "@esbuild/linux-mips64el@0.23.0": 66 | version "0.23.0" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" 68 | integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== 69 | 70 | "@esbuild/linux-ppc64@0.23.0": 71 | version "0.23.0" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" 73 | integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== 74 | 75 | "@esbuild/linux-riscv64@0.23.0": 76 | version "0.23.0" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" 78 | integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== 79 | 80 | "@esbuild/linux-s390x@0.23.0": 81 | version "0.23.0" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" 83 | integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== 84 | 85 | "@esbuild/linux-x64@0.23.0": 86 | version "0.23.0" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" 88 | integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== 89 | 90 | "@esbuild/netbsd-x64@0.23.0": 91 | version "0.23.0" 92 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" 93 | integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== 94 | 95 | "@esbuild/openbsd-arm64@0.23.0": 96 | version "0.23.0" 97 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" 98 | integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== 99 | 100 | "@esbuild/openbsd-x64@0.23.0": 101 | version "0.23.0" 102 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" 103 | integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== 104 | 105 | "@esbuild/sunos-x64@0.23.0": 106 | version "0.23.0" 107 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" 108 | integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== 109 | 110 | "@esbuild/win32-arm64@0.23.0": 111 | version "0.23.0" 112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" 113 | integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== 114 | 115 | "@esbuild/win32-ia32@0.23.0": 116 | version "0.23.0" 117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" 118 | integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== 119 | 120 | "@esbuild/win32-x64@0.23.0": 121 | version "0.23.0" 122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" 123 | integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== 124 | 125 | "@noble/hashes@^1.2.0": 126 | version "1.8.0" 127 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" 128 | integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== 129 | 130 | asynckit@^0.4.0: 131 | version "0.4.0" 132 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 133 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 134 | 135 | axios@^1.7.4: 136 | version "1.7.7" 137 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" 138 | integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== 139 | dependencies: 140 | follow-redirects "^1.15.6" 141 | form-data "^4.0.0" 142 | proxy-from-env "^1.1.0" 143 | 144 | base-x@^4.0.0: 145 | version "4.0.1" 146 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.1.tgz#817fb7b57143c501f649805cb247617ad016a885" 147 | integrity sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw== 148 | 149 | base-x@^5.0.0: 150 | version "5.0.1" 151 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" 152 | integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== 153 | 154 | bech32@^2.0.0: 155 | version "2.0.0" 156 | resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" 157 | integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== 158 | 159 | bip174@^2.1.1: 160 | version "2.1.1" 161 | resolved "https://registry.yarnpkg.com/bip174/-/bip174-2.1.1.tgz#ef3e968cf76de234a546962bcf572cc150982f9f" 162 | integrity sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ== 163 | 164 | bitcoinjs-lib@^6.1.7: 165 | version "6.1.7" 166 | resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz#0f98dec1333d658574eefa455295668cfae38bb0" 167 | integrity sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg== 168 | dependencies: 169 | "@noble/hashes" "^1.2.0" 170 | bech32 "^2.0.0" 171 | bip174 "^2.1.1" 172 | bs58check "^3.0.1" 173 | typeforce "^1.11.3" 174 | varuint-bitcoin "^1.1.2" 175 | 176 | bs58@^5.0.0: 177 | version "5.0.0" 178 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" 179 | integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== 180 | dependencies: 181 | base-x "^4.0.0" 182 | 183 | bs58@^6.0.0: 184 | version "6.0.0" 185 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" 186 | integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== 187 | dependencies: 188 | base-x "^5.0.0" 189 | 190 | bs58check@^3.0.1: 191 | version "3.0.1" 192 | resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-3.0.1.tgz#2094d13720a28593de1cba1d8c4e48602fdd841c" 193 | integrity sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ== 194 | dependencies: 195 | "@noble/hashes" "^1.2.0" 196 | bs58 "^5.0.0" 197 | 198 | bs58check@^4.0.0: 199 | version "4.0.0" 200 | resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-4.0.0.tgz#46cda52a5713b7542dcb78ec2efdf78f5bf1d23c" 201 | integrity sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g== 202 | dependencies: 203 | "@noble/hashes" "^1.2.0" 204 | bs58 "^6.0.0" 205 | 206 | combined-stream@^1.0.8: 207 | version "1.0.8" 208 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 209 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 210 | dependencies: 211 | delayed-stream "~1.0.0" 212 | 213 | delayed-stream@~1.0.0: 214 | version "1.0.0" 215 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 216 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 217 | 218 | ecpair@^3.0.0: 219 | version "3.0.0" 220 | resolved "https://registry.yarnpkg.com/ecpair/-/ecpair-3.0.0.tgz#7a9c5fcebbefd074b3759fe0a4ee20976ead44ea" 221 | integrity sha512-kf4JxjsRQoD4EBzpYjGAcR0t9i/4oAeRPtyCpKvSwyotgkc6oA4E4M0/e+kep7cXe+mgxAvoeh/jdgH9h5+Wxw== 222 | dependencies: 223 | uint8array-tools "^0.0.8" 224 | valibot "^0.37.0" 225 | wif "^5.0.0" 226 | 227 | esbuild@~0.23.0: 228 | version "0.23.0" 229 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" 230 | integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== 231 | optionalDependencies: 232 | "@esbuild/aix-ppc64" "0.23.0" 233 | "@esbuild/android-arm" "0.23.0" 234 | "@esbuild/android-arm64" "0.23.0" 235 | "@esbuild/android-x64" "0.23.0" 236 | "@esbuild/darwin-arm64" "0.23.0" 237 | "@esbuild/darwin-x64" "0.23.0" 238 | "@esbuild/freebsd-arm64" "0.23.0" 239 | "@esbuild/freebsd-x64" "0.23.0" 240 | "@esbuild/linux-arm" "0.23.0" 241 | "@esbuild/linux-arm64" "0.23.0" 242 | "@esbuild/linux-ia32" "0.23.0" 243 | "@esbuild/linux-loong64" "0.23.0" 244 | "@esbuild/linux-mips64el" "0.23.0" 245 | "@esbuild/linux-ppc64" "0.23.0" 246 | "@esbuild/linux-riscv64" "0.23.0" 247 | "@esbuild/linux-s390x" "0.23.0" 248 | "@esbuild/linux-x64" "0.23.0" 249 | "@esbuild/netbsd-x64" "0.23.0" 250 | "@esbuild/openbsd-arm64" "0.23.0" 251 | "@esbuild/openbsd-x64" "0.23.0" 252 | "@esbuild/sunos-x64" "0.23.0" 253 | "@esbuild/win32-arm64" "0.23.0" 254 | "@esbuild/win32-ia32" "0.23.0" 255 | "@esbuild/win32-x64" "0.23.0" 256 | 257 | follow-redirects@^1.15.6: 258 | version "1.15.6" 259 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" 260 | integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 261 | 262 | form-data@^4.0.0: 263 | version "4.0.0" 264 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 265 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 266 | dependencies: 267 | asynckit "^0.4.0" 268 | combined-stream "^1.0.8" 269 | mime-types "^2.1.12" 270 | 271 | fsevents@~2.3.3: 272 | version "2.3.3" 273 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 274 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 275 | 276 | get-tsconfig@^4.7.5: 277 | version "4.7.6" 278 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" 279 | integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== 280 | dependencies: 281 | resolve-pkg-maps "^1.0.0" 282 | 283 | mime-db@1.52.0: 284 | version "1.52.0" 285 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 286 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 287 | 288 | mime-types@^2.1.12: 289 | version "2.1.35" 290 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 291 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 292 | dependencies: 293 | mime-db "1.52.0" 294 | 295 | proxy-from-env@^1.1.0: 296 | version "1.1.0" 297 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 298 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 299 | 300 | rango-sdk-basic@^0.1.67: 301 | version "0.1.67" 302 | resolved "https://registry.yarnpkg.com/rango-sdk-basic/-/rango-sdk-basic-0.1.67.tgz#4dd7f2a38587c15760765cde17cac6f507edc0b9" 303 | integrity sha512-uLTLWBNZlBVQJT5TTqa/eKNuEoYubZck7BRKk4oru/87tZuVqbCGNBoVnWJ7LFaeWdYYgdmPREEN3UczZ3TQww== 304 | dependencies: 305 | axios "^1.7.4" 306 | rango-types "^0.1.84" 307 | uuid-random "^1.3.2" 308 | 309 | rango-types@^0.1.84: 310 | version "0.1.84" 311 | resolved "https://registry.yarnpkg.com/rango-types/-/rango-types-0.1.84.tgz#c79f5ccd0aee5debb679488d092d5488425955f1" 312 | integrity sha512-qHlil6XTvuQq/+5dkCBhTGsjiVkQ+ihg4XkO/rU/3/IFcXd93CEKelMME19RX8Da0LZTqls0bx9K5FVw0QDc9Q== 313 | 314 | resolve-pkg-maps@^1.0.0: 315 | version "1.0.0" 316 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" 317 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== 318 | 319 | safe-buffer@^5.1.1: 320 | version "5.2.1" 321 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 322 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 323 | 324 | tiny-secp256k1@^2.2.3: 325 | version "2.2.3" 326 | resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-2.2.3.tgz#fe1dde11a64fcee2091157d4b78bcb300feb9b65" 327 | integrity sha512-SGcL07SxcPN2nGKHTCvRMkQLYPSoeFcvArUSCYtjVARiFAWU44cCIqYS0mYAU6nY7XfvwURuTIGo2Omt3ZQr0Q== 328 | dependencies: 329 | uint8array-tools "0.0.7" 330 | 331 | tsx@^4.17.0: 332 | version "4.17.0" 333 | resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.17.0.tgz#6ffd9851a0c7aa4ecacf4dc19f28d82112af25c5" 334 | integrity sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg== 335 | dependencies: 336 | esbuild "~0.23.0" 337 | get-tsconfig "^4.7.5" 338 | optionalDependencies: 339 | fsevents "~2.3.3" 340 | 341 | typeforce@^1.11.3: 342 | version "1.18.0" 343 | resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" 344 | integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== 345 | 346 | uint8array-tools@0.0.7: 347 | version "0.0.7" 348 | resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.7.tgz#a7a2bb5d8836eae2fade68c771454e6a438b390d" 349 | integrity sha512-vrrNZJiusLWoFWBqz5Y5KMCgP9W9hnjZHzZiZRT8oNAkq3d5Z5Oe76jAvVVSRh4U8GGR90N2X1dWtrhvx6L8UQ== 350 | 351 | uint8array-tools@^0.0.8: 352 | version "0.0.8" 353 | resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.8.tgz#712bab001f8347bd782f45bc47c76ffff32d1e0b" 354 | integrity sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g== 355 | 356 | uuid-random@^1.3.2: 357 | version "1.3.2" 358 | resolved "https://registry.yarnpkg.com/uuid-random/-/uuid-random-1.3.2.tgz#96715edbaef4e84b1dcf5024b00d16f30220e2d0" 359 | integrity sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ== 360 | 361 | valibot@^0.37.0: 362 | version "0.37.0" 363 | resolved "https://registry.yarnpkg.com/valibot/-/valibot-0.37.0.tgz#b71f597a581c716f6546a3b53cefd2829b559c55" 364 | integrity sha512-FQz52I8RXgFgOHym3XHYSREbNtkgSjF9prvMFH1nBsRyfL6SfCzoT1GuSDTlbsuPubM7/6Kbw0ZMQb8A+V+VsQ== 365 | 366 | varuint-bitcoin@^1.1.2: 367 | version "1.1.2" 368 | resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" 369 | integrity sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw== 370 | dependencies: 371 | safe-buffer "^5.1.1" 372 | 373 | wif@^5.0.0: 374 | version "5.0.0" 375 | resolved "https://registry.yarnpkg.com/wif/-/wif-5.0.0.tgz#445e44b8f62e155144d1c970c01ca2ba3979cc3f" 376 | integrity sha512-iFzrC/9ne740qFbNjTZ2FciSRJlHIXoxqk/Y5EnE08QOXu1WjJyCCswwDTYbohAOEnlCtLaAAQBhyaLRFh2hMA== 377 | dependencies: 378 | bs58check "^4.0.0" 379 | -------------------------------------------------------------------------------- /examples/main/node-tron/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@adraffy/ens-normalize@1.10.1": 6 | version "1.10.1" 7 | resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" 8 | integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== 9 | 10 | "@babel/runtime@^7.0.0": 11 | version "7.25.6" 12 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" 13 | integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== 14 | dependencies: 15 | regenerator-runtime "^0.14.0" 16 | 17 | "@esbuild/aix-ppc64@0.23.0": 18 | version "0.23.0" 19 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" 20 | integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== 21 | 22 | "@esbuild/android-arm64@0.23.0": 23 | version "0.23.0" 24 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" 25 | integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== 26 | 27 | "@esbuild/android-arm@0.23.0": 28 | version "0.23.0" 29 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" 30 | integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== 31 | 32 | "@esbuild/android-x64@0.23.0": 33 | version "0.23.0" 34 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" 35 | integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== 36 | 37 | "@esbuild/darwin-arm64@0.23.0": 38 | version "0.23.0" 39 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" 40 | integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== 41 | 42 | "@esbuild/darwin-x64@0.23.0": 43 | version "0.23.0" 44 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" 45 | integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== 46 | 47 | "@esbuild/freebsd-arm64@0.23.0": 48 | version "0.23.0" 49 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" 50 | integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== 51 | 52 | "@esbuild/freebsd-x64@0.23.0": 53 | version "0.23.0" 54 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" 55 | integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== 56 | 57 | "@esbuild/linux-arm64@0.23.0": 58 | version "0.23.0" 59 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" 60 | integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== 61 | 62 | "@esbuild/linux-arm@0.23.0": 63 | version "0.23.0" 64 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" 65 | integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== 66 | 67 | "@esbuild/linux-ia32@0.23.0": 68 | version "0.23.0" 69 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" 70 | integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== 71 | 72 | "@esbuild/linux-loong64@0.23.0": 73 | version "0.23.0" 74 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" 75 | integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== 76 | 77 | "@esbuild/linux-mips64el@0.23.0": 78 | version "0.23.0" 79 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" 80 | integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== 81 | 82 | "@esbuild/linux-ppc64@0.23.0": 83 | version "0.23.0" 84 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" 85 | integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== 86 | 87 | "@esbuild/linux-riscv64@0.23.0": 88 | version "0.23.0" 89 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" 90 | integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== 91 | 92 | "@esbuild/linux-s390x@0.23.0": 93 | version "0.23.0" 94 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" 95 | integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== 96 | 97 | "@esbuild/linux-x64@0.23.0": 98 | version "0.23.0" 99 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" 100 | integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== 101 | 102 | "@esbuild/netbsd-x64@0.23.0": 103 | version "0.23.0" 104 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" 105 | integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== 106 | 107 | "@esbuild/openbsd-arm64@0.23.0": 108 | version "0.23.0" 109 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" 110 | integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== 111 | 112 | "@esbuild/openbsd-x64@0.23.0": 113 | version "0.23.0" 114 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" 115 | integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== 116 | 117 | "@esbuild/sunos-x64@0.23.0": 118 | version "0.23.0" 119 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" 120 | integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== 121 | 122 | "@esbuild/win32-arm64@0.23.0": 123 | version "0.23.0" 124 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" 125 | integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== 126 | 127 | "@esbuild/win32-ia32@0.23.0": 128 | version "0.23.0" 129 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" 130 | integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== 131 | 132 | "@esbuild/win32-x64@0.23.0": 133 | version "0.23.0" 134 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" 135 | integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== 136 | 137 | "@noble/curves@1.2.0": 138 | version "1.2.0" 139 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" 140 | integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== 141 | dependencies: 142 | "@noble/hashes" "1.3.2" 143 | 144 | "@noble/curves@1.4.2", "@noble/curves@~1.4.0": 145 | version "1.4.2" 146 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9" 147 | integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== 148 | dependencies: 149 | "@noble/hashes" "1.4.0" 150 | 151 | "@noble/hashes@1.3.2": 152 | version "1.3.2" 153 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" 154 | integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== 155 | 156 | "@noble/hashes@1.4.0", "@noble/hashes@~1.4.0": 157 | version "1.4.0" 158 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" 159 | integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== 160 | 161 | "@rango-dev/signer-tron@^0.29.0": 162 | version "0.29.0" 163 | resolved "https://registry.yarnpkg.com/@rango-dev/signer-tron/-/signer-tron-0.29.0.tgz#f65b3e2e8c72f726f62578763f44ff25cdfc0815" 164 | integrity sha512-os1Uf1oPClq6kWK/BCEOYGhXupYbV5HM1tk9Yp6JnsdRmmTh4XXKvPVlLreb2PN29Pm8gQLk4ryr9cbKPSkHKg== 165 | dependencies: 166 | rango-types "^0.1.69" 167 | 168 | "@scure/base@~1.1.6": 169 | version "1.1.8" 170 | resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.8.tgz#8f23646c352f020c83bca750a82789e246d42b50" 171 | integrity sha512-6CyAclxj3Nb0XT7GHK6K4zK6k2xJm6E4Ft0Ohjt4WgegiFUHEtFb2CGzmPmGBwoIhrLsqNLYfLr04Y1GePrzZg== 172 | 173 | "@scure/bip32@1.4.0": 174 | version "1.4.0" 175 | resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" 176 | integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== 177 | dependencies: 178 | "@noble/curves" "~1.4.0" 179 | "@noble/hashes" "~1.4.0" 180 | "@scure/base" "~1.1.6" 181 | 182 | "@scure/bip39@1.3.0": 183 | version "1.3.0" 184 | resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" 185 | integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== 186 | dependencies: 187 | "@noble/hashes" "~1.4.0" 188 | "@scure/base" "~1.1.6" 189 | 190 | "@tronweb3/google-protobuf@^3.21.2": 191 | version "3.21.2" 192 | resolved "https://registry.yarnpkg.com/@tronweb3/google-protobuf/-/google-protobuf-3.21.2.tgz#0964cf83ed7826d31c3cb4e4ecf07655681631c9" 193 | integrity sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ== 194 | 195 | "@types/node@18.15.13": 196 | version "18.15.13" 197 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" 198 | integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== 199 | 200 | aes-js@4.0.0-beta.5: 201 | version "4.0.0-beta.5" 202 | resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" 203 | integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== 204 | 205 | asynckit@^0.4.0: 206 | version "0.4.0" 207 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 208 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 209 | 210 | axios@^1.6.8, axios@^1.7.4: 211 | version "1.7.7" 212 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" 213 | integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== 214 | dependencies: 215 | follow-redirects "^1.15.6" 216 | form-data "^4.0.0" 217 | proxy-from-env "^1.1.0" 218 | 219 | bignumber.js@^9.0.1: 220 | version "9.1.2" 221 | resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" 222 | integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== 223 | 224 | combined-stream@^1.0.8: 225 | version "1.0.8" 226 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 227 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 228 | dependencies: 229 | delayed-stream "~1.0.0" 230 | 231 | delayed-stream@~1.0.0: 232 | version "1.0.0" 233 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 234 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 235 | 236 | esbuild@~0.23.0: 237 | version "0.23.0" 238 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" 239 | integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== 240 | optionalDependencies: 241 | "@esbuild/aix-ppc64" "0.23.0" 242 | "@esbuild/android-arm" "0.23.0" 243 | "@esbuild/android-arm64" "0.23.0" 244 | "@esbuild/android-x64" "0.23.0" 245 | "@esbuild/darwin-arm64" "0.23.0" 246 | "@esbuild/darwin-x64" "0.23.0" 247 | "@esbuild/freebsd-arm64" "0.23.0" 248 | "@esbuild/freebsd-x64" "0.23.0" 249 | "@esbuild/linux-arm" "0.23.0" 250 | "@esbuild/linux-arm64" "0.23.0" 251 | "@esbuild/linux-ia32" "0.23.0" 252 | "@esbuild/linux-loong64" "0.23.0" 253 | "@esbuild/linux-mips64el" "0.23.0" 254 | "@esbuild/linux-ppc64" "0.23.0" 255 | "@esbuild/linux-riscv64" "0.23.0" 256 | "@esbuild/linux-s390x" "0.23.0" 257 | "@esbuild/linux-x64" "0.23.0" 258 | "@esbuild/netbsd-x64" "0.23.0" 259 | "@esbuild/openbsd-arm64" "0.23.0" 260 | "@esbuild/openbsd-x64" "0.23.0" 261 | "@esbuild/sunos-x64" "0.23.0" 262 | "@esbuild/win32-arm64" "0.23.0" 263 | "@esbuild/win32-ia32" "0.23.0" 264 | "@esbuild/win32-x64" "0.23.0" 265 | 266 | ethereum-cryptography@^2.1.3: 267 | version "2.2.1" 268 | resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf" 269 | integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== 270 | dependencies: 271 | "@noble/curves" "1.4.2" 272 | "@noble/hashes" "1.4.0" 273 | "@scure/bip32" "1.4.0" 274 | "@scure/bip39" "1.3.0" 275 | 276 | ethers@^6.13.1: 277 | version "6.13.2" 278 | resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" 279 | integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== 280 | dependencies: 281 | "@adraffy/ens-normalize" "1.10.1" 282 | "@noble/curves" "1.2.0" 283 | "@noble/hashes" "1.3.2" 284 | "@types/node" "18.15.13" 285 | aes-js "4.0.0-beta.5" 286 | tslib "2.4.0" 287 | ws "8.17.1" 288 | 289 | eventemitter3@^3.1.0: 290 | version "3.1.2" 291 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" 292 | integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== 293 | 294 | follow-redirects@^1.15.6: 295 | version "1.15.6" 296 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" 297 | integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 298 | 299 | form-data@^4.0.0: 300 | version "4.0.0" 301 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 302 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 303 | dependencies: 304 | asynckit "^0.4.0" 305 | combined-stream "^1.0.8" 306 | mime-types "^2.1.12" 307 | 308 | fsevents@~2.3.3: 309 | version "2.3.3" 310 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 311 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 312 | 313 | get-tsconfig@^4.7.5: 314 | version "4.7.6" 315 | resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.6.tgz#118fd5b7b9bae234cc7705a00cd771d7eb65d62a" 316 | integrity sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA== 317 | dependencies: 318 | resolve-pkg-maps "^1.0.0" 319 | 320 | mime-db@1.52.0: 321 | version "1.52.0" 322 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 323 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 324 | 325 | mime-types@^2.1.12: 326 | version "2.1.35" 327 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 328 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 329 | dependencies: 330 | mime-db "1.52.0" 331 | 332 | proxy-from-env@^1.1.0: 333 | version "1.1.0" 334 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 335 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 336 | 337 | rango-sdk@^0.1.56: 338 | version "0.1.56" 339 | resolved "https://registry.yarnpkg.com/rango-sdk/-/rango-sdk-0.1.56.tgz#02ff80ae45563b5f1fc577e8c03f1114dc4ae333" 340 | integrity sha512-EMQKqiKO5iKDTwPviFtreawKwN/l5NGJhzOwIlrnIIXrA1fH7qtsxO/ioZ0w1UPtrpx1dg7gwuonDntMrG4+DA== 341 | dependencies: 342 | axios "^1.7.4" 343 | rango-types "^0.1.73" 344 | uuid-random "^1.3.2" 345 | 346 | rango-types@^0.1.69, rango-types@^0.1.73: 347 | version "0.1.73" 348 | resolved "https://registry.yarnpkg.com/rango-types/-/rango-types-0.1.73.tgz#2b0a96d64ae4caedd44771eb078f5b1bf03471cd" 349 | integrity sha512-h4Ent3q+3X8cuSrYjuhOtFi0xsh64JE6NYE/IpTlopOsHCwG7sxAPiG6jQ7BGUoprFLHYYjSDvQBDgwAgBlF5Q== 350 | 351 | regenerator-runtime@^0.14.0: 352 | version "0.14.1" 353 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 354 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 355 | 356 | resolve-pkg-maps@^1.0.0: 357 | version "1.0.0" 358 | resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" 359 | integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== 360 | 361 | semver@^5.6.0: 362 | version "5.7.2" 363 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" 364 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== 365 | 366 | tronweb@^6.0.0-beta.4: 367 | version "6.0.0-beta.4" 368 | resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-6.0.0-beta.4.tgz#80e982a64f2b2082d43921ab8254cfa3b0bf33a8" 369 | integrity sha512-q34Vq7c0MQRXlWRgTHuz01v/+fyL0LEP2fMRuPj0rVXrwNM1nDvuMD2/6VGRODhNQIHYP2113iZa/MpdHUaBww== 370 | dependencies: 371 | "@babel/runtime" "^7.0.0" 372 | "@tronweb3/google-protobuf" "^3.21.2" 373 | axios "^1.6.8" 374 | bignumber.js "^9.0.1" 375 | ethereum-cryptography "^2.1.3" 376 | ethers "^6.13.1" 377 | eventemitter3 "^3.1.0" 378 | semver "^5.6.0" 379 | validator "^13.7.0" 380 | 381 | tslib@2.4.0: 382 | version "2.4.0" 383 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" 384 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== 385 | 386 | tsx@^4.17.0: 387 | version "4.17.0" 388 | resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.17.0.tgz#6ffd9851a0c7aa4ecacf4dc19f28d82112af25c5" 389 | integrity sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg== 390 | dependencies: 391 | esbuild "~0.23.0" 392 | get-tsconfig "^4.7.5" 393 | optionalDependencies: 394 | fsevents "~2.3.3" 395 | 396 | uuid-random@^1.3.2: 397 | version "1.3.2" 398 | resolved "https://registry.yarnpkg.com/uuid-random/-/uuid-random-1.3.2.tgz#96715edbaef4e84b1dcf5024b00d16f30220e2d0" 399 | integrity sha512-UOzej0Le/UgkbWEO8flm+0y+G+ljUon1QWTEZOq1rnMAsxo2+SckbiZdKzAHHlVh6gJqI1TjC/xwgR50MuCrBQ== 400 | 401 | validator@^13.7.0: 402 | version "13.12.0" 403 | resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" 404 | integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== 405 | 406 | ws@8.17.1: 407 | version "8.17.1" 408 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" 409 | integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== 410 | --------------------------------------------------------------------------------