{"_id":"@blockbima/xrpl-integration","_rev":"2-98e12cf0fe4ce7ab475a1abd7393d080","name":"@blockbima/xrpl-integration","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@blockbima/xrpl-integration","version":"0.1.0","keywords":["xrpl","xrp","blockbima","blockchain","cryptocurrency"],"author":{"name":"Mohammed Mwijaa","email":"mm.mwijaa@gmail.com"},"license":"MIT","_id":"@blockbima/xrpl-integration@0.1.0","maintainers":[{"name":"mmwijaa","email":"mm.mwijaa@gmail.com"}],"homepage":"https://github.com/shamba-network/xrpl-integration","bugs":{"url":"https://github.com/shamba-network/xrpl-integration/issues"},"dist":{"shasum":"66318f56165baf840b4dce1ef0f64d58ffb42a6b","tarball":"https://registry.npmjs.org/@blockbima/xrpl-integration/-/xrpl-integration-0.1.0.tgz","fileCount":31,"integrity":"sha512-Fme05p+dh5ARtNiHKg8poR6dN0NOodeDaHqDXtLkO4nxSWAiti2zCwwfEUaTYePFq/HnZjUVBbztSBdjEahjiQ==","signatures":[{"sig":"MEQCIAsJ2xGEi3A8OUBMFjdA+FuVQy8lyRQuv6VNMuWZW8jgAiBYKGRUKN5bR2+ND8GA9H79jerMybNlb0RvZKrY/Xj89Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93125},"docs":"https://github.com/shamba-network/xrpl-integration/blob/main/README.md","main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"414f1e65bd2a43ab488859930f7ebd52df223318","scripts":{"dev":"ts-node src/index.ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"mmwijaa","email":"mm.mwijaa@gmail.com"},"repository":{"url":"git+https://github.com/shamba-network/xrpl-integration.git","type":"git"},"_npmVersion":"11.1.0","description":"A lightweight wrapper for the XRP Ledger using xrpl.js","directories":{},"_nodeVersion":"22.13.1","dependencies":{"xrpl":"^4.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.0.10"},"_npmOperationalInternal":{"tmp":"tmp/xrpl-integration_0.1.0_1770644681221_0.17066046002740998","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@blockbima/xrpl-integration","version":"0.1.2","description":"A lightweight wrapper for the XRP Ledger using xrpl.js","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"dev":"ts-node src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build","clean":"rm -rf dist","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage"},"keywords":["xrpl","xrp","blockbima","blockchain","cryptocurrency"],"author":{"name":"Mohammed Mwijaa","email":"mm.mwijaa@gmail.com"},"license":"MIT","homepage":"https://github.com/shamba-network/xrpl-integration","bugs":{"url":"https://github.com/shamba-network/xrpl-integration/issues"},"docs":"https://github.com/shamba-network/xrpl-integration/blob/main/README.md","type":"module","engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/shamba-network/xrpl-integration.git"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^25.0.10","jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.9.3"},"dependencies":{"xrpl":"^4.5.0"},"_id":"@blockbima/xrpl-integration@0.1.2","gitHead":"42c02d5e6f7ab97d0eedb6c20ec7dfce34388b32","_nodeVersion":"22.13.1","_npmVersion":"11.1.0","dist":{"integrity":"sha512-hwtKpM8h/zXoHm0fYOJaBzOqUwEkOpd4Tm+eIyTmNQdo2RClC8u/dRmeVL6N9p4efUTalzYYjpmHG6hOIXOapw==","shasum":"6094a2dd4b6bf74586b586d501899e75ed48f7a2","tarball":"https://registry.npmjs.org/@blockbima/xrpl-integration/-/xrpl-integration-0.1.2.tgz","fileCount":31,"unpackedSize":95012,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB4bVOEJJhErnJfQw3b5PgnN/eHwOdfD8bbwivCWkmuoAiEAlw1p+Nb/htgmE7oBfWEUE8Sja3oT/pvC/vtRTiN2RFY="}]},"_npmUser":{"name":"mmwijaa","email":"mm.mwijaa@gmail.com"},"directories":{},"maintainers":[{"name":"mmwijaa","email":"mm.mwijaa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xrpl-integration_0.1.2_1770816477296_0.13349503084210324"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-09T13:44:41.102Z","modified":"2026-02-11T13:27:57.589Z","0.1.0":"2026-02-09T13:44:41.358Z","0.1.2":"2026-02-11T13:27:57.451Z"},"bugs":{"url":"https://github.com/shamba-network/xrpl-integration/issues"},"author":{"name":"Mohammed Mwijaa","email":"mm.mwijaa@gmail.com"},"license":"MIT","homepage":"https://github.com/shamba-network/xrpl-integration","keywords":["xrpl","xrp","blockbima","blockchain","cryptocurrency"],"repository":{"type":"git","url":"git+https://github.com/shamba-network/xrpl-integration.git"},"description":"A lightweight wrapper for the XRP Ledger using xrpl.js","maintainers":[{"name":"mmwijaa","email":"mm.mwijaa@gmail.com"}],"readme":"# XRPL Integration\n\nA lightweight TypeScript wrapper for the XRP Ledger using [xrpl.js](https://github.com/XRPLF/xrpl.js). Implements a singleton pattern for easy integration into any application.\n\n## Features\n\n- Singleton client pattern for connection management\n- XRP and IOU token balance queries\n- XRP and IOU token transfers\n- Trustline verification\n- Full TypeScript support with exported types\n- Works with Mainnet, Testnet, and Devnet\n\n## Installation\n\n```bash\nnpm install @blockbima/xrpl-integration\n```\n\n## Quick Start\n\n```typescript\nimport { XRPLClient, NETWORKS } from \"xrpl-integration\";\nimport { Wallet } from \"xrpl\";\n\n// Get singleton instance (defaults to testnet)\nconst client = XRPLClient.getInstance(NETWORKS.TESTNET);\n\n// Connect to the network\nawait client.connect();\n\n// Check XRP balance\nconst balance = await client.getXRPBalance(\"rAddress...\");\nconsole.log(`Balance: ${balance.balance} XRP`);\n\n// Disconnect when done\nawait client.disconnect();\n```\n\n## API Reference\n\n### Connection\n\n```typescript\n// Get client instance\nconst client = XRPLClient.getInstance(networkUrl?: string);\n\n// Connect/disconnect\nawait client.connect();\nawait client.disconnect();\n\n// Check connection status\nclient.isConnected; // boolean\n\n// Reset instance (for switching networks)\nawait XRPLClient.resetInstance();\n```\n\n### Balance Queries\n\n```typescript\n// XRP balance\nconst xrpBalance = await client.getXRPBalance(address);\n// Returns: { address, balance, balanceDrops }\n\n// IOU token balance\nconst iouBalance = await client.getIOUBalance(address, currency, issuer);\n// Returns: { address, currency, issuer, balance }\n```\n\n### Transfers\n\n```typescript\n// Send XRP\nconst result = await client.sendXRP({\n  wallet,           // xrpl Wallet instance\n  destination,      // recipient address\n  amount,           // amount in XRP (not drops)\n  destinationTag?,  // optional\n  memo?,            // optional\n});\n\n// Send IOU tokens\nconst result = await client.sendIOU({\n  wallet,\n  destination,\n  currency,         // e.g., \"USD\"\n  issuer,           // token issuer address\n  amount,\n  destinationTag?,\n  memo?,\n});\n\n// Returns: { success, hash, ledgerIndex, response }\n```\n\n### Trustlines\n\n```typescript\n// Check specific trustline\nconst trustline = await client.checkTrustline(address, currency, issuer);\n// Returns: { exists, currency, issuer, balance, limit, ... }\n\n// Get all trustlines for an account\nconst trustlines = await client.getAllTrustlines(address);\n```\n\n### Testnet Utilities\n\n```typescript\n// Fund a wallet on testnet/devnet\nconst wallet = await client.fundWallet();\n// Or fund an existing wallet\nconst funded = await client.fundWallet(existingWallet);\n```\n\n## Network Constants\n\n```typescript\nimport { NETWORKS } from \"xrpl-integration\";\n\nNETWORKS.MAINNET       // wss://xrplcluster.com/\nNETWORKS.MAINNET_RIPPLE // wss://s1.ripple.com/\nNETWORKS.TESTNET       // wss://s.altnet.rippletest.net:51233/\nNETWORKS.DEVNET        // wss://s.devnet.rippletest.net:51233/\n```\n\n## Error Handling\n\nAll methods throw `XRPLClientError` with specific error types:\n\n```typescript\nimport { XRPLClientError, XRPLClientErrorType } from \"xrpl-integration\";\n\ntry {\n  await client.getXRPBalance(\"invalid\");\n} catch (error) {\n  if (error instanceof XRPLClientError) {\n    switch (error.type) {\n      case XRPLClientErrorType.NOT_CONNECTED:\n      case XRPLClientErrorType.INVALID_ADDRESS:\n      case XRPLClientErrorType.ACCOUNT_NOT_FOUND:\n      case XRPLClientErrorType.TRANSACTION_FAILED:\n        // Handle specific error\n    }\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}