{"_id":"@ar-packages-changeit/sdk-ergo","_rev":"3-c26a660b98c3f41d02e2d5cbc8b952ee","name":"@ar-packages-changeit/sdk-ergo","dist-tags":{"latest":"0.0.1","develop":"0.0.1-ab7d7d42"},"versions":{"0.0.0":{"name":"@ar-packages-changeit/sdk-ergo","version":"0.0.0","author":{"name":"Rosen Team"},"license":"MIT","_id":"@ar-packages-changeit/sdk-ergo@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":"08d3c6415e5c5182738f62231d51e6517c236470","tarball":"https://registry.npmjs.org/@ar-packages-changeit/sdk-ergo/-/sdk-ergo-0.0.0.tgz","fileCount":14,"integrity":"sha512-HoPgZLxyihgThVXtDO8/HBVEgAeX68QuH/bZDiOhYDjh3vS5gr9ZY03wmP7UjUS63B0jDxncwNx3amgh7xPHdQ==","signatures":[{"sig":"MEQCIF6Rp4fakNorMg+Ul7bnoO7/vPcdyGGDVQn7qwIHDaJwAiAY7RWJw2sp1sYIK7pNk08WLmgzUN7gpXt2A0nPjDIlig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41350},"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 clean && npm run build && npm run test -- --run && 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":"Ergo chain specific functions of Rosen SDK to interact with and create transactions on Rosen Bridge","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@rosen-bridge/tokens":"^4.0.1","ergo-lib-wasm-nodejs":"0.24.1","@rosen-bridge/sdk-abstract":"^0.0.0","@rosen-bridge/sdk-constant":"^0.0.0","@rosen-bridge/abstract-logger":"^3.0.1","@rosen-bridge/ergo-box-selection":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^3.1.4","@vitest/coverage-istanbul":"^3.1.4"},"_npmOperationalInternal":{"tmp":"tmp/sdk-ergo_0.0.0_1763561668157_0.6282646438386019","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-ab7d7d42":{"name":"@ar-packages-changeit/sdk-ergo","version":"0.0.1-ab7d7d42","author":{"name":"Rosen Team"},"license":"MIT","_id":"@ar-packages-changeit/sdk-ergo@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":"ea6a5bd55a542f3c297182a27579c21e91835ee7","tarball":"https://registry.npmjs.org/@ar-packages-changeit/sdk-ergo/-/sdk-ergo-0.0.1-ab7d7d42.tgz","fileCount":15,"integrity":"sha512-z8TamCUGDc9kMxgH2K/MYmDMf9Gl1zWSwwz5iRCCVAIjn79R0fW4LqUcR4qAiC7wmY5gNM9WudK9nWeSA2B5NQ==","signatures":[{"sig":"MEUCIQDCuRJ3WgVUIPHW2rHe9jrVDK9vrhG4j18qb1PVfL/f9AIgKdKUThuOuD76rFTZX56e6Ppmhv2rfvRwrVAUVdvCXfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41439},"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 clean && npm run build && npm run test -- --run && 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":"Ergo chain specific functions of Rosen SDK to interact with and create transactions on Rosen Bridge","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@rosen-bridge/tokens":"^4.0.1","ergo-lib-wasm-nodejs":"0.24.1","@rosen-bridge/sdk-abstract":"^0.0.0","@rosen-bridge/sdk-constant":"^0.0.0","@rosen-bridge/abstract-logger":"^3.0.1","@rosen-bridge/ergo-box-selection":"^2.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-ergo_0.0.1-ab7d7d42_1763561959184_0.6525826845559557","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@ar-packages-changeit/sdk-ergo","version":"0.0.1","description":"Ergo chain specific functions of Rosen SDK 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 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-logger":"^3.0.1","@rosen-bridge/ergo-box-selection":"^2.0.1","@ar-packages-changeit/sdk-abstract":"^0.0.1","@ar-packages-changeit/sdk-constant":"^0.0.1","@rosen-bridge/tokens":"^4.0.1","ergo-lib-wasm-nodejs":"0.24.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-ergo@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-jonpWPVDyt0dU/qdd6E/2NVdWQHQJMVbqXp/EzqzOSEDeOnGZf1Pm7VKuZf0YmN/T5B6a8XknGeEC44hD0e4Hw==","shasum":"2bae3908d51265208d53ef34e05cddac4a8bfb3e","tarball":"https://registry.npmjs.org/@ar-packages-changeit/sdk-ergo/-/sdk-ergo-0.0.1.tgz","fileCount":16,"unpackedSize":98854,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzqMaY/SfxExyt8UZ3ZXnMIvipDK4Q02FBMnwPvvLIUAIgOD5gkh9631RZcazq+dJEBKqYP9YCznjHHzb3D4e0IJE="}]},"_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-ergo_0.0.1_1763574235329_0.0028613881151975384"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T14:14:28.082Z","modified":"2025-11-19T17:43:55.752Z","0.0.0":"2025-11-19T14:14:28.342Z","0.0.1-ab7d7d42":"2025-11-19T14:19:19.402Z","0.0.1":"2025-11-19T17:43:55.573Z"},"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":"Ergo chain specific functions of Rosen SDK to interact with and create transactions on Rosen Bridge","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"readme":"# @ar-packages-changeit/sdk-ergo\n\n## Table of contents\n\n- [@ar-packages-changeit/sdk-ergo](#rosen-bridgesdk-ergo)\n  - [Table of contents](#table-of-contents)\n  - [Introduction](#introduction)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [Initialize the SDK](#initialize-the-sdk)\n    - [Generate Lock Transactions](#generate-lock-transactions)\n    - [Constants and Types](#constants-and-types)\n    - [Error handling](#error-handling)\n\n## Introduction\n\nThis package provides Ergo chain-specific functionality for the Rosen Bridge SDK, enabling you to interact with and create transactions on the Rosen Bridge for the Ergo blockchain.\n\n## Installation\n\nnpm:\n\n```sh\nnpm i @ar-packages-changeit/sdk-ergo\n```\n\nyarn:\n\n```sh\nyarn add @ar-packages-changeit/sdk-ergo\n```\n\n## Usage\n\n### Initialize the SDK\n\nTo use the SDK, initialize an instance of `ErgoRosenChainSDK` with your token configuration and lock address:\n\n```typescript\nimport { NETWORKS } from '@ar-packages-changeit/sdk-constant';\nimport { ErgoRosenChainSDK } from '@ar-packages-changeit/sdk-ergo';\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 lockAddress = 'nB3L2P...'; // Rosen Ergo lock address\n\nconst sdk = new ErgoRosenChainSDK(\n  tokenMap, // TokenMap instance\n  lockAddress, // Lock address for bridge\n  undefined, // Optional: minimum box value (defaults to 400000n)\n  undefined, // Optional: transaction fee (defaults to 1000000n)\n  console, // Optional: new DummyLogger() or any logger\n);\n```\n\n### Generate Lock Transactions\n\nYou can generate an unsigned lock transaction for bridging assets from Ergo to another chain:\n\n```typescript\nconst unsignedTx = await sdk.generateLockTransaction(\n  'tokenId', // Token ID on Ergo (e.g., 'erg' for native ERG)\n  NETWORKS.YOUR_TARGET_CHAIN, // Target chain (e.g., 'cardano')\n  'toAddress', // Recipient address on target chain\n  'fromAddress', // Sender's Ergo address\n  300_000_000n, // Unwwrapped Amount to bridge (in token's smallest unit)\n  3_000_000n, // Unwwrapped Bridge fee\n  1_000_000n, // Unwwrapped Network fee\n  utxoIterator, // Iterator or async iterator of available Ergo UTXOs\n  {\n    networkHeight: 1599000,\n  },\n);\n\n// The result is an object containing the unsigned transaction and related data.\nconsole.log(unsignedTx.unsignedTxProxy);\n```\n\n### Constants and Types\n\nThe SDK exports several useful constants and types:\n\n- `MIN_BOX_VALUE`: Minimum value for an Ergo box (default: 400000n)\n- `FEE`: Default transaction fee (default: 1000000n)\n- Types such as `UnsignedErgoTxProxy`, `UnsignedGenerateTxProxy`, etc., are available for strong typing of transaction data.\n\n### Error handling\n\nThe SDK may throw the following error:\n\n- `InsufficientAssetsException`: Thrown if the provided UTXOs do not cover the required amount for the transaction.\n\nExample:\n\n```typescript\nimport { InsufficientAssetsException } from '@ar-packages-changeit/sdk-ergo';\n\ntry {\n  // ... call generateLockTransaction ...\n} catch (e) {\n  if (e instanceof InsufficientAssetsException) {\n    // Handle insufficient assets\n  } else {\n    throw e;\n  }\n}\n```\n\n---\n\n**Note:**\n\n- You must provide a realistic token configuration and valid lock address for your environment.\n- Transaction signing are not handled by this SDK; you must provide UTXOs and sign the transaction as appropriate for your application.\n","readmeFilename":"README.md"}