{"_id":"@desync-labs/rasa-frontend-sdk","_rev":"2-5bf71a18df8d9faa5e439349e08ed1af","name":"@desync-labs/rasa-frontend-sdk","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@desync-labs/rasa-frontend-sdk","version":"0.0.1","author":{"name":"Desync labs"},"license":"ISC","_id":"@desync-labs/rasa-frontend-sdk@0.0.1","maintainers":[{"name":"desync-labs","email":"anton@desynclabs.com"}],"homepage":"https://github.com/desync-labs/rasa-frontend-sdk#readme","bugs":{"url":"https://github.com/desync-labs/rasa-frontend-sdk/issues"},"dist":{"shasum":"0f0dced8908056318a0b86b275f8113271503dfd","tarball":"https://registry.npmjs.org/@desync-labs/rasa-frontend-sdk/-/rasa-frontend-sdk-0.0.1.tgz","fileCount":262,"integrity":"sha512-p/ZNqpBgr1QowoLxgnzB+SJQFL9RkQJvc6LqxGrTuIIR+JxZbzbY6nci66lDgo0UOfekXsjKA8WquAF7d2m5+w==","signatures":[{"sig":"MEUCIQCZs3oqdzBmED/Kar0cSd7vhYgvQ4igwnx1Nf/mO8FbRgIgKb0XfH8Ic6ds6szXdfOxtzgU8Z716Zbf0uEmyvLX8lY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1430735},"main":"./dist/cjs/index.js","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","gitHead":"5436aeb583e6105ba45f2116458555faf3377fee","scripts":{"lint":"eslint src/**/*.ts","build":"tsc -p ./tsconfig.json && tsc -p ./tsconfig.json --module commonjs --outDir ./dist/cjs","lint:fix":"npm run lint -- --fix","prettier":"npx prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"desync-labs","email":"anton@desynclabs.com"},"repository":{"url":"git://github.com/desync-labs/rasa-frontend-sdk.git","type":"git"},"_npmVersion":"9.6.7","description":"Package with methods for formatting data and executing transactions on the RASA protocol.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"ethers":"^5.5.0","bignumber.js":"^9.1.2","eventemitter3":"^5.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","nodemon":"^3.0.1","prettier":"^2.4.1","typescript":"5.1.6","@types/cors":"^2.8.15","ts-node-dev":"^2.0.0","eslint-plugin-import":"^2.25.2","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.40.0","@typescript-eslint/eslint-plugin":"^5.40.0"},"_npmOperationalInternal":{"tmp":"tmp/rasa-frontend-sdk_0.0.1_1729251236333_0.10918477319468378","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@desync-labs/rasa-frontend-sdk","version":"0.0.2","description":"Package with methods for formatting data and executing transactions on the RASA protocol.","scripts":{"build":"rm -r dist && tsc -p ./tsconfig.json && tsc -p ./tsconfig.json --module commonjs --outDir ./dist/cjs","lint":"eslint src/**/*.ts","lint:fix":"npm run lint -- --fix","prettier":"npx prettier --write .","prepublishOnly":"npm run build"},"author":{"name":"Desync labs"},"license":"ISC","repository":{"type":"git","url":"git://github.com/desync-labs/rasa-frontend-sdk.git"},"publishConfig":{"access":"public"},"devDependencies":{"@types/cors":"^2.8.15","@typescript-eslint/eslint-plugin":"^5.40.0","@typescript-eslint/parser":"^5.40.0","eslint":"^8.0.0","eslint-config-prettier":"^8.3.0","eslint-plugin-import":"^2.25.2","eslint-plugin-prettier":"^4.0.0","nodemon":"^3.0.1","prettier":"^2.4.1","ts-node-dev":"^2.0.0","typescript":"5.1.6"},"main":"./dist/cjs/index.js","module":"./dist/esm/index.js","types":"./dist/esm/index.d.ts","dependencies":{"bignumber.js":"^9.1.2","ethers":"^5.5.0","eventemitter3":"^5.0.1"},"gitHead":"a4e1aea2cf21228fec7cc742417d7d848baa6833","bugs":{"url":"https://github.com/desync-labs/rasa-frontend-sdk/issues"},"homepage":"https://github.com/desync-labs/rasa-frontend-sdk#readme","_id":"@desync-labs/rasa-frontend-sdk@0.0.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NdVuSVR79hRPfaQNoETPdTdSgu908Jd9fNX6sm0PlK6HltzVimhN1V2mQ+VxU1rgVQA2FEmWApYdKFHHwyjc6A==","shasum":"3a5c596425f1a1191434b3a49a8de4b7fd03ebd9","tarball":"https://registry.npmjs.org/@desync-labs/rasa-frontend-sdk/-/rasa-frontend-sdk-0.0.2.tgz","fileCount":262,"unpackedSize":1431642,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDITVioCF1oEMmi+jdlHB+8GsK4l2EfLWaBX+CnzDe0tgIgNZjfYOEGtdnXuY1vFCt0tjvc5n2z2hQEkIJuNpbtdeI="}]},"_npmUser":{"name":"vitalii47","email":"vetalion1@gmail.com"},"directories":{},"maintainers":[{"name":"vitalii47","email":"vetalion1@gmail.com"},{"name":"vitalii.koval","email":"vitalii.koval@desynclabs.com"},{"name":"desync-labs","email":"anton@desynclabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rasa-frontend-sdk_0.0.2_1729255519600_0.8952112748994887"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-18T11:33:56.245Z","modified":"2024-10-18T12:45:20.094Z","0.0.1":"2024-10-18T11:33:56.598Z","0.0.2":"2024-10-18T12:45:19.851Z"},"bugs":{"url":"https://github.com/desync-labs/rasa-frontend-sdk/issues"},"author":{"name":"Desync labs"},"license":"ISC","homepage":"https://github.com/desync-labs/rasa-frontend-sdk#readme","repository":{"type":"git","url":"git://github.com/desync-labs/rasa-frontend-sdk.git"},"description":"Package with methods for formatting data and executing transactions on the RASA protocol.","maintainers":[{"name":"vitalii47","email":"vetalion1@gmail.com"},{"name":"vitalii.koval","email":"vitalii.koval@desynclabs.com"},{"name":"desync-labs","email":"anton@desynclabs.com"}],"readme":"# @desync-labs/rasa-frontend-sdk\n\nThe `@desync-labs/rasa-frontend-sdk` package offers a set of services which allow to interact with\nprotocol smart contracts via rpc.\n\n### Installation\n\nInstall the package in your project directory with:\n\n```sh\n// with npm\nnpm install @desync-labs/rasa-frontend-sdk\n\n// with yarn\nyarn add @desync-labs/rasa-frontend-sdk\n```\n\n<br />\n\n### Compatibility\n\nThis library has a peer dependency of [ethers.js](https://docs.ethers.org/v5/)\nJsonRpcProvider.\n\nTo install the correct version, run:\n\n```sh\nnpm install ethers@5.5.0\n```\n\n<br />\n\n- a. [PoolService](#pool-service)\n  - [getUserTokenBalance](#getUserTokenBalance)\n  - [getTokenDecimals](#getTokenDecimals)\n  - [getTokenSymbol](#getTokenSymbol)\n  - [getTotalSupply](#getTotalSupply)\n  - [getCollateralTokenAddress](#getCollateralTokenAddress)\n  - [setChainId](#setChainId)\n  - [setProvider](#setProvider)\n- b. [PositionService](#position-service)\n  - [openPosition](#openPosition)\n  - [topUpPositionAndBorrow](#topUpPositionAndBorrow)\n  - [topUpPosition](#topUpPosition)\n  - [createProxyWallet](#createProxyWallet)\n  - [closePosition](#closePosition)\n  - [partiallyClosePosition](#partiallyClosePosition)\n  - [approve](#approve)\n  - [approvalStatus](#approvalStatus)\n  - [approveStableCoin](#approveStableCoin)\n  - [getProxyWallet](#getProxyWallet)\n  - [balanceStableCoin](#balanceStableCoin)\n  - [approvalStatusStableCoin](#approvalStatusStableCoin)\n  - [getPositionDebtCeiling](#getPositionDebtCeiling)\n  - [isDecentralizedMode](#isDecentralizedMode)\n  - [isWhitelisted](#isWhitelisted)\n  - [setProvider](#setProvider)\n  - [setChainId](#setChainId)\n- c. [ProposalService](#proposal-service)\n  - [createProposal](#createProposal)\n  - [executeProposal](#executeProposal)\n  - [queueProposal](#queueProposal)\n  - [castVote](#castVote)\n  - [hasVoted](#hasVoted)\n  - [viewProposalState](#viewProposalState)\n  - [nextAcceptableProposalTimestamp](#nextAcceptableProposalTimestamp)\n  - [getVBalance](#getVBalance)\n  - [quorum](#quorum)\n  - [proposalVotes](#proposalVotes)\n  - [proposalThreshold](#proposalThreshold)\n  - [setProvider](#setProvider)\n  - [setChainId](#setChainId)\n- d. [StakingService](#staking-service)\n  - [createLock](#createLock)\n  - [handleUnlock](#handleUnlock)\n  - [handlePartiallyUnlock](#handlePartiallyUnlock)\n  - [handleEarlyWithdrawal](#handleEarlyWithdrawal)\n  - [handleClaimRewards](#handleClaimRewards)\n  - [handleWithdrawAll](#handleWithdrawAll)\n  - [approveStakingRASA](#approveStakingRASA)\n  - [approvalStatusStakingRASA](#approvalStatusStakingRASA)\n  - [getStreamClaimableAmountPerLock](#getStreamClaimableAmountPerLock)\n  - [getStreamClaimableAmount](#getStreamClaimableAmount)\n  - [getMinLockPeriod](#getMinLockPeriod)\n  - [getMaxLockPositions](#getMaxLockPositions)\n  - [setProvider](#setProvider)\n  - [setChainId](#setChainId)\n- e. [VaultService](#vault-service)\n  - [deposit](#deposit)\n  - [withdraw](#withdraw)\n  - [redeem](#redeem)\n  - [approve](#approve)\n  - [approvalStatus](#approvalStatus)\n  - [previewDeposit](#previewDeposit)\n  - [previewWithdraw](#previewWithdraw)\n  - [previewRedeem](#previewRedeem)\n  - [getDepositLimit](#getDepositLimit)\n  - [kycPassed](#kycPassed)\n  - [getTradeFlowVaultDepositEndDate](#getTradeFlowVaultDepositEndDate)\n  - [getTradeFlowVaultLockEndDate](#getTradeFlowVaultLockEndDate)\n  - [getMinUserDeposit](#getMinUserDeposit)\n  - [isStrategyShutdown](#isStrategyShutdown)\n  - [setProvider](#setProvider)\n  - [setChainId](#setChainId)\n\n<br />\n\n### Usage Example\n\nEach Service require <code>provider</code> and <code>chainId</code> in\nconstructor. Also, when provider or chainId changed need to pass new provider or\nchainId to service via <code>setProvider</code> and <code>setChainId</code>\n\nExample of one main service <code>RootService</code>.\n\n```ts\nimport {\n  // Services\n  PoolService,\n  PositionService,\n  ProposalService,\n  StakingService,\n  VaultService,\n  // Interfaces\n  IPoolService,\n  IPositionService,\n  IProposalService,\n  IStakingService,\n  IVaultService,\n} from 'rasa-sdk';\nimport { JsonRpcProvider } from '@ethersproject/providers';\n/**\n * Cache for contract instances.\n */\nimport { Web3Utils } from 'rasa-sdk';\n/**\n * Apothen Testnet, for Mainnet use 50.\n */\nconst DEFAULT_CHAIN_ID = 51;\n/**\n * Read-only mode.\n * Use public RPC for read on-chain data.\n */\nconst getDefaultProvider = () =>\n  new JsonRpcProvider('https://erpc.apothem.network/');\n\nexport class RootService {\n  /*\n   * Services\n   */\n  poolService: IPoolService;\n  positionService: IPositionService;\n  proposalService: IProposalService;\n  stakingService: IStakingService;\n  vaultService: IVaultService;\n\n  chainId = DEFAULT_CHAIN_ID;\n\n  provider: JsonRpcProvider;\n\n  serviceList = [\n    'poolService',\n    'positionService',\n    'proposalService',\n    'stakingService',\n    'vaultService',\n  ];\n\n  constructor() {\n    this.provider = getDefaultProvider();\n\n    this.poolService = new PoolService(this.provider, this.chainId);\n    this.positionService = new PositionService(this.provider, this.chainId);\n    this.proposalService = new ProposalService(this.provider, this.chainId);\n    this.stakingService = new StakingService(this.provider, this.chainId);\n    this.vaultService = new VaultService(this.provider, this.chainId);\n  }\n\n  /**\n   * When chain id changed need to call this function.\n   * @param chainId\n   */\n  setChainId(chainId: number) {\n    this.chainId = chainId;\n    /**\n     * Pass chainId to services.\n     */\n    this.serviceList.forEach(serviceName => {\n      this[serviceName].setChainId(chainId);\n    });\n  }\n\n  /**\n   * Provider is JsonRpcProvider provider instance\n   * It can be JsonRpcProvider or WebSocketProvider or Web3Provider\n   * @param provider\n   */\n  setProvider(provider: JsonRpcProvider) {\n    this.provider = provider;\n    /**\n     * When change provider need to reset contracts cache.\n     */\n    Web3Utils.clearContracts();\n    /**\n     * Pass provider to services.\n     */\n    this.serviceList.forEach(serviceName => {\n      this[serviceName].setProvider(provider);\n    });\n  }\n}\n```\n\nServices List:\n\n- PoolService - helper functions for retrieve on-chain data for FXD pools, this\n  service has no transaction methods.\n- PositionService - all methods for retrieve on-chain data about opened FXD\n  positions, and transaction methods for manage positions.\n- ProposalService - DAO service for create proposals and vote for them.\n- StakingService - DAO service for stake RASA governance token and get revenue\n  also get vRASA token which allow to create proposal and increase voting power.\n- VaultService - Vault service for deposit assets and withdrawal.\n","readmeFilename":"README.md"}