{"_id":"@ar-packages-changeit/cardano-utxo-selection","_rev":"2-4724440fc966aa3e31be065660cb0bd4","name":"@ar-packages-changeit/cardano-utxo-selection","dist-tags":{"develop":"3.0.2-7bc25721","latest":"3.0.2"},"versions":{"3.0.2-7bc25721":{"name":"@ar-packages-changeit/cardano-utxo-selection","version":"3.0.2-7bc25721","author":{"name":"Rosen Team"},"license":"MIT","_id":"@ar-packages-changeit/cardano-utxo-selection@3.0.2-7bc25721","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"homepage":"https://github.com/rosen-bridge/selection#readme","bugs":{"url":"https://github.com/rosen-bridge/selection/issues"},"dist":{"shasum":"58d9f9e1a7b6d6a94006ee4a4dafae944fd27f02","tarball":"https://registry.npmjs.org/@ar-packages-changeit/cardano-utxo-selection/-/cardano-utxo-selection-3.0.2-7bc25721.tgz","fileCount":12,"integrity":"sha512-jO2zE8B6zijghK0s8c8W9sTQ0lm5RKmp9D3QNOhruFnGvCvrS0c2kpILkpdvBj5hb2nN3EvCJTPo84vC1P07Cw==","signatures":[{"sig":"MEUCIQDya9uDgtehCVTvU3I7jIilNWVQjrYsGQqhoBbBBD6sEwIgcO+LiEw9v3Ja0UbmuxanhDHwZRa9zaKTDQODg4bWmCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11303},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.18.0"},"gitHead":"7bc25721f554f9b4be8b1c1599b621955c6dbb6c","scripts":{"lint":"eslint --fix . && npm run prettify","test":"NODE_OPTIONS='--import tsx' vitest","build":"tsc --build tsconfig.build.json","clean":"rimraf dist && rimraf tsconfig.build.tsbuildinfo","release":"npm run clean && npm run build && npm run test -- --run && npm publish --access public","coverage":"npm run test -- --run --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","lint:check":"eslint . && npm run prettify:check","type-check":"tsc --noEmit","prettify:check":"prettier --check . --ignore-path ../../.gitignore"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"repository":{"url":"git+https://github.com/rosen-bridge/selection.git","type":"git"},"_npmVersion":"11.6.2","description":"A Typescript package to select enough Cardano utxos for required amount of assets","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@rosen-bridge/selection-types":"^1.0.1","@rosen-bridge/abstract-box-selection":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","vitest":"^3.1.4","@vitest/coverage-istanbul":"^3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/cardano-utxo-selection_3.0.2-7bc25721_1763557932785_0.4934200521522303","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@ar-packages-changeit/cardano-utxo-selection","version":"3.0.2","description":"A Typescript package to select enough Cardano utxos for required amount of assets","repository":{"type":"git","url":"git+https://github.com/rosen-bridge/selection.git"},"license":"MIT","author":{"name":"Rosen Team"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc --build tsconfig.build.json","clean":"rimraf dist && rimraf tsconfig.build.tsbuildinfo","coverage":"npm run test -- --run --coverage","lint":"eslint --fix . && npm run prettify","lint:check":"eslint . && npm run prettify:check","prettify":"prettier --write . --ignore-path ../../.gitignore","prettify:check":"prettier --check . --ignore-path ../../.gitignore","release":"npm run clean && npm run build && npm run test -- --run && npm publish --access public","test":"NODE_OPTIONS='--import tsx' vitest","type-check":"tsc --noEmit"},"dependencies":{"@rosen-bridge/abstract-box-selection":"^1.0.1","@rosen-bridge/selection-types":"^1.0.1"},"devDependencies":{"@vitest/coverage-istanbul":"^3.1.4","tsx":"^4.20.5","vitest":"^3.1.4"},"engines":{"node":">=22.18.0"},"gitHead":"fc55a043c8019b3f18d0c1a033f12d43a4693458","_id":"@ar-packages-changeit/cardano-utxo-selection@3.0.2","bugs":{"url":"https://github.com/rosen-bridge/selection/issues"},"homepage":"https://github.com/rosen-bridge/selection#readme","_nodeVersion":"22.18.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-0tWqQ/Yn/uAoEyqGndRPsHJ422CJkLzQ3L9AAdOeZgCUcERf00XQB4mEBSJS8s/66kR7vn0eHZ1EXFhZA2ZmTA==","shasum":"68842fadf0db86486ea8d7ab4d8a481b84fc6a45","tarball":"https://registry.npmjs.org/@ar-packages-changeit/cardano-utxo-selection/-/cardano-utxo-selection-3.0.2.tgz","fileCount":13,"unpackedSize":64614,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCtalhEJRjI8Ri3MUaqJxdkNdNLij7J8ipNR/CH2PE38QIgOiqxYGAXz7DxoTooPQiDbisM4Y6RoD144MqDiSsOfCg="}]},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"directories":{},"maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cardano-utxo-selection_3.0.2_1763558449340_0.38774139749206293"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T13:12:12.708Z","modified":"2025-11-19T13:20:49.761Z","3.0.2-7bc25721":"2025-11-19T13:12:12.972Z","3.0.2":"2025-11-19T13:20:49.528Z"},"bugs":{"url":"https://github.com/rosen-bridge/selection/issues"},"author":{"name":"Rosen Team"},"license":"MIT","homepage":"https://github.com/rosen-bridge/selection#readme","repository":{"type":"git","url":"git+https://github.com/rosen-bridge/selection.git"},"description":"A Typescript package to select enough Cardano utxos for required amount of assets","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"readme":"# @rosen-bridge/cardano-utxo-selection\n\n## Table of contents\n\n- [Introduction](#introduction)\n- [Installation](#installation)\n- [Usage](#usage)\n\n## Introduction\n\nA TypeScript package for selecting Cardano UTXOs to cover required amounts of assets, built on top of the abstract box selection framework.\n\n## Installation\n\nnpm:\n\n```sh\nnpm i @rosen-bridge/cardano-utxo-selection\n```\n\nyarn:\n\n```sh\nyarn add @rosen-bridge/cardano-utxo-selection\n```\n\n## Usage\n\nHere's a basic example of how to use this package:\n\n```typescript\nimport { DummyLogger } from '@rosen-bridge/abstract-logger';\nimport { CardanoBoxSelection } from '@rosen-bridge/cardano-utxo-selection';\n\n// Create the selection instance\nconst selector = new CardanoBoxSelection(new DummyLogger());\n\n// Define required assets\nconst requiredAssets = {\n  nativeToken: 100000000n, // 1 ADA\n  tokens: [\n    { id: 'policy1.token1', value: 100n },\n    { id: 'policy2.token2', value: 200n },\n  ],\n};\n\n// Define UTXOs\nconst utxos: CardanoUtxo[] = [\n  {\n    txHash: 'tx1',\n    index: 0,\n    value: 500000000n, // 5 ADA\n    assets: [{ id: 'policy1.token1', value: 100n }],\n  },\n  {\n    txHash: 'tx2',\n    index: 0,\n    value: 300000000n, // 3 ADA\n    assets: [{ id: 'policy2.token2', value: 200n }],\n  },\n];\n\n// Get covering boxes\nconst result = await selector.getCoveringBoxes(\n  requiredAssets,\n  [], // forbidden box IDs\n  new Map(), // track map\n  utxos.values(),\n);\n\nif (result.covered) {\n  console.log('Selected UTXOs:', result.boxes);\n  console.log('Additional assets:', result.additionalAssets);\n} else {\n  console.log('Could not cover requirements');\n}\n```\n\nYou can also use custom min box value and limit number of tokens per change box by passing them as arguments to the `getCoveringBoxes` method.\n\n```typescript\nconst result = await selector.getCoveringBoxes(\n  requiredAssets,\n  [], // forbidden box IDs\n  new Map(), // track map\n  boxes.values(),\n  20000000n, // min box value\n  3, // max token count\n);\n```\n","readmeFilename":"README.md"}