{"_id":"@ar-packages-changeit/sdk-common","_rev":"3-1c281b66ae2167deb5505f374b5a7eec","name":"@ar-packages-changeit/sdk-common","dist-tags":{"latest":"0.0.1","develop":"0.0.1-ab7d7d42"},"versions":{"0.0.0":{"name":"@ar-packages-changeit/sdk-common","version":"0.0.0","author":{"name":"Rosen Team"},"license":"MIT","_id":"@ar-packages-changeit/sdk-common@0.0.0","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"homepage":"https://github.com/rosen-bridge/rosen-sdk#readme","bugs":{"url":"https://github.com/rosen-bridge/rosen-sdk/issues"},"dist":{"shasum":"15ddcf5886c7d55eadf28b57914415e1a099f260","tarball":"https://registry.npmjs.org/@ar-packages-changeit/sdk-common/-/sdk-common-0.0.0.tgz","fileCount":17,"integrity":"sha512-tiqm6SRuAsMXoZujhmS3iDoEuuTWRNMJl/v+F/r6YWoJVycqtrnC3jYQwiRlcoy8e/RU0jhMrrwqjXMo9tQ1dw==","signatures":[{"sig":"MEQCIE9ABOivIHMQqgrasSDhtBiumvcoya/dCHRDaUxqai5fAiBbN3gvs6Ecsli83k08r7dYVHyNrZ7O+it57186srafwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54318},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.18.0"},"gitHead":"8c64365068e3817da37ae50d42f9810c57e213b9","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 test -- --run && npm run build && npm publish --access public","coverage":"npm run test -- --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/rosen-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"This project includes common functions that clients require to interact with and create transactions on Rosen Bridge","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@rosen-bridge/tokens":"^4.0.1","@rosen-bridge/minimum-fee":"^3.1.0","@rosen-bridge/sdk-constant":"^0.0.0","@rosen-bridge/abstract-logger":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^3.1.4","@vitest/coverage-istanbul":"^3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk-common_0.0.0_1763561668010_0.5869981621579428","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-ab7d7d42":{"name":"@ar-packages-changeit/sdk-common","version":"0.0.1-ab7d7d42","author":{"name":"Rosen Team"},"license":"MIT","_id":"@ar-packages-changeit/sdk-common@0.0.1-ab7d7d42","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"homepage":"https://github.com/rosen-bridge/rosen-sdk#readme","bugs":{"url":"https://github.com/rosen-bridge/rosen-sdk/issues"},"dist":{"shasum":"22deb728310954072c15faa1847cb2d2206cc749","tarball":"https://registry.npmjs.org/@ar-packages-changeit/sdk-common/-/sdk-common-0.0.1-ab7d7d42.tgz","fileCount":18,"integrity":"sha512-wX/7emssmihjakVH40g47I5GRfRDZ0kWjCAyu27/9+DvfDHP/HZVsRedecSJgsr7QhFiGoRWyd5uPzS7nET8CQ==","signatures":[{"sig":"MEYCIQDRSlqkHgpeBm9yTxk7/fopTwIHyJwQC2BQIFne8+rc+QIhAND8/zNVV0t5AhBu0xje1Oc22PUiAFUVKh4vL8efYCvI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54409},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.18.0"},"gitHead":"ab7d7d42d34c23397629e2b2c6663442f6c2309a","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 test -- --run && npm run build && npm publish --access public","coverage":"npm run test -- --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/rosen-sdk.git","type":"git"},"_npmVersion":"11.6.2","description":"This project includes common functions that clients require to interact with and create transactions on Rosen Bridge","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@rosen-bridge/tokens":"^4.0.1","@rosen-bridge/minimum-fee":"^3.1.0","@rosen-bridge/sdk-constant":"^0.0.0","@rosen-bridge/abstract-logger":"^3.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.20.6","vitest":"^3.1.4","@vitest/coverage-istanbul":"^3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk-common_0.0.1-ab7d7d42_1763561959345_0.6798045513637823","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@ar-packages-changeit/sdk-common","version":"0.0.1","description":"This project includes common functions that clients require to interact with and create transactions on Rosen Bridge","repository":{"type":"git","url":"git+https://github.com/rosen-bridge/rosen-sdk.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 -- --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 test -- --run && npm run build && npm publish --access public","test":"NODE_OPTIONS='--import tsx' vitest","type-check":"tsc --noEmit"},"dependencies":{"@rosen-bridge/abstract-logger":"^3.0.1","@rosen-bridge/minimum-fee":"^3.1.0","@ar-packages-changeit/sdk-constant":"^0.0.1","@rosen-bridge/tokens":"^4.0.1"},"devDependencies":{"@vitest/coverage-istanbul":"^3.1.4","tsx":"^4.20.6","vitest":"^3.1.4"},"engines":{"node":">=22.18.0"},"gitHead":"caab3cbec891a1ff9894f92308b9ad2b2da72166","_id":"@ar-packages-changeit/sdk-common@0.0.1","bugs":{"url":"https://github.com/rosen-bridge/rosen-sdk/issues"},"homepage":"https://github.com/rosen-bridge/rosen-sdk#readme","_nodeVersion":"22.18.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-py1ufwHZ/U54OU/JxTtsNIN1RGYY6H4TLb/Q9+9uiVWMWDfHjPNJln1vTsHrHpaT0UeOgBH1oNAXsvvmdEYXpQ==","shasum":"148136021d496cebeeef9b05161ffd061d684e2c","tarball":"https://registry.npmjs.org/@ar-packages-changeit/sdk-common/-/sdk-common-0.0.1.tgz","fileCount":19,"unpackedSize":187519,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICOK6h+H/zQYSyx+468yTvaqqRTYFT75MWq1sWKk+So0AiApGAiGZk5L2viQLgBkasJOPOhii4O9TwNMltNlqcvDgw=="}]},"_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/sdk-common_0.0.1_1763574235726_0.400434563020428"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T14:14:27.929Z","modified":"2025-11-19T17:43:56.259Z","0.0.0":"2025-11-19T14:14:28.214Z","0.0.1-ab7d7d42":"2025-11-19T14:19:19.531Z","0.0.1":"2025-11-19T17:43:56.000Z"},"bugs":{"url":"https://github.com/rosen-bridge/rosen-sdk/issues"},"author":{"name":"Rosen Team"},"license":"MIT","homepage":"https://github.com/rosen-bridge/rosen-sdk#readme","repository":{"type":"git","url":"git+https://github.com/rosen-bridge/rosen-sdk.git"},"description":"This project includes common functions that clients require to interact with and create transactions on Rosen Bridge","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"readme":"# @ar-packages-changeit/sdk-common\n\n## Table of contents\n\n- [@ar-packages-changeit/sdk-common](#rosen-bridgesdk-common)\n  - [Table of contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [Initialize the SDK](#initialize-the-sdk)\n    - [Query chains and tokens](#query-chains-and-tokens)\n    - [Fee utilities](#fee-utilities)\n    - [Error handling](#error-handling)\n\n## Introduction\n\nThis project includes common functions that clients require to interact with and create transactions on Rosen Bridge.\n\n## Installation\n\nnpm:\n\n```sh\nnpm i @ar-packages-changeit/sdk-common\n```\n\nyarn:\n\n```sh\nyarn add @ar-packages-changeit/sdk-common\n```\n\n## Usage\n\n### Initialize the SDK\n\nInitialize the singleton with your token config and minimum fee NFT parameters.\n\n```typescript\nimport { RosenUserInterface } from '@ar-packages-changeit/sdk-common';\n\nimport { DummyLogger } from '@rosen-bridge/abstract-logger';\nimport { TokenMap } from '@rosen-bridge/tokens';\n\nconst rosenTokens = [\n  {\n    ergo: {\n      tokenId: 'erg',\n      name: 'ERG',\n      decimals: 9,\n      type: 'native',\n      residency: 'native',\n      extra: {},\n    },\n    cardano: {\n      tokenId:\n        '04b95368393c821f180deee8229fbd941baaf9bd748ebcdbf7adbb14.7273455247',\n      name: 'rsERG',\n      decimals: 9,\n      type: 'CIP26',\n      residency: 'wrapped',\n      extra: {\n        policyId: '04b95368393c821f180deee8229fbd941baaf9bd748ebcdbf7adbb14',\n        assetName: '7273455247',\n      },\n    },\n  },\n];\n\nconst tokenMap = new TokenMap();\nawait tokenMap.updateConfigByJson(rosenTokens);\n\nconst sdkInterface = new RosenUserInterface(\n  tokenMap, // TokenMap\n  'minimumFeeNFT-box-nft', // Minimum fee NFT id\n  'explorer', // Ergo network type: 'explorer' | 'node'\n  'https://explorer.ergoplatform.com', // Node/explorer API base URL used by minimum-fee reader\n  new DummyLogger(), // Optional logger\n);\n```\n\n### Query chains and tokens\n\n- Get the list of supported chains:\n\n```typescript\nconst chains = sdkInterface.getSupportedChains(); // e.g. ['ergo', 'cardano']\n```\n\n- Get supported tokens on a specific chain:\n\n```typescript\nconst ergoTokens = sdkInterface.getChainSupportedTokens('ergo');\n```\n\n- Find which chains support a token from a given chain:\n\n```typescript\nconst chainsForToken = sdkInterface.getAvailableChainsForToken('ergo', 'erg');\n```\n\n- Get token details on a target chain:\n\n```typescript\nconst adaOnCardano = sdkInterface.getTokenDetailsOnTargetChain(\n  'ergo',\n  'erg',\n  'cardano',\n);\n```\n\n### Fee utilities\n\n- Minimum transferable amount for a token, considering bridge and network fees:\n\n```typescript\nconst minAmount = await sdkInterface.getMinimumTransferAmountForToken(\n  'ergo', // fromChain\n  'cardano', // toChain\n  'erg', // tokenId on fromChain\n  1234567, // current height on fromChain\n);\n```\n\n- Calculate bridge and network fee for a given transfer amount:\n\n```typescript\nconst { bridgeFee, networkFee } = await sdkInterface.getFeeByTransferAmount(\n  'ergo', // fromChain\n  'erg', // tokenId\n  'cardano', // toChain\n  1234567, // height on fromChain\n  1000000000n, // actualAmount in asset unit (ERG in this example)\n);\n```\n\n- Convert fee from target chain native unit into a token’s asset unit:\n\n```typescript\nconst feeInAssetUnit = await sdkInterface.convertFeeToAssetUnit(\n  'erg', // tokenId on fromChain\n  'cardano', // toChain\n  'ergo', // fromChain\n  1234567, // height on toChain\n  200000n, // fee in toChain native unit\n);\n```\n\n### Error handling\n\nThese exceptions can be thrown by the SDK and are re-exported:\n\n- TokenNotFoundException\n- ChainNotSupportedException\n- FeeRetrievalFailureException\n- ImpossibleBehaviorException\n\n```\n\nNote:\n- You should pass a realistic tokens configuration for your environment.\n- Use your actual minimum-fee NFT and network URL for correct fee retrieval.\n```\n","readmeFilename":"README.md"}