{"_id":"@blockswaplab/k2-sdk","_rev":"21-f90d1e1abbd34e2373e41b62c31c70d6","name":"@blockswaplab/k2-sdk","dist-tags":{"latest":"2.0.6"},"versions":{"1.0.0":{"name":"@blockswaplab/k2-sdk","version":"1.0.0","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"3a54eb2de5c0cc302665d24a08db63c0508d20f7","_id":"@blockswaplab/k2-sdk@1.0.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Mn+ZsnbE8GD0PiRaPA0c54PfUkOPBZHiOkx6FAWTfAjAopocKVX1BNdz+OHoLzCiqhXcQCJmuABgPMgkvq+Y4A==","shasum":"960d860054fc5bec212b3320c92ad6c08f9fa61e","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.0.tgz","fileCount":22,"unpackedSize":88326,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDI/o5VvHalmlreWI7IG2ud7zi9W8PAOcrL+DY78HAI4wIhAN2tb32KvDSujEApEy2VWD8FUxdMMkDWqubqKTP72Xfl"}]},"_npmUser":{},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.0_1697025476073_0.7109678342848647"},"_hasShrinkwrap":false},"1.0.1":{"name":"@blockswaplab/k2-sdk","version":"1.0.1","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"7da56af3706dae5ff729d107178d80ec583670a1","_id":"@blockswaplab/k2-sdk@1.0.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2HJgvJDejrCxLshaCEhLFO1Lk/+6E0D5+n+bkZGDW0OYMi+1S4o/WpU5ySohCs8MZN1vtFAjEjzbD00l/eqawg==","shasum":"5eaf08f982c243520079f59d54318804cdb91b15","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.1.tgz","fileCount":22,"unpackedSize":88342,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDfR8Gv/ZIx1Rnujnst2x67i1SxXkKuAH7Q8CepEQfiLAiEAk6/jXTthmp6u3HahEQ9vpzfxjhMZDgV1ePjQDN5HUWs="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.1_1697028825805_0.6579574295627986"},"_hasShrinkwrap":false},"1.0.2":{"name":"@blockswaplab/k2-sdk","version":"1.0.2","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"184ec5fc6cee7c3ec0422119e68099cce8112863","_id":"@blockswaplab/k2-sdk@1.0.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ay7C5tgx0Mfw6+d92htlbanEhhrTz/0EVaITCXWXQeefm/8fj6NHcChkRrBY44QsIUJSXjOC8WbunkSm8relgA==","shasum":"5e2c2e0470dd593b127cb828cd8907b5290158b5","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.2.tgz","fileCount":29,"unpackedSize":130762,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCu6m4I659I66KRpv+eBU2pElBnGv3JGUvQMaOA8P/swQIgMr+1u9F2RFgqLzros7DBH0hC7EPRX2S9dkOg8rXj96c="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.2_1697568349866_0.8521360493039303"},"_hasShrinkwrap":false},"1.0.3":{"name":"@blockswaplab/k2-sdk","version":"1.0.3","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"cff84484da0b9bce2242e3a9d956e4fc0ed23e92","_id":"@blockswaplab/k2-sdk@1.0.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-XFiokCuS46ylwR9f5dolwwYILZeO6Ao4kQ9DJUeHJgqRo8CBAWfhq8FwGnc2VFOSwxO7O2wB0GPRAqB3UB/81g==","shasum":"55d4c7208b00e2a99741dcda3b1086438f8f1027","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.3.tgz","fileCount":29,"unpackedSize":130956,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCS1WtXniiUlZ4oPWH0DVsL7k5oyNygPc5/Y4eJthugpwIgPsMHdFWoR2ccFy1Q2JEAQVxinYDkrXpJCcmJAUDvrrc="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.3_1697704993820_0.8623969653956152"},"_hasShrinkwrap":false},"1.0.4":{"name":"@blockswaplab/k2-sdk","version":"1.0.4","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"08af1f609c0db10fa5e968546503acf2b39583b4","_id":"@blockswaplab/k2-sdk@1.0.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-lnCYDp9c9jxFBsP8o2qxI+JI/6ZydDBEW+66KTol/PaaweK7Z04K6toLGFC5QlmsyEQ9Nqrjwzk0RrzGk0cMFQ==","shasum":"7ff025a5e84fb5e4b9b3fe0a95c372d6c4d24462","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.4.tgz","fileCount":33,"unpackedSize":162013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0uogkP8P+eSFRYqoWh+PI6Stizy3H8/bdI/uRC9GM1AiB6rdJO3m/mv1XhBLlk+hAtxVRzKONudptkV4ahOKVEFg=="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.4_1698322855595_0.3138451883826783"},"_hasShrinkwrap":false},"1.0.5":{"name":"@blockswaplab/k2-sdk","version":"1.0.5","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"b160ec853611a1860e35d4b2c856ec42ddfa92c3","_id":"@blockswaplab/k2-sdk@1.0.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-EMP8hpvWoo8Z4GrPebeYNZBShuR2Hjc13HQb60AlPCrndg4GO70l2ydE589Shp2x8QrGMsieSgIlT7/K9Yf5ng==","shasum":"544b6f47a854f4883e913fcd3c0bdaa62c1d7abb","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.5.tgz","fileCount":33,"unpackedSize":163896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCilELc3umL7UxykWZfzxaFeyWZ7ccbVxBZNr1mCQv6pgIgOaTiPDqGAIS0q46ZKO4TRScpZUj2ki0GK2PT26hrVYE="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.5_1698412174354_0.3601655334621494"},"_hasShrinkwrap":false},"1.0.6":{"name":"@blockswaplab/k2-sdk","version":"1.0.6","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"100342d978cca082185863e8dad47589fbdcc9b4","_id":"@blockswaplab/k2-sdk@1.0.6","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-BFyNydWah50udyvmlh21Di+Fyy361ACGU4TgV8/Cu2p9bWgnlnzPVBH8WG59WB0rA0hfoQ+QlL2jKKPoXurtbw==","shasum":"54f95264a02ca57283bb656654684d90bf830384","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.6.tgz","fileCount":33,"unpackedSize":164055,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC69J8VG8sdvBtdMA//si9qJQlpM0BoE3P+mEbAzhIwLgIgQQxMGqAsFRCuex0pAv4v7iV94Pb1EikLZlADGisr5Gk="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.6_1698661675784_0.24955540056126702"},"_hasShrinkwrap":false},"1.0.7":{"name":"@blockswaplab/k2-sdk","version":"1.0.7","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"d7c971cd9e7e7e7270b7058a8c5e113ef400692b","_id":"@blockswaplab/k2-sdk@1.0.7","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-0boZl2d0dZHqecN8CD8b/r5HM++26g+eQnFckis7HChU3AywnWKf+vN9G4fy8SqCNCmeSRJDUKJAKAU5kIHsYw==","shasum":"75cde565bc240227405907a2fa09bdf2f0abf485","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.7.tgz","fileCount":33,"unpackedSize":164354,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCi7KRAtseOcB4IOQpD8KwXW2F2/UK3wf7MGgctSQFAwIhANWWwi7JFQnWggCbW3tBl1j/VBoNpoRtDLgkUg98Me/t"}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.7_1698668155482_0.7741305750050647"},"_hasShrinkwrap":false},"1.0.8":{"name":"@blockswaplab/k2-sdk","version":"1.0.8","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"585d59ea5d067f668ebbf50652e75e2752988308","_id":"@blockswaplab/k2-sdk@1.0.8","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-iXpLuT08uWQ/i5CLUiDag/xuYI6vumbOIRAlnk59BM/ETKX3jHLH8Y1a16mW/syOELqghevuwU5/tDcYiUT9Pw==","shasum":"7c6f00581e5ef10338d27d18ec44cb7cc7040b65","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.8.tgz","fileCount":33,"unpackedSize":166296,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC82nYYypA3O3Uw25Nt158oK0T0fxdWvvtGpYLA4roIOAIhAPMT/hwO6poTgqjDr5Yfrb+CdMZkA8dnDbF1drN8g9oj"}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.8_1698680818514_0.052856171774813054"},"_hasShrinkwrap":false},"1.0.9":{"name":"@blockswaplab/k2-sdk","version":"1.0.9","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"14243a0476b04b8d1f8defca019e293592b1a5f1","_id":"@blockswaplab/k2-sdk@1.0.9","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-DdctmkpRrL4LKCLDsBSpvDFJH6Xk71D3Fi0XcePsLfBZOSu6TuigQIBEh42mMrZfNSyql1HVjjn46bJVQse5yA==","shasum":"ea865c8d50933ece1c6f2a0f5f6c010f9c7fc2e4","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.9.tgz","fileCount":33,"unpackedSize":166058,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDy2ED0ZXuDG2/HCn21MmosF/COoCmiJbc6YHNECf55gIgfIVjSL1QNsZYgpwiA1gKg6N4LnDZ35zxDVOeoz+nDN4="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.9_1698751847615_0.37915024036961986"},"_hasShrinkwrap":false},"1.0.10":{"name":"@blockswaplab/k2-sdk","version":"1.0.10","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"10d2e3f8282857084aff193d3f630a4fb5650413","_id":"@blockswaplab/k2-sdk@1.0.10","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Dny2cNGHo+WiIsCQCmPkvbPX3KhAkGVRuZy6bVLi4XXfmeq1mv4YHLfhCz/KczRO6P8SS1sjFp0toqWp20Nc8w==","shasum":"6fabfd1c49c39dd85fb814de6d7c5161fb2b357f","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.0.10.tgz","fileCount":33,"unpackedSize":164810,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGeaMEiUULnvxApQVwOwvKE0ndP0VscTyeN52yIvhNjgAiBNXb8dXfetJk96NhiydUgBRBAwFpiSBrmoyuvq/4pUhA=="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.0.10_1699461846380_0.3728388613030349"},"_hasShrinkwrap":false},"1.1.0":{"name":"@blockswaplab/k2-sdk","version":"1.1.0","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"c8c87fd08059b1e71d602e4e6d52501f7db72602","_id":"@blockswaplab/k2-sdk@1.1.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-VZbVtHJYOzkhPZXztkQN/uuiWgfYQqgcmo+krtgDVqDUFprl76yJFEoK7vNU/L2a1id0T+gzjxVWF+cKe74oJw==","shasum":"0fd2e580bcd92545e1dff94129b024bbe59dfeee","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.1.0.tgz","fileCount":41,"unpackedSize":202842,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2OPFFCq/t5IduJsPNEJumzf84ly3uVIySn++T4d3+VgIhAN7fuOn0Zs51qOkmulh4+tmzoyXtpcJx5Xe2kTaLOwEV"}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.1.0_1701351711030_0.8871368159046384"},"_hasShrinkwrap":false},"1.1.1":{"name":"@blockswaplab/k2-sdk","version":"1.1.1","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"17bfd003be23197ad05f38bc5bf994ef1a7e0d0e","_id":"@blockswaplab/k2-sdk@1.1.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UqzfR69vNRZn/2kJTZIhkkFFS52jWY2/9zALrhUMQ2NGSjnXhjmx//+/xMFjTeRH44f9o974+xGzjJT95Wb3jA==","shasum":"789cfa0f66ec6bfe0e916405199a5eff5d2e3ac8","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.1.1.tgz","fileCount":42,"unpackedSize":217392,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE2lyQYvU7q1hX4g7MPVa/M6qtrie8yY+/JjCSEbYy1yAiAUV88DhhmSiYJ2JRyml5UokZhREZIu6ad9X/cVW5/3Nw=="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.1.1_1701779585322_0.12306722824230554"},"_hasShrinkwrap":false},"1.1.2":{"name":"@blockswaplab/k2-sdk","version":"1.1.2","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v5 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/abstract-provider":"^5.7.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v5":"^10.2.0","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^5.5.3","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"b091e8ac21a74330bb687f0a4f925d53579a9231","_id":"@blockswaplab/k2-sdk@1.1.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qLBi4KoBPCik5qOPUOLzc0clJViLJcH7Ihd9+0NJSbudtXy8laEg+axYo+mbJGuIZVvHWysK+ax2l8tgPUXiLA==","shasum":"811c8e9323ca2c8fb4c1cb20735c1d1fa88a67e8","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-1.1.2.tgz","fileCount":42,"unpackedSize":230480,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID9TyqbOs/57jaQdNno/w+TuyZSqNlakfY2c0R+RJZaiAiB5703GUHSGyTz6dy6gQTxMIcmkIjxf86TIjD8jtWJZ4A=="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_1.1.2_1701955649790_0.79686782832413"},"_hasShrinkwrap":false},"2.0.0":{"name":"@blockswaplab/k2-sdk","version":"2.0.0","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"b68bf50b5774e57419039a2d7065303d336102d5","_id":"@blockswaplab/k2-sdk@2.0.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vVv1ciFBnHbf5MhL9P1IMxFgfVNMX4Tr7DE2kqTXR6u2loY6HOGqxNgwJyUIZPJjN2yAbRGoxbCn5HDDv2mSVA==","shasum":"05cc156d3040c84b7b3ffdc8f03f789b091360fc","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.0.tgz","fileCount":42,"unpackedSize":229368,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFYpA9Vj53y5f+spbxifFljYXovhyN/GT2hiUOqvJZsHAiAKMuLbbp9Lv4v8do3fXCNL63EYQMsSSPF30qxGtskO6A=="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.0_1704451846256_0.6255599402088836"},"_hasShrinkwrap":false},"2.0.1":{"name":"@blockswaplab/k2-sdk","version":"2.0.1","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"0cd6bb193ca3263f6781c16479128119aef4d6bd","_id":"@blockswaplab/k2-sdk@2.0.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8+G3Q2ovWzVVOcRXFp81kSrlUViX//NSdIIX4eRHA6nfup+hv1c8Qb3As2eSpbonO0nure0ow5rRPEOdjXlsJA==","shasum":"c687cccb925e491d525205bcaf3eb38e33ae81cb","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.1.tgz","fileCount":42,"unpackedSize":229863,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAITf/sXCDEW9l0TDnKix+x4N/AOQKJgWVGI7SRfrEDlAiEAinx4cbwNJzuWLPU4U65zBxVpE/WliCknW+6J8apmLA0="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.1_1705060008754_0.9888945304278967"},"_hasShrinkwrap":false},"2.0.2":{"name":"@blockswaplab/k2-sdk","version":"2.0.2","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"7f4d837d15149ddc6a361fefa69a66207f9d551d","_id":"@blockswaplab/k2-sdk@2.0.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tg4xWH4I1SBF/niiaQTqwq9bQhjaA/vUBjgkcHq7FQlqdSw/Tx2Ws7qsECktfLGqJMM/X5J0sYZQRihsl+BCqQ==","shasum":"37e6352ea6aaff64ca1a460c68d56738aac2fb90","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.2.tgz","fileCount":51,"unpackedSize":300914,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb7wb49r21N9mN418wZtLKOf0zHeyz7ksT30juQ4BjWQIhAMKvT94nsS+kYbPvlKVWrQ7lXmrLthkgOCtX97wywdxl"}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.2_1707132582043_0.08864047224097527"},"_hasShrinkwrap":false},"2.0.3":{"name":"@blockswaplab/k2-sdk","version":"2.0.3","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"32d3bfdacaa2b30af8a98dc4862b63e1fa18984d","_id":"@blockswaplab/k2-sdk@2.0.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-h9A2qp533MalFDzu5vpVKhBZQaqLZwQEK9aG/i3MAElH8h3E+LMgi3TXZ30P4ONdY1jSsKP4IfQI5+96KI8NMA==","shasum":"9279da0dce2ee788460df6e8751943a9e1402ace","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.3.tgz","fileCount":59,"unpackedSize":395254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5IlvvpNmzQbiwXe4MvGNbFhSMxepKzb0yzWjul2bJ+QIhAOK5MWOTLOvvSilIdGOhKPadYYjMaFMTdI1b8GRClsBw"}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.3_1707917585287_0.09936087688770301"},"_hasShrinkwrap":false},"2.0.4":{"name":"@blockswaplab/k2-sdk","version":"2.0.4","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"faf7ff53bca1abc6cca054d3836f080f47018103","_id":"@blockswaplab/k2-sdk@2.0.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-FLZdoZ0Xn1MT3cWTkVevVRk3toBUmv31SSzjYAu4pwQCsOAxqTXFyBAHMlyHagvhv96KqPHtmmtJGaVo5nvbTw==","shasum":"9168dd9a059fa76cc7ddcdcb3eb590d2eb8193ef","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.4.tgz","fileCount":60,"unpackedSize":452076,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDk428pfdcDSOsqSY2crpaXHoKomX1j9bp7L11V1qEMKAiA1sLLQcWFUIPTO0UXdous9Vw3TbXXTuAZXeFr1cD75vg=="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.4_1709545651124_0.5813826485157354"},"_hasShrinkwrap":false},"2.0.5":{"name":"@blockswaplab/k2-sdk","version":"2.0.5","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"637667813f27c66e1ead8a529527dc6fee369ddb","_id":"@blockswaplab/k2-sdk@2.0.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-fjq4+ZPPsRBhzA1onaMjcqQFiZh3edq5NGAcjFGosUnp0rxWcl/UTnIUHirJS5c4TmTh+hPIodK7qBjk3HeXCQ==","shasum":"10527aa44aee0bf2acb867624d0b81a5224b1b95","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.5.tgz","fileCount":60,"unpackedSize":452124,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkY/sMKMgAgazijYD5IhY2Ts7DL62HxcIHhTzvplKpswIhAKihqYbxY5Pg7KNQ4GomAv56dUOuJoAanlf98bzpb8vL"}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.5_1710322856685_0.8156604230998843"},"_hasShrinkwrap":false},"2.0.6":{"name":"@blockswaplab/k2-sdk","version":"2.0.6","description":"SDK for K-sqaured lending protocol","main":"./dist/config.js","type":"commonjs","exports":{".":"./dist/config.js"},"scripts":{"postinstall":"typechain --target ethers-v6 --out-dir src/contracts './src/abis/*.json' && tsc","test":"mocha ./test/**/*.test.js --timeout 20000 --recursive"},"dependencies":{"@blockswaplab/rpbs-self-attestation":"1.0.0","@ethersproject/contracts":"^5.7.0","@typechain/ethers-v6":"^0.5.1","@types/lodash":"^4.14.191","@types/node":"^18.15.3","axios":"^1.5.1","chai":"^4.3.4","ethers":"^6.9.0","graphql":"^16.1.0","graphql-request":"^3.7.0","lodash":"^4.17.21","mocha":"^10.0.0","typechain":"^8.1.1","typescript":"^4.9.5"},"devDependencies":{"typescript":"^5.2.2"},"gitHead":"6ace0434b7cd05cb87cf16da0f64fc886e0625a5","_id":"@blockswaplab/k2-sdk@2.0.6","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-9SgdtU+66uTq5MBKosMSBDqdJUQU7KAtxkyEmKdDVzPt7O/XBzzozDUlxJSFDmxeaIrYu8oUZrE9eaAkK1Pz9w==","shasum":"2e797df540487a356d57bad417ef6aa6a003cea7","tarball":"https://registry.npmjs.org/@blockswaplab/k2-sdk/-/k2-sdk-2.0.6.tgz","fileCount":60,"unpackedSize":453102,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsNNNcxirV5lEQcnxOLLf6px7VHkFGJfxzk/hLpXCjpAiEAl3WZ+AjnPFMWdxqmqZENciLwNgWabAUUk9tjjLihEyc="}]},"_npmUser":{"name":"blockswapnpm","email":"engineering@blockswap.network"},"directories":{},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/k2-sdk_2.0.6_1710767320612_0.6844747073774133"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-11T11:57:56.072Z","1.0.0":"2023-10-11T11:57:56.317Z","modified":"2024-03-18T13:08:41.267Z","1.0.1":"2023-10-11T12:53:45.968Z","1.0.2":"2023-10-17T18:45:50.242Z","1.0.3":"2023-10-19T08:43:14.011Z","1.0.4":"2023-10-26T12:20:55.770Z","1.0.5":"2023-10-27T13:09:34.590Z","1.0.6":"2023-10-30T10:27:56.013Z","1.0.7":"2023-10-30T12:15:55.689Z","1.0.8":"2023-10-30T15:46:58.708Z","1.0.9":"2023-10-31T11:30:47.810Z","1.0.10":"2023-11-08T16:44:06.606Z","1.1.0":"2023-11-30T13:41:51.186Z","1.1.1":"2023-12-05T12:33:05.511Z","1.1.2":"2023-12-07T13:27:30.050Z","2.0.0":"2024-01-05T10:50:46.416Z","2.0.1":"2024-01-12T11:46:48.936Z","2.0.2":"2024-02-05T11:29:42.191Z","2.0.3":"2024-02-14T13:33:05.466Z","2.0.4":"2024-03-04T09:47:31.270Z","2.0.5":"2024-03-13T09:40:56.914Z","2.0.6":"2024-03-18T13:08:40.808Z"},"maintainers":[{"name":"blockswapnpm","email":"engineering@blockswap.network"}],"description":"SDK for K-sqaured lending protocol","readme":"# @blockswaplab/k2-sdk\nK2 SDK is a typescript SDk which can be used to interact with the K2 Lending protocol.  \n\n## Installation\nTo install the SDK use the command `npm i @blockswaplab/k2-sdk`\n\n## Using the K2 SDK\nOne of the ways to import and initialise the SDK is:\n```\nimport { K2 } from \"@blockswaplab/k2-sdk\";\n\nconst provider = new ethers.InfuraProvider(\n  \"goerli\",\n  INFURA_PROJECT_ID,\n  INFURA_PROJECT_SECRET\n);\nconst signer = new ethers.Wallet(PRIV_KEY, provider);\n\nconst sdk = new K2(signer);\n```\n\nFor using the `fundSplitter` sub-class, the SDK instance can be initialised with the fund splitter contract address as follows:\n```\nconst sdk = new K2(signer, fundSplitterAddress);\n```\n\n> The SDK supports both `goerli` (until it is deprecated) and `mainnet`, hence the user should choose the network as per the need. \n\n> Please note that the SDK is an `ethers.js` based SDK and hence requires `ethers` based signer instance. It also returns values in `ethers.js` supported format. For example, it returns `BigInt` for the smart contract view functions that might return `uint` (`BigNumber` in case of ethers v5).\n\n> Also note that K2 SDK v2 uses ethers v6. If you are using K2 SDK v1 which makes use of ethers v5, please create the signer and provider instances in the following way:\n\n```\nconst provider = new ethers.providers.InfuraProvider(\"goerli\", {\n    projectId: INFURA_PROJECT_ID,\n    projectSecret: INFURA_PROJECT_SECRET\n});\nconst signer = new ethers.Wallet(PRIV_KEY, provider);\n```\n\nThe SDK exposed following sub-classes:  \n* [utils](#utils-sub-class)  \n* [contracts](#contracts-sub-class)  \n* [k2Lending](#k2lending-sub-class)  \n* [k2LendingDepositor](#k2lendingdepositor-sub-class)  \n* [reporterRegistry](#reporterregistry-sub-class)  \n* [nodeOperatorModule](#nodeoperatormodule-sub-class)\n* [rst](#rst-sub-class)\n* [rstModule](#rstmodule-sub-class)\n* [k2NativeDelegationRSTIncentives](#k2nativedelegationrstincentives-sub-class)\n* [nodeOperatorInclusionList](#nodeoperatorinclusionlist-sub-class)\n* [partitionedLinearInterestRateModel](#partitionedlinearinterestratemodel-sub-class)\n* [pno](#pno-sub-class)\n* [fundSplitterFactory](#fundSplitterFactory-sub-class)\n* [fundSplitter](#fundSplitter-sub-class)\n* constants  \n\n## utils sub-class\nThe following readme describes all the functions and their parameters exposed by the `utils` class of the K2 SDK.  \n\n### add0x function\nThis function can be used to append `0x` towards the start of a string to convert it into a hex string accepted by the contracts. If the input string already contains the `0x`, the function will return the string as is.  \n\n#### Input Parameters\ndata: string which needs to be appended by `0x`\n\n#### Using add0x function\n```js\nawait sdk.utils.add0x(data);\n```\n\n#### Return Parameter\nReturns hex string\n\n### remove0x function\nThis function removes `0x` from the beginning of a string. If the input string doesn't contain `0x`, it will return the string as is.  \n\n#### Input Parameters\ndata: string to remove `0x` from  \n\n#### Using remove0x function\n```js\nawait sdk.utils.remove0x(data);\n```\n\n#### Return Parameter\nReturns string without `0x` in the beginning.  \n\n### generateLivenessReport function\nThis function can be used to generate a liveness reports of the software being run.  \n\n#### Input Parameters\nmiddlewareAPI: API endpoint of the middleware\n\n#### Using generateLivenessReport function\n```js\nawait sdk.utils.generateLivenessReport(middlewareAPI);\n```\n\n#### Return Parameter\nReturns a liveness report. Here's a sample liveness report:\n```JSON\n{\n  \"rpbsSelfAttestation\": {\n    \"signature\": {\n      \"z1Hat\": \"6404105216342bd57fa13ea8...310b519feb117f9e25087fe584f2\",\n      \"c1Hat\": \"1e4b7e54b1ba032ef94f2b89...b6ef01c823e20454c1166fb9aa19\",\n      \"s1Hat\": \"1d4a3c56bf2be321d0a6aac4...7a19ed3082b21c94357e16885278\",\n      \"c2Hat\": \"16755d115768ef6ebb0c45d...f4b9ffe0126b599d5d486f5574653\",\n      \"s2Hat\": \"1140c70f8b38105aca1d465...3bbe9f89dbc00da6646c48aa5eaa1\",\n      \"m1Hat\": \"6404223e9396cce38a9bf6a...48d0df6055de44898ecd0e0004ca4\"\n    },\n    \"commonInfo\": {\n      \"numOfValidatorsOnline\": \"8\",\n      \"numOfValidatorsOffline\": \"2\",\n      \"totalValidators\": \"10\"\n    },\n    \"publicKey\": \"630409260df6b583400e97...42db0603ca1fe7766d45ac42f6c0\"\n  },\n  \"eventType\": \"LIVENESS\",\n  \"version\": \"1\",\n  \"eventData\": {\n    \"numOfValidatorsOnline\": \"8\",\n    \"numOfValidatorsOffline\": \"2\",\n    \"totalValidators\": \"10\",\n    \"proposedSlashing\": \"0\"\n  }\n}\n```\n\n### getMiddlewareInfo function\nThis function can be used to get the info from the middleware endpoint.  \n\n#### Input Parameters\nmiddlewareAPI: API endpoint of the middleware  \n\n#### Using getMiddlewareInfo function\n```js\nawait sdk.utils.getMiddlewareInfo(middlewareAPI);\n```\n\n#### Return Parameter\nThe function returns info related to the middleware API. Here's an example of the info:\n```JSON\n{\n    \"VERSION\":\"1\",\n    \"CHAIN_ID\":\"5\",\"SERVICE_PROVIDER_BORROW_ADDRESS\":\"0xEa0F09A471dCe34d7d3675787B1D68D841FF56D2\",\"K2_LENDING_CONTRACT\":\"0x7E015fa28e05eD002Ac166D230cD3c3726CC2e7E\",\"K2_REPORTER_REGISTRY\":\"0x88Cc3B6e96ef8E78b592eaDc135a0DF31991bE20\",\n    \"LIVENESS_ENDPOINT\":\"https://endpoint.amazonaws.com/goerli/liveness\",\n    \"REPORT_DEADLINE_LENGTH_IN_ETH_BLOCKS\":\"125\"\n}\n```\n\n### verifyReport function\nOnce the liveness or the corruption report has been generated, it needs to be verified before submitting it to the reporter registry. To verify the report, `verifyReport` function should be used.  \n\n#### Input Parameters\nmiddlewareAPI: API endpoint of the middleware  \nreport: Liveness or the corruption report returned by the respective function  \n\n#### Using verifyReport function\n```js\nawait sdk.utils.verifyReport(middlewareAPI, report);\n```\n\n#### Return Parameter\nThe function returns a verified report which contains the liveness report along with a signature valid for 20 minutes. Here's how a verified report looks like:\n```JSON\n{\n  \"inputs\": {\n    \"rpbsSelfAttestation\": {\n      \"signature\": {\n      \"z1Hat\": \"6404105216342bd57fa13ea8...310b519feb117f9e25087fe584f2\",\n      \"c1Hat\": \"1e4b7e54b1ba032ef94f2b89...b6ef01c823e20454c1166fb9aa19\",\n      \"s1Hat\": \"1d4a3c56bf2be321d0a6aac4...7a19ed3082b21c94357e16885278\",\n      \"c2Hat\": \"16755d115768ef6ebb0c45d...f4b9ffe0126b599d5d486f5574653\",\n      \"s2Hat\": \"1140c70f8b38105aca1d465...3bbe9f89dbc00da6646c48aa5eaa1\",\n      \"m1Hat\": \"6404223e9396cce38a9bf6a...48d0df6055de44898ecd0e0004ca4\"\n    },\n      \"commonInfo\": {\n        \"numOfValidatorsOnline\": \"8\",\n        \"numOfValidatorsOffline\": \"2\",\n        \"totalValidators\": \"10\"\n      },\n      \"publicKey\": \"630409260df6b583400e97...42db0603ca1fe7766d45ac42f6c0\"\n    },\n    \"eventType\": \"LIVENESS\",\n    \"version\": \"1\",\n    \"eventData\": {\n      \"numOfValidatorsOnline\": \"8\",\n      \"numOfValidatorsOffline\": \"2\",\n      \"totalValidators\": \"10\",\n      \"proposedSlashing\": \"100000000000000000\"\n    }\n  },\n  \"signedReport\": {\n    \"slashType\": \"0\",\n    \"debtor\": \"0x70997970C51812dc3A010C7d01b50e0d17dc79C8\",\n    \"block\": 9819746,\n    \"signature\": \"0x3634303432336464663333323864663263623136393239373137626261356634353366323963396637623832313062343537633436633237363731383938303230386533306432346662636537316531333061366538663364346161333731616461646464653639663834346163316464616365386363663562626632653561633166643a313838333339343262373434633436323232343865323862346465353963613930633639366530623538633336393433666362643566386136383361656461653a306631316464373530393337306632316339393534643063373432313338303632323931323734393961373961386663376633353963643434353439306363353a323631363139626337656338306630613863663333643836643430373062636465313262383138303632653437396236333235623836396438323066343933633a313662383438646230666533303561363366353061346633613661383963613165326531616165626363653630363431623865633931643438323439363335343a363430343136373630313961363065396135336563323766303835363638336433653039396130616331643938376665633165636464383663636536633866643438363232306237373165643464303836343730376334666436386631386363663831333135643533303531373964346237346233363530343933346164306130326163\",\n    \"amount\": {\n      \"type\": \"BigInt\",\n      \"hex\": \"0x016345785d8a0000\"\n    },\n    \"identifier\": 1\n  },\n  \"designatedVerifierSignature\": {\n    \"deadline\": 9819746,\n    \"v\": 27,\n    \"r\": \"0x3a61148c3a2fdd3a9fe2c6133bbddf579333a630663f0c19dce8ecfb62484392\",\n    \"s\": \"0x1b4f68b48c177edf8f10f1f382cfb0c73920ecac7ed564e82909d57f119b3a11\"\n  }\n}\n```\n\n#### verifyEffectiveBalance function\nThis function can be used to batch verify effective balance of a list of BLS public keys.  \n\n##### Input Parameters\nblsPublicKeys: List of BLS public keys in string format  \neffectiveBalances: List of effective balance in string corresponding to each BLS public key  \n\n##### Using verifyEffectiveBalance function\n```js\nawait sdk.utils.verifyEffectiveBalance(blsPublicKeys, effectiveBalances);\n```\n\n##### Return Parameter\nThe function returns a list of verified effective balance report after it has been successfully verified and error otherwise.  \n```js\n// Format of verified effective balance reports\n[\nreport: {\n    blsKey: string,\n    effectiveBalance: string\n  },\n  designatedVerifierSignature: {\n    v: string,\n    r: string,\n    s: string\n  }\n]\n```\n\n### readUsingMulticall function\nAllows to read batch values from a contract in a single RPC call.  \n\n#### Input Parameters\ntargetContract: Address of the target contract in string format  \nallowFailure: Boolean. Set to `true` to throw error if any one value is rejected by the contract  \ncalldata: List of calldata in string  \n\n#### Using readUsingMulticall function\n```js\nawait sdk.utils.readUsingMulticall(targetContract, allowFailure, calldata);\n```\n\n#### Return Parameter\nReturns a list of response for each call data in the format:\n```js\n{\n  bool success; // True if the call succeeded, false otherwise.\n  bytes returnData; // Return data if the call succeeded, or revert data if the call reverted.\n}\n```\nThe result will have to be decoded to correctly get all the values.\n```ts\n/// Example: decode the values from the result after using multicall read method \n/// on the claimableKETHForNodeOperator function.\n/// contractInterface: ABI interface of the contract that defines said function, created using ethersjs\nconst previewValues = multicall.map(({ success, returnData }, i) => {\n    if (!success) throw new Error(`Failed to resolve data for calldata[${i}]`);\n    return contractInterface.decodeFunctionResult(\n      \"claimableKETHForNodeOperator\",\n      returnData\n  )[0];\n});\n```\n\n### getEffectiveBalance function\nGet effective balance of a BLS public key from the consensus layer.  \n\n#### Input Parameters\nbeaconNodeUrl: Beacon node URL string  \nblsPublicKey: BLS public key in string format to get effective balance of  \n\n#### Using getEffectiveBalance function\n```js\nawait sdk.utils.getEffectiveBalance(beaconNodeUrl, blsPublicKey);\n```\n\n#### Return Parameter\nEffective balance in numbers  \n\n### generateCorruptionReport function\nGenerate corruption report from the data received from middleware API endpoint.  \n\n#### Input Parameters\nmiddlewareAPI: API endpoint of the middleware  \neventData: event data of the format CorruptionEventDataT  \nmessage: string message which needs to be mentioned in the report. Default value: `''`  \ndebtorOverride: optional debtor address. Can be left `null` for the function to fetch debtor address from the middlewareAPI  \n\n#### Using generateCorruptionReport function\n```js\nawait sdk.utils.generateCorruptionReport(middlewareAPI, eventData, message, debtorOverride);\n```\n\n#### Return Parameter\nReturns corruption report of the format:\n```js\n{\n    rpbsSelfAttestation: {\n    signature: marshalledSignature,\n      commonInfo: commonInfo,\n      publicKey: rpbsPublicKey\n    },\n    eventType: \"CORRUPTION\",\n    version: version,\n    eventData: eventData,\n    serviceProviderAddress: debtor\n}\n```\n\n### claimEffectiveBalance function\nClaim effective balance for all the BLS public keys delegated by the user.  \n\n#### Input Parameters\nbeaconNodeUrl: Beacon node URL in string  \nuserAddress: user address in string  \n\n#### Using claimEffectiveBalance function\n```js\nawait sdk.utils.claimEffectiveBalance(beaconNodeUrl, userAddress);\n```\n\n#### Return Parameter\nTransaction hash  \n\n### getClaimableKETHForNodeOperator function\nPreview claimable effective balance for all the BLS public keys delegated by the user.  \n\n#### Input Parameters\nuserAddress: user address in string  \n\n#### Using getClaimableKETHForNodeOperator function\n```js\nawait sdk.utils.getClaimableKETHForNodeOperator(userAddress);\n```\n\n#### Return Parameter\nList of claimable kETH in Big Numbers  \n\n### getAllDelegetedBLSPublicKeysForNodeRunner function\nGet a list of BLS public keys delegated by a node operator.  \n\n#### Input Parameters\nnodeRunnerAddress: Address of the node runner in string  \n\n#### Using getAllDelegetedBLSPublicKeysForNodeRunner function\n```js\nawait sdk.utils.getAllDelegetedBLSPublicKeysForNodeRunner(nodeRunner);\n```\n\n#### Return Parameter\nList of BLS public keys  \n\n### getAllDelegetedBLSPublicKeys function\nList of all the delegated BLS public keys in the K2 protocol.  \n\n#### Using getAllDelegetedBLSPublicKeys function\n```js\nawait sdk.utils.getAllDelegetedBLSPublicKeys();\n```\n\n#### Return Parameter\nList of BLS public keys  \n\n\n## contracts sub-class\nThe SDK also exposes the contractInstance sub-class which provides an instance for contracts used in the K2 lending protocol. These instances can be used to call smart contract functions that may or may not exist in the SDK.  \n\n### Contract instances exposed by the sub-class\n* k2LendingContract  \n* k2LendingDepositor  \n* ReporterRegistry  \n* nodeOperatorModule  \n* rst  \n* rstModule  \n* k2NativeDelegationRSTIncentives\n* nodeOperatorInclusionList\n* partitionedLinearInterestRateModel\n* pnoRegistry\n* lien\n* fundSplitterFactory\n* fundSplitter\n\n## Using the contractInstance class\n```ts\nconst k2LendingContractInstance = await sdk.contracts.k2LendingContract();\nconst k2LendingDepositorInstance = await sdk.contracts.k2LendingDepositor();\nconst reporterRegistryInstance = await sdk.contracts.reporterRegistry();\nconst nodeOperatorModuleInstance = await sdk.contracts.nodeOperatorModule();\nconst rstInstance = await sdk.contracts.rst(\"INSERT_RST_CONTRACT_ADDRESS\");\nconst rstModuleInstance = await sdk.contracts.rstModule();\nconst multicallContract = await sdk.contracts.multicallContract();\nconst k2NativeDelegationRSTIncentivesInstance = await sdk.contracts.k2NativeDelegationRSTIncentives();\nconst nodeOperatorInclusionListInstance = await sdk.contracts.nodeOperatorInclusionList();\nconst partitionedLinearInterestRateModelInstance = await sdk.contracts.partitionedLinearInterestRateModel();\nconst fundSplitterFactory = await sdk.contracts.fundSplitterFactory();\nconst fundSplitter = await sdk.contracts.fundSplitter(fundSplitterAddress);\nconst pnoRegistry = await sdk.contracts.pnoRegistry();\nconst lien = await sdk.contracts.lien();\n```\nAll the contract instances can be directly accessed without any input parameter.  \n\n## k2Lending sub-class\nThe following readme describes all the functions and their parameters exposed by the `k2Lending` class of the K2 SDK. This class exposes all the important functions from the K2 Lending protocol.  \n\n### getDebtor function\nThis function allows anyone to get the debtor related information just by the debtor address.  \n\n#### Input Parameters\ndebtor: ETH address of the debtor  \n\n#### Using getDebtor function\n```ts\nawait sdk.k2Lending.getDebtor(debtor);\n```\n\n#### Return Parameter\nReturns data of a particular debtor.  \n\n### getBorrowDuration function\nGet the borrow duration set by the contract.  \n\n#### Using getBorrowDuration function\n```ts\nawait sdk.k2Lending.getBorrowDuration();\n```\n\n#### Return Parameter\nBorrow duration in BigInt.  \n\n### getDAOAddress function\nGet the DAO address associated with the contract.  \n\n#### Using getDAOAddress function\n```ts\nawait sdk.k2Lending.getDAOAddress();\n```\n\n#### Return Parameter\nETH address of the DAO.  \n\n### getProposerRegistry function\nGet the proposer registry ETH address.  \n\n#### Using getProposerRegistry function\n```ts\nawait sdk.k2Lending.getProposerRegistry();\n```\n\n#### Return Parameter\nETH address of the proposer registry.  \n\n### getNodeOperatorInclusionList function\nGet the contract that manages the node operators eligible for native delegation.\n\n#### Using getNodeOperatorInclusionList function\n```ts\nawait sdk.k2Lending.getNodeOperatorInclusionList();\n```\n\n#### Return Parameter\nETH address of the contract that manages the node operators eligible for native delegation.\n\n### deposit function\nDeposits KETH into the pool and mints pool shares to the sender.  \n\n#### Input Parameters\namount: amount of kETH to be deposited  \n\n#### Using deposit function\n```ts\nawait sdk.k2Lending.deposit(amount);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### depositFor function\nDeposit kETH for another ETH address.  \n\n#### Input Parameters\namount: amount of kETH to be deposited  \nrecipient: ETH address to deposit kETH for  \n\n#### Using depositFor function\n```ts\nawait sdk.k2Lending.depositFor(amount, recipient);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### withdraw function\nBurns shares from the sender and returns the equivalent fraction of remaining KETH liquidity. Optionally, sends all KETH accrued by the lender.  \n\n#### Input Parameters\namount: amount of kETH to be withdrawn  \nclaim: `true` for claiming accrued kETH  \n\n#### Using withdraw function\n```ts\nawait sdk.k2Lending.withdraw(amount, claim);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### claimKETHForLender function\nClaims all of the accrued KETH for the lender and sends it to the lender's address.  \n\n#### Input Parameters\nlender: ETH address of the lender  \n\n#### Using claimKETHForLender function\n```ts\nawait sdk.k2Lending.claimKETHForLender(lender);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### nodeOperatorDeposit function\nDeposit node operator in K2 lending protocol.  \n\n#### Input Parameters\nblsPublicKey: BLS public key of the validator  \npayoutRecipient: ETH address of the recipient that would receive payout  \nblsSignature: BLS Signature associated with the BLS public key  \necdsaSignature: ECDSA signature  \n\n#### Using nodeOperatorDeposit function\n```ts\nawait sdk.k2Lending.nodeOperatorDeposit(blsPublicKey, payoutRecipient, blsSignature, ecdsaSignature);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### nodeOperatorWithdraw function\nWithdraw node operator from the K2 Lending protocol.  \n\n#### Input Parameters\nrecipientOverride: The recipient address\nnodeOperatorAddress: ETH address of the node operator  \nblsPublicKey: BLS public key string\n\n#### Using nodeOperatorWithdraw function\n```ts\nawait sdk.k2Lending.nodeOperatorWithdraw(recipientOverride, nodeOperatorAddress, blsPublicKey);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### nodeOperatorKick function\nKick node operator from the K2 Lending protocol.  \n\n#### Input Parameters\nreporterAddress: ETH address of the reporter  \nblsPublicKey: BLS public key\n\n#### Using nodeOperatorKick function\n```ts\nawait sdk.k2Lending.nodeOperatorKick(reporterAddress, blsPublicKey);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### nodeOperatorClaim function\nClaim ETH earned for all the BLS public keys associated with a node operator.  \n\n#### Input Parameters\nrecipientOverride: The recipient address\nblsPublicKeys: List of BLS public keys to claim for  \n\n#### Using nodeOperatorClaim function\n```ts\nawait sdk.k2Lending.nodeOperatorClaim(recipientOverride, blsPublicKeys);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### slash function\nSlash KETH from the pool. This function can only be called by a reporter.  \n\n#### Input Parameters\nslashType: the slash type (liveness & corruption)\ndebtor: the debtor address\namount: the slash amount\nrecipient: the recipient address\n\n#### Using slash function\n```ts\nawait sdk.k2Lending.slash(slashType, debtor, amount, recipient);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### terminate function\nTerminate debt position  \n\n#### Input Parameters\ndebtor: ETH address of the debtor  \n\n#### Using terminate function\n```ts\nawait sdk.k2Lending.terminate(debtor);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### liquidate function\nLiquidate debt position.  \n\n#### Input Parameters\ndebtor: ETH address of the debtor  \n\n#### Using liquidate function\n```ts\nawait sdk.k2Lending.liquidate(debtor);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n\n### topUpSlashAmount function\nTop up kETH if it gets slashed.  \n\n#### Input Parameters\ndebtor: address of debtor in string format  \namount: amount of kETH to topup  \n\n#### Using topUpSlashAmount function\n```ts\nawait sdk.k2Lending.topUpSlashAmount(debtor, amount);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### borrow function\nBorrows KETH from the pool and records the debt to the debtor's address\n\n#### Input Parameters\ndebtPositionType: debt position type  \ndesignatedVerifier: The designated verifier of debtor  \namount: The debt principal to borrow  \nmaxSlashableAmountPerLiveness: Maximum slashable amount per liveness  \nmaxSlashableAmountPerCorruption: Maximum slashable amount per corruption  \nrstConfigParams: RST config params of type RSTConfigParamsT  \n\n#### Using borrow function\n```ts\nawait sdk.k2Lending.borrow(debtPositionType, designatedVerifier, amount, maxSlashableAmountPerLiveness, maxSlashableAmountPerCorruption, rstConfigParams);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n### increaseDebt function\nIncrease the SBP coverage and borrow a larger amount from K2 protocol which will cancel the old SBP.\n\n#### Input Parameters\ndebtPositionType: debt position type  \ndesignatedVerifier: The designated verifier of debtor  \namount: The debt principal to borrow  \nmaxSlashableAmountPerLiveness: Maximum slashable amount per liveness  \nmaxSlashableAmountPerCorruption: Maximum slashable amount per corruption  \nresetDuration: If true, resets the duration else keeps the remaining duration of the borrow\n\n#### Using increaseDebt function\n```ts\nawait sdk.k2ending.increaseDebt(debtPositionType, designatedVerifier, amount, maxSlashableAmountPerLiveness, maxSlashableAmountPerCorruption, resetDuration);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### totalSupply function\nReturns the ERC-20 token supply for K2 LP.\n\n#### Using totalSupply function\n```ts\nawait sdk.k2Lending.totalSupply();\n```\n\n#### Return Parameter\nReturns the total supply of the token.\n\n### getTotalBorrowableAmount function\nThe total amount that SBP can borrow from the K2 protocol.\n\n#### Using getTotalBorrowableAmount function\n```ts\nawait sdk.k2Lending.getTotalBorrowableAmount();\n```\n\n#### Return Parameter\nReturns the total amount that SBP can borrow from the protocol.\n\n### getOutstandingInterest function\nGet the outstanding interest that is left for the SBP to pay the lenders.\n\n#### Input Parameters\ndebtor: ETH address of the debtor  \n\n#### Using getOutstandingInterest function\n```ts\nawait sdk.k2Lending.getOutstandingInterest(debtor);\n```\n\n#### Return Parameters\nReturns the total outstanding interest that is left for the SBP to pay the lenders.\n\n### setHookAsDebtorForSBP function\nExternal hook contract. Set to address(0) to disable the hook  \n\n#### Input Parameters\nhookAddress: ETH address of the hook contract. Set to address(0) by default  \n\n#### Using setHookAsDebtorForSBP function\n```ts\nawait sdk.k2Lending.setHookAsDebtorForSBP(hookAddress);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.  \n\n## claimableKETHForNativelyDelegatedBLSKey function\nPreview claimable kETH for a BLS public key delegated by the node operator.  \n\n### Input Parameters\nblsPublicKey: BLS public key in string  \n\n### Using claimableKETHForNativelyDelegatedBLSKey function\n```ts\nawait sdk.k2Lending.claimableKETHForNativelyDelegatedBLSKey(blsPublicKey);\n```\n\n### Return Parameter\nTransaction details if the transaction was successful.  \n\n\n## k2LendingDepositor sub-class\nThe following readme describes all the functions and their parameters exposed by the `k2LendingDepositor` class of the K2 SDK. This sub-class contains all the important functions from the K2 Lending depositor contract of the K2 Lending protocol.    \n\n### getKethVaultAddress function\nThis function can be used to get the kETH vault address registered with the contract.  \n\n#### Using getKethVaultAddress function\n```ts\nawait sdk.k2LendingDepositor.getKethVaultAddress();\n```\n\n#### Return parameters\nETH address of the kETH vault.  \n\n### deposit function\nThis function can be used to deposit tokens to the contract.  \n\n#### Input Parameters\ntokenAddress: Token address to deposit into the contract  \namount: Amount of tokens to be deposited  \n\n#### Using deposit function\n```ts\nawait sdk.k2LendingDepositor.deposit(tokenAddress, amount);\n```\n\n#### Return parameters\nTransaction hash if the deposit was successful.  \n\n## reporterRegistry sub-class\nThe following readme describes all the functions and their parameters exposed by the `reporterRegistry` class of the K2 SDK. This sub-class of the SDK exposes all the functions from the reporter registry contract of the K2 Lending protocol.  \n\n### getk2LendingPool function\nThis function can be used to get the contract address of the K2 Lending pool.  \n\n#### Using getk2LendingPool function\n```js\nawait sdk.reporterRegistry.getk2LendingPool();\n```\n\n#### Return Parameter\nReturns contract address.  \n\n### isReporterActive function\nCheck the contracts if the reporter is active.  \n\n#### Input Parameters\nreporter: ETH Address of the reporter  \n\n#### Using isReporterActive function\n```js\nawait sdk.reporterRegistry.isReporterActive(reporter);\n```\n\n#### Return Parameter\nBoolean, `true` if active, `false` otherwise.  \n\n### isReporterRagequitted function\nCheck the contracts if the reporter has rage quitted or not.  \n\n#### Input Parameters\nreporter: ETH address of the reporter  \n\n#### Using isReporterRagequitted function\n```js\nawait sdk.reporterRegistry.isReporterRagequitted(reporter);\n```\n\n#### Return Parameter\nBoolean, `true` if rage quitted, `false` otherwise.  \n\n### isReportUsed function\nCheck if the reporter has been already used or not.  \n\n#### Input Parameters\nreporter: ETH address of the reporter  \n\n#### Using isReportUsed function\n```js\nawait sdk.reporterRegistry.isReportUsed(reporter);\n```\n\n#### Return Parameter\nBoolean, `true` if already used, `false` otherwise.  \n\n### registerReporter function\nRegister a reporter to the reporter registry contract. The `msg.sender` will be registered as the reporter.  \n\n#### Using registerReporter function\n```js\nawait sdk.reporterRegistry.registerReporter();\n```\n\n#### Return Parameter\nTransaction details if the transaction is successful.  \n\n### isReporterOperational function\nCheck if the reporter is operational and can perform reports. An operational reporter is the one that is active and hasn't rage quitted.  \n\n#### Input Parameters\nreporter: ETH address of the reporter  \n\n#### Using isReporterOperational function\n```js\nawait sdk.reporterRegistry.isReporterOperational(reporter);\n```\n\n#### Return Parameter\nBoolean, `true` if reporter is operational, `false` otherwise.  \n\n### batchSubmitReports function\nFunction to submit multiple verified reports in a single transaction.  \n\n#### Input Parameters\nreports: List of verified reports of the following structure:\n```\n{\n    slashType: SlashType;\n    debtor: string;     // Borrower address\n    amount: number;     // Amount being slashed\n    identifier: number; // Unique ID to avoid double reporting\n    block: number;      // Block number\n    signature: string;  // Blind signature being reported\n};\n```\nreportSignatures: List of signatures (designatedVerifierSignature obtained after verifying the reports) of the respective reports. Each signature follows the following structure:\n```\n{\n    v: number; // version\n    r: string; // x coordinate of the curve\n    s: string; // y coordinate of the curve\n}\n```\n\n#### Using batchSubmitReports function\n```js\nawait sdk.reporterRegistry.batchSubmitReports(reports, reportSignatures);\n```\n\n#### Return Parameter\nTransaction details if the transaction is successful.  \n\n### reportTypedHash function\nCalculate typed hash of report struct.  \n\n#### Input Parameters\nreport: verified report of the following structure:\n```\n{\n    slashType: SlashType;\n    debtor: string;     // Borrower address\n    amount: number;     // Amount being slashed\n    identifier: number; // Unique ID to avoid double reporting\n    block: number;      // Block number\n    signature: string;  // Blind signature being reported\n};\n```\n\n#### Using reportTypedHash function\n```js\nawait sdk.reporterRegistry.reportTypedHash(report);\n```\n\n#### Return Parameter\n`bytes32` hash string  \n\n### isDebtorReportUsed function\nUsed to prevent double-reporting but scoped at a debtor level.  \n\n#### Input Parameters\ndebtorAddress: Address of the debtor in string  \nreportIdentifier: identifier field (in string) from the report  \n\n#### Using isDebtorReportUsed function\n```js\nawait sdk.reporterRegistry.isDebtorReportUsed(debtorAddress, reportIdentifier);\n```\n\n#### Return Parameter\nReturns `true` if report is already used, `false` otherwise.  \n\n### isValidReport function\nCheck if report is valid or not.  \n\n#### Input Parameters\nreport: Verified report obtained from the `verifyReport` function, of the following structure:\n```\n{\n    slashType: SlashType;\n    debtor: string;     // Borrower address\n    amount: number;     // Amount being slashed\n    identifier: number; // Unique ID to avoid double reporting\n    block: number;      // Block number\n    signature: string;  // Blind signature being reported\n};\n```\nreportSignature: Signature (designatedVerifierSignature obtained after verifying the reports) of the respective report. The signature follows the following structure:\n```\n{\n    v: number; // version\n    r: string; // x coordinate of the curve\n    s: string; // y coordinate of the curve\n}\n```\n\n#### Using isValidReport function\n```js\nawait sdk.reporterRegistry.isValidReport(report, reportSignature);\n```\n\n#### Return Parameter\nReturns `true` if valid, `false` otherwise.  \n\n## nodeOperatorModule sub-class\nThe following readme describes all the functions and their parameters exposed by the `nodeOperatorModule` class of the K2 SDK. This sub-class contains all the important functions from the K2 Node Operator Module contract of the K2 Lending protocol.  \n\n### getk2LendingContract function\nThis function can be used to get the k2 Lending contract address set in the K2 Node operator module contract.  \n\n#### Using getk2LendingContract function\n```ts\nawait sdk.nodeOperatorModule.getk2LendingContract();\n```\n\n#### Return parameters\nETH address of the k2Lending contract.  \n\n### getReporterRegistryContract function\nThis function can be used to get the reporter registry contract address set in the K2 Node operator module contract.  \n\n#### Using getReporterRegistryContract function\n```ts\nawait sdk.nodeOperatorModule.getReporterRegistryContract();\n```\n\n#### Return parameters\nETH address of the Reporter registry contract. \n\n### batchNodeOperatorKick function\nReport multiple BLS keys for kicking from K2 pool.  \n\n##### Input Parameters\nblsPublicKeys: List of BLS public keys to kick  \neffectiveBalances: List of effective balance in string for respective BLS public keys  \ndesignatedVerifierSignatures: List of verifier signatures of the format SignatureECDSAT (defined in the K2-SDK) for the respective BLS public keys  \n\n#### Using batchNodeOperatorKick function\n```ts\nawait sdk.nodeOperatorModule.batchNodeOperatorKick(blsPublicKeys, effectiveBalances, designatedVerifierSignatures);\n```\n\n#### Return parameters\nTransaction details if the transaction is successful.  \n\n### nodeOperatorClaim function\nBatch node operator claims must come with an effective balance report.  \n\n##### Input Parameters\nblsPublicKeys: List of BLS public keys to kick  \neffectiveBalances: List of effective balance in string for respective BLS public keys  \ndesignatedVerifierSignatures: List of verifier signatures of the format SignatureECDSAT (defined in the K2-SDK) for the respective BLS public keys  \n\n#### Using nodeOperatorClaim function\n```ts\nawait sdk.nodeOperatorModule.nodeOperatorClaim(blsPublicKeys, effectiveBalances, designatedVerifierSignatures);\n```\n\n#### Return parameters\nTransaction details if the transaction is successful.  \n\n### isValidEffectiveBalanceReport function\nCheck whether a kick due to effective balance is valid  \n\n##### Input Parameters\nblsPublicKey: BLS public key to kick  \neffectiveBalance: Effective balance in string for the respective BLS public key  \ndesignatedVerifierSignature: Verifier signature of the format SignatureECDSAT (defined in the K2-SDK) for the respective BLS public key  \n\n#### Using isValidEffectiveBalanceReport function\n```ts\nawait sdk.nodeOperatorModule.isValidEffectiveBalanceReport(blsPublicKey, effectiveBalance, designatedVerifierSignature);\n```\n\n#### Return parameters\n`true` if report is valid, `false` otherwise.  \n\n### isNewBLSKeyPermitted function\nCheck whether a BLS public key si permitted or not.  \n\n##### Input Parameters\nblsPublicKey: BLS public key  \n\n#### Using isNewBLSKeyPermitted function\n```ts\nawait sdk.nodeOperatorModule.isNewBLSKeyPermitted(blsPublicKey);\n```\n\n#### Return parameters\n`true` if BLS public key is valid, `false` otherwise.  \n\n## rst sub-class\nThe following readme describes all the necessary functions and their parameters exposed by the `rst` class of the K2 SDK.  \n\n### getDeployer function\nGet address of the RST module factory that deployed the RST.  \n\n#### Input Parameters\nrstAddress: Address of RST contract in string  \n\n#### Using getDeployer function\n```js\nawait sdk.rst.getDeployer(rstAddress);\n```\n\n#### Return Parameter\nReturns address of RST deployer  \n\n### getSBPIndex function\nReference to the unique SBP index in the K2 lending contract where activity can be checked.  \n\n#### Input Parameters\nrstAddress: Address of RST contract in string  \n\n#### Using getSBPIndex function\n```js\nawait sdk.rst.getSBPIndex(rstAddress);\n```\n\n#### Return Parameter\nReturns uint256 SBP index in Big Numbers  \n\n### updateSBPIndex function\nFor new SBPs created, the deployer uses this method so that the RST points to the new SBP index.  \n\n#### Input Parameters\nrstAddress: Address of RST contract in string  \nnewSBPIndex: new SBP index in string\n\n#### Using updateSBPIndex function\n```js\nawait sdk.rst.updateSBPIndex(rstAddress, newSBPIndex);\n```\n\n#### Return Parameter\nTransaction hash  \n\n### isActive function\nCheck if the RST token is active or not.  \n\n#### Input Parameters\nrstAddress: Address of RST contract in string  \n\n#### Using isActive function\n```js\nawait sdk.rst.isActive(rstAddress);\n```\n\n#### Return Parameter\nBoolean. `true` if active, `false` otherwise.  \n\n## rstModule sub-class\nThe following readme describes all the necessary functions and their parameters exposed by the `rstModule` class of the K2 SDK.  \n\n### getK2LendingContract function\nGet address of the K2 lending contract.  \n\n#### Using getK2LendingContract function\n```js\nawait sdk.rstModule.getK2LendingContract();\n```\n\n#### Return Parameter\nReturns address of K2 Lending contract  \n\n### getImplementationContract function\nAddress of the implementation contract that will be cloned (minimal proxy standard).  \n\n#### Using getImplementationContract function\n```js\nawait sdk.rstModule.getImplementationContract();\n```\n\n#### Return Parameter\nReturns address of implementation contract  \n\n### isRST function\nCheck if a contract is RST or not.  \n\n#### Input Parameters\ncontractAddress: Address of contract  \n\n#### Using isRST function\n```js\nawait sdk.rstModule.isRST(contractAddress);\n```\n\n#### Return Parameter\nReturns `true` if valid RST contract, `false` otherwise.  \n\n### sbpToRST function\nGet the RST token associated with an SBP(Slashable borrow position) index.  \n\n#### Input Parameters\nsbpIndex: SBP index in string  \n\n#### Using sbpToRST function\n```js\nawait sdk.rstModule.sbpToRST(sbpIndex);\n```\n\n#### Return Parameter\nReturns RST token address.  \n\n### sbpOwnerToRST function\nRST address deployed by the debtor (SBP owner).  \n\n#### Input Parameters\ndebtorAddress: Address of debtor  \n\n#### Using sbpOwnerToRST function\n```js\nawait sdk.rstModule.sbpOwnerToRST(debtorAddress);\n```\n\n#### Return Parameter\nReturns RST token address.  \n\n### sbpLabel function\nGet the label configured by the SBP owner for their SBP index.  \n\n#### Input Parameters\nsbpIndex: SBP index in string  \n\n#### Using sbpLabel function\n```js\nawait sdk.rstModule.sbpLabel(sbpIndex);\n```\n\n#### Return Parameter\nReturns SBP label in string.  \n\n### deployRST function\nDeploy RST. RST can only be deployed at the time of creating the SBP.  \n\n#### Input Parameters\ndebtorAddress: Address of debtor in string  \nrecipientAddress: Address of the account (in string) that will receive 90% of the tokens minted  \ndao: DAO address in string that will hold back 10% to ensure that it maintains incentives for native delegation  \nk2Incentives: Address in string  \npercentageContributionToIncentives: string  \namount: Total supply that will be minted where the upper bound is the SBP principle in string  \nsymbol: The RST token symbol used when deploying the ERC20 cloneable token in string  \n\n#### Using deployRST function\n```js\nawait sdk.rstModule.deployRST(debtorAddress, recipientAddress, dao, k2Incentives, percentageContributionToIncentives, amount, symbol);\n```\n\n#### Return Parameter\nAddress of RST deployed.  \n\n### updateRSTLabel function\nUpdated label of SBP index.  \n\n#### Input Parameters\nsbpIndex: SBP index in string  \nlabel: new SBP label in string  \n\n#### Using updateRSTLabel function\n```js\nawait sdk.rstModule.updateRSTLabel(sbpIndex, label);\n```\n\n#### Return Parameter\nTransaction hash.  \n\n## k2NativeDelegationRSTIncentives sub-class\nThe following readme describes all the functions and their parameters exposed by the `k2NativeDelegationRSTIncentives` class of the K2 SDK. This sub-class contains all the important functions from the K2 Native Delegation RST Incentives contract of the K2 Lending protocol.\n\n### poolLength function\nGet the length of the pool.\n\n#### Using poolLength function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.poolLength();\n```\n\n#### Return Parameter\nReturns the length of the pool.\n\n### poolIdByRewardToken function\nGet pool ID by the reward token.\n\n#### Input Parameters\nrewardToken: The RST reward token address.\n\n#### Using poolIdByRewardToken function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.poolIdByRewardToken(rewardToken);\n```\n\n#### Return Parameter\nReturn the pool ID for the RST reward token. \n\n### getRewardFromLastBlock function\nGet the rewards from the last given block.\n\n#### Input Parameters\npoolId: The pool ID for the RST token\nlastBlock: The last block number\n\n#### Using getRewardFromLastBlock function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.getRewardFromLastBlock(poolId, lastBlock);\n```\n\n#### Return Parameter\nReturns the rewards received from the last given block.\n\n### pendingRewards function\nGet the pending rewards of a user.\n\n#### Input Parameters\npoolId: The pool ID for the RST token\nuser: The user's ETH Address\n\n#### Using pendingRewards function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.pendingRewards(poolId, user);\n```\n\n#### Return Parameter\nReturns the pending rewards of the user.\n\n### massUpdatePools function\nUpdate all the pools.\n\n#### Using massUpdatePools function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.massUpdatePools();\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### updatePool function\nUpdate pool for the given pool ID.\n\n#### Input Parameters\npoolId: The pool ID for the pool to be updated.\n\n#### Using updatePool function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.updatePool(poolId);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### nativeDelegationDeposit function\nFarming deposit with native delegation.\n\n#### Input Parameters\npoolId: The pool ID\n\n#### Using nativeDelegationDeposit function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.nativeDelegationDeposit(poolId);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### deposit function\nK2 LP farming deposit function.\n\n#### Input Parameters\npoolId: The pool ID to be withdrawn from\namount: The withdraw amount\n\n#### Using deposit function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.deposit(poolId, amount);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### nativeDelegationWithdraw function\nWithdraw all the native delegation from a pool.\n\n#### Input Parameters\npoolId: The pool ID for the pool to be updated.\n\n#### Using nativeDelegationWithdraw function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.nativeDelegationWithdraw(poolId);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n\n### withdraw function\nWithdraw the K2 LP tokens.\n\n#### Input Parameters\npoolId: The pool ID to be withdrawn from\namount: The withdraw amount\n\n#### Using withdraw function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.withdraw(poolId, amount);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### claim function\nClaim the pending BSN tokens.\n\n#### Input Parameters\npoolId: The pool ID to claim from\n\n#### Using claim function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.claim(poolId);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### forceWithdraw function\nForce withdraw K2 LP without rewards.\n\n#### Input Parameters\npoolId: The pool ID to withdraw from\n\n#### Using forceWithdraw function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.forceWithdraw(poolId);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### forceWithdrawNativeDelegation function\nForce withdraw K2 LP without rewards for native delegation farmers.\n\n#### Input Parameters\npoolId: The pool ID to withdraw from\n\n#### Using forceWithdrawNativeDelegation function\n```js\nawait sdk.k2NativeDelegationRSTIncentives.forceWithdrawNativeDelegation(poolId);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n## nodeOperatorInclusionList sub-class\nThe following readme describes all the functions and their parameters exposed by the `nodeOperatorInclusionList` class of the K2 SDK. This sub-class contains all the important functions from the K2 Node Operator Inclusion List contract of the K2 Lending protocol.\n\n### isNewBLSKeyPermitted function\nCompare the current counter with the global counter to see if the given bls key is permitted.\n\n#### Input Parameters\nblsPublicKey: BLS public key of the validator\n\n### Using isNewBLSKeyPermitted function\n```js\nawait sdk.nodeOperatorInclusionList.isNewBLSKeyPermitted(blsPublicKey);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### onBLSKeyRegisteredToK2 function\nNotify the inclusion list that a key was added so it can increase its global counter.\n\n#### Input Parameters\nblsPublicKey: BLS public key of the validator\n\n### Using onBLSKeyRegisteredToK2 function\n```js\nawait sdk.nodeOperatorInclusionList.onBLSKeyRegisteredToK2(blsPublicKey);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n### onBLSKeyUnregisteredToK2 function\nNotify the inclusion list that a key was removed so it can decrease its global counter.\n\n#### Input Parameters\nblsPublicKey: BLS public key of the validator\n\n### Using onBLSKeyUnregisteredToK2 function\n```js\nawait sdk.nodeOperatorInclusionList.onBLSKeyUnregisteredToK2(blsPublicKey);\n```\n\n#### Return Parameter\nTransaction details if the transaction was successful.\n\n## partitionedLinearInterestRateModel sub-class\nThe following readme describes all the functions and their parameters exposed by the `partitionedLinearInterestRateModel` class of the K2 SDK. This sub-class contains all the important functions from the K2 Partitioned Linear Interest Rate Model contract of the K2 Lending protocol.\n\n### getUtilizationRatio function\nGet the max utilisation percentage of the pool at 100% utilisation.\n\n#### Input Parameters\nassumedLiquidity: Total liquidity in the pool, including available and borrowed funds\nborrowedLiquidity: Liquidity borrowed from the pool\nborrowAmount: Borrow amount\n\n#### Using getUtilizationRatio function\n```js\nawait sdk.partitionedLinearInterestRateModel.getUtilizationRatio(assumedLiquidity, borrowedLiquidity, borrowAmount);\n```\n\n#### Return Parameters\nReturns the max utilization percentage.\n\n### maxSlashableAmountPerLivenessUpper function\nUpper bound for the ETH slashing amount that can take place for a given liveness event.\n\n#### Input Parameters\nassumedLiquidity: Total liquidity in the pool, including available and borrowed funds\nborrowedLiquidity: Liquidity borrowed from the pool\nborrowAmount: Borrow amount\n\n#### Using maxSlashableAmountPerLivenessUpper function\n```js\nawait sdk.partitionedLinearInterestRateModel.maxSlashableAmountPerLivenessUpper(assumedLiquidity, borrowedLiquidity, borrowAmount);\n```\n\n#### Return Parameters\nReturns the max ETH slashing amount possible for a given liveness event.\n\n### maxSlashableAmountPerCorruptionUpper function\nUpper bound for the ETH slashing amount that can take place for a given corruption event.\n\n#### Input Parameters\nassumedLiquidity: Total liquidity in the pool, including available and borrowed funds\nborrowedLiquidity: Liquidity borrowed from the pool\nborrowAmount: Borrow amount\n\n#### Using maxSlashableAmountPerCorruptionUpper function\n```js\nawait sdk.partitionedLinearInterestRateModel.maxSlashableAmountPerCorruptionUpper(assumedLiquidity, borrowedLiquidity, borrowAmount);\n```\n\n#### Return Parameters\nReturns the max ETH slashing amount possible for a given corruption event.\n\n### getInterestRate function\nGet the current interest rate based on assumed (total) and available liquidity.\n\n#### Input Parameters\nassumedLiquidity: Total liquidity in the pool, including available and borrowed funds\nborrowedLiquidity: Liquidity borrowed from the pool\nborrowAmount: Borrow amount\nmaxSlashableAmountPerLiveness: Maximum slashable amount per liveness\nmaxSlashableAmountPerCorruption: Maximum slashable amount per corruption\n\n#### Using getInterestRate function\n```js\nawait sdk.partitionedLinearInterestRateModel.getInterestRate(assumedLiquidity, borrowedLiquidity, borrowAmount, maxSlashableAmountPerLiveness, maxSlashableAmountPerCorruption);\n```\n\n#### Return Parameters\nReturns the current interest rate in RAY format.\n\n### getMaxBorrowableAmount function\nGet the expected max borrow amount for SBP using interest.\n\n#### Input Parameters\ninterestAmount: The interest amount\ncurrentBorrowAmount: Curent debt principal\nmaxSlashableAmountPerLiveness: Maximum slashable amount per liveness\nmaxSlashableAmountPerCorruption: Maximum slashable amount per corruption\nduration: Borrow duration\n\n#### Using getMaxBorrowableAmount function\n```js\nawait sdk.partitionedLinearInterestRateModel.getMaxBorrowableAmount(interestAmount, currentBorrowAmount, maxSlashableAmountPerLiveness, maxSlashableAmountPerCorruption, duration);\n```\n\n#### Return Parameters\nReturns the expected max borrow amount using interest.\n\n### getExpectedInterest function\nGet the expected interest accrued over a duration, assuming interest rate doesn't change after the initial borrow.\n\n#### Input Parameters\nnewBorrowAmount: The debt principal to compute interest for\ncurrentBorrowAmount: Curent debt principal\nmaxSlashableAmountPerLiveness: Maximum slashable amount per liveness\nmaxSlashableAmountPerCorruption: Maximum slashable amount per corruption\nduration: Borrow duration\n\n#### Using getExpectedInterest function\n```js\nawait sdk.partitionedLinearInterestRateModel.getExpectedInterest(newBorrowAmount, currentBorrowAmount, maxSlashableAmountPerLiveness, maxSlashableAmountPerCorruption, duration);\n```\n\n#### Return Parameters\nReturns the expected interest accrued over a duration.\n\n## pno sub-class\nThe following readme describes all the functions and their parameters exposed by the `pno` class of the K2 SDK. This sub-class contains all the important functions from the PNO registry and Lien contracts of the K2 Lending protocol.\n\n### onDelegatedRecipientSet function\n\nHandle the case where delegated recipient is being adjusted to make sure no redelegations remain when lien is in force.\n\n#### Input Parameters\n\ncurrentRecipient: Address of the current recipient\n\n#### Using onDelegatedRecipientSet function\n\n```js\nawait sdk.pno.onDelegatedRecipientSet(currentRecipient);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### onSBPUpdated function\n\nPoke the PNO registry to allow it to check whether kNetwork is mapped to current SBP.\n\n#### Input Parameters\n\ndebtor: ETH address of the debtor\n\n#### Using onSBPUpdated function\n\n```js\nawait sdk.pno.onSBPUpdated(debtor);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### createKNetwork function\n\nSBP owner can call this function to spin up their own kNetwork which will take care of deploying a fund splitter.\n\n#### Input Parameters\n\ndefaultRewardToken: Address of the default reward token\n\n#### Using createKNetwork function\n\n```js\nawait sdk.pno.createKNetwork(defaultRewardToken);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### banNodeOperator function\n\nAllows the lien contract to ban a node operator in the event that a PNO has severely violated protocol rules.\n\n#### Input Parameters\n\nsbpIndexId: SBP index in string     \npno: Address of the PNO\n\n#### Using banNodeOperator function\n\n```js\nawait sdk.pno.banNodeOperator(sbpIndexId, pno);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### managePNO function\n\nAllows the DAO to manage the global PNO inclusion list.\n\n#### Input Parameters\n\npno: Address of the PNO     \nenabled: Boolean value, true if enabled\n\n#### Using managePNO function\n\n```js\nawait sdk.pno.managePNO(pno, enabled);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### removePNO function\n\nAllow a SBP owner to use a PNO from the global inclusion list in their kNetwork.\n\n#### Input Parameters\n\npno: Address of the PNO     \n\n#### Using removePNO function\n\n```js\nawait sdk.pno.removePNO(pno);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### togglePNOGatekeepingForKNetwork function\n\nAllow a kNetwork to enable PNO gatekeeping for their network before and after network creation.\n\n#### Using togglePNOGatekeepingForKNetwork function\n\n```js\nawait sdk.pno.togglePNOGatekeepingForKNetwork();\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### manageKNetworkInclusionList function\n\nAllow a kNetwork that has gatekeeping enabled to manage inclusion list for the opt in to work.\n\n#### Input Parameters\n\nPNOs: Array of all PNO addresses\nenabled: Boolean value, true if enabled\n\n#### Using manageKNetworkInclusionList function\n\n```js\nawait sdk.pno.manageKNetworkInclusionList(PNOs, enabled);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### optIntoKNetwork function\n\nLets the PNO to opt into node running for a kNetwork.\n\n#### Input Parameters\n\nsbpIndexId: SBP index in string\n\n#### Using optIntoKNetwork function\n\n```js\nawait sdk.pno.optIntoKNetwork(sbpIndexId);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### optOutOfKNetwork function\n\nLets the PNO to opt out of node running for a kNetwork.\n\n#### Input Parameters\n\nsbpIndexId: SBP index in string\n\n#### Using optOutOfKNetwork function\n\n```js\nawait sdk.pno.optOutOfKNetwork(sbpIndexId);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### setPNOFeeRecipient function\n\nAllow PNO to set their fee recipient across all kNetwork payout processing fund splitter contracts.\n\n#### Input Parameters\n\nfeeRecipient: Address of the fee recipient\n\n#### Using setPNOFeeRecipient function\n\n```js\nawait sdk.pno.setPNOFeeRecipient(feeRecipient);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### reDelegateToPreferredNodeOperator function\n\nRe-delegate K2 re-staked balance to a PNO using K2 LP balance.\n\n#### Input Parameters\n\npno: Address of the PNO     \namount: Restaked balance to be re-delegated\n\n#### Using reDelegateToPreferredNodeOperator function\n\n```js\nawait sdk.pno.reDelegateToPreferredNodeOperator(pno, amount);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### removeRedelegation function\n\nRemove the re-delegation given to a PNO by a K2 LP balance and obtain K2 LP back.\n\n#### Input Parameters\n\npno: Address of the PNO     \namount: Re-delegated amount to be obtained back\n\n#### Using removeRedelegation function\n\n```js\nawait sdk.pno.removeRedelegation(pno, amount);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### reDelegateToPreferredNodeOperatorFromNativeDelegation function\n\nRe-delegate K2 re-staked balance to a PNO using K2 native delegation balance.\n\n#### Input Parameters\n\npno: Address of the PNO     \namountToRedelegateInETH: Amount to be re-delegated in ETH\n\n#### Using reDelegateToPreferredNodeOperatorFromNativeDelegation function\n\n```js\nawait sdk.pno.reDelegateToPreferredNodeOperatorFromNativeDelegation(pno, amountToRedelegateInETH);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### removeRedelegationFromNativeDelegation function\n\nRemove re-delegation from a PNO that was given from a native delegation K2 balance.\n\n#### Input Parameters\n\npno: Address of the PNO     \namountToRedelegateInETH: Re-delegated amount to be obtained back\n\n#### Using removeRedelegationFromNativeDelegation function\n\n```js\nawait sdk.pno.removeRedelegationFromNativeDelegation(pno, amountToRedelegateInETH);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### totalReDelegationsInETHToPNO function\n\nQuery function to get total re-delegations to PNO in ETH.\n\n#### Input Parameters\n\nuser: ETH address of the user       \npno: Address of the PNO\n\n#### Using totalReDelegationsInETHToPNO function\n\n```js\nawait sdk.pno.totalReDelegationsInETHToPNO(user, pno);\n```\n\n#### Return Parameters\n\nReturns the total re-delegated amount in bigint.\n\n### totalReDelegationsInETHToPNOForTimestamp function\n\nQuery function to get total re-delegations to PNO in ETH for the given timestamp.\n\n#### Input Parameters\n\nuser: ETH address of the user       \npno: Address of the PNO     \ntimestamp: The timestamp value in string\n\n#### Using totalReDelegationsInETHToPNOForTimestamp function\n\n```js\nawait sdk.pno.totalReDelegationsInETHToPNOForTimestamp(user, pno, timestamp);\n```\n\n#### Return Parameters\n\nReturns the total re-delegated amount in bigint.\n\n### isPreferredNodeOperator function\n\nTo check if the PNO is eligible to receive liquid re-delegations.\n\n#### Input Parameters\n\npno: Address of the PNO\n\n#### Using isPreferredNodeOperator function\n\n```js\nawait sdk.pno.isPreferredNodeOperator(pno);\n```\n\n#### Return Parameters\n\nReturns true if the PNO is eligible, else false.\n\n### onWithdraw function\n\nCheck if re-delegations have been first removed when trying to burn K2 LP.\n\n#### Input Parameters\n\nuser: ETH address of the user\namount: Withdraw amount in string\n\n#### Using onWithdraw function\n\n```js\nawait sdk.pno.onWithdraw(user, amount);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### onNodeOperatorWithdraw function\n\nCheck the active re-delegations before allowing the node operator to remove their native delegation.\n\n#### Input Parameters\n\nuser: ETH address of the user.\n\n#### Using onNodeOperatorWithdraw function\n\n```js\nawait sdk.pno.onNodeOperatorWithdraw(user);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### configureDesignatedVerifierAsKNetwork function\n\nAllow a kNetwork to specify the public key of their PNO designated verifier for slashing.\n\n#### Input Parameters\n\ndesignatedVerifier: Address of the PNO designated verifier\n\n#### Using configureDesignatedVerifierAsKNetwork function\n\n```js\nawait sdk.pno.configureDesignatedVerifierAsKNetwork(designatedVerifier);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### slashPNO function\n\nSlash the given PNO.\n\n#### Input Parameters\n\nkNetwork: Address of the kNetwork       \nreportIdentifier: Nonce for the report            \npno: Address of the PNO     \namount: The slash amount in string      \ndesignatedVerifierSignature: List of verifier signatures of the format SignatureECDSAT (defined in the K2-SDK) for the respective BLS public keys       \ndeadline: Deadline for the validity of the signatures       \n\n#### Using slashPNO function\n\n```js\nawait sdk.pno.slashPNO(kNetwork, reportIdentifier, pno, amount, designatedVerifierSignature, deadline);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### onSBPUpdatedLien function\n\nPoke the Lien to allow it to check whether kNetwork is mapped to current SBP.\n\n#### Input Parameters\n\ndebtor: ETH address of the debtor\n\n#### Using onSBPUpdatedLien function\n\n```js\nawait sdk.pno.onSBPUpdatedLien(debtor);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### isValidReport function\n\nCheck if the given report is valid.\n\n#### Input Parameters\n\nkNetwork: Address of the kNetwork       \nreportIdentifier: Nonce for the report      \npno: Address of the PNO     \namount: The slash amount in string      \ndesignatedVerifierSignature: List of verifier signatures of the format SignatureECDSAT (defined in the K2-SDK) for the respective BLS public keys       \ndeadline: Deadline for the validity of the signatures\n\n#### Using isValidReport function\n\n```js\nawait sdk.pno.isValidReport(kNetwork, reportIdentifier, pno, amount, designatedVerifierSignature, deadline);\n```\n\n#### Return Parameters\n\nReturn true if the report is valid, else false.\n\n### reportTypedHash function\n\nGet the typed hash of the given report.\n\n#### Input Parameters\n\nkNetwork: Address of the kNetwork       \nreportIdentifier: Nonce for the report       \npno: Address of the PNO     \namount: The slash amount in string      \ndeadline: Deadline for the validity of the signatures\n\n#### Using reportTypedHash function\n\n```js\nawait sdk.pno.reportTypedHash(currentRecipient);\n```\n\n#### Return Parameters\n\nReturns the 32-byte hash of the report.\n\n## fundSplitterFactory sub-class\nThe following readme describes all the functions and their parameters exposed by the `fundSplitterFactory` class of the K2 SDK. This sub-class contains all the important functions from the Fund Splitter factory contract of the K2 Lending protocol.\n\n### remapFundSplitterIfRequired function\n\nSBP owner will call this function to remap the fund splitter if required.\n\n#### Using remapFundSplitterIfRequired function\n\n```js\nawait sdk.fundSplitterFactory.remapFundSplitterIfRequired();\n```\n\n#### Return Parameters\n\nTransaction hash if the deposit was successful.\n\n### deployFundSplitter function\n\nSBP owner will call this function to deploy a fund splitter instance.\n\n#### Input Parameters\n\ndebtor: ETH address of the debtor       \ndefaultRewardToken: Address of the reward token for the fund splitter instance\n\n#### Using deployFundSplitter function\n\n```js\nawait sdk.fundSplitterFactory.deployFundSplitter(debtor, defaultRewardToken);\n```\n\n#### Return Parameters\n\nReturns the address of the deployed fund splitter instance.\n\n## fundSplitter sub-class\nThe following readme describes all the functions and their parameters exposed by the `fundSplitter` class of the K2 SDK. This sub-class contains all the important functions from the Fund Splitter contract of the K2 Lending protocol.\n\n### updateSBPIndex function\nUpdate the SBP index.\n\n#### Input Parameters\n\nsbpIndex: The SBP index in string\n\n#### Using updateSBPIndex function\n\n```js\nawait sdk.fundSplitter.updateSBPIndex(sbpIndex);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### distributeNewRewards function\n\nDistribute the new rewards to the PNOs and redelegators.\n\n#### Input Parameters\n\nrewardToken: The address of the reward token        \nrewardAmount: The reward amount in string       \nPNOs: Array of ETH addresses of the PNOs\n\n#### Using distributeNewRewards function\n\n```js\nawait sdk.fundSplitter.distributeNewRewards(rewardToken, rewardAmount, PNOs);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### claimFromRedelegationBucket function\n\nClaim rewards from the redelegation bucket after it has been distributed.\n\n#### Input Parameters\n\nuser: The ETH address of the user       \ndistributionIndex: The distribution index in string     \nPNOs: Array of ETH addresses of the PNOs\n\n#### Using claimFromRedelegationBucket function\n\n```js\nawait sdk.fundSplitter.claimFromRedelegationBucket(user, distributionIndex, PNOs);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### claimFromPNOBucket function\n\nClaim PNO earnings from the PNO bucket after it has been distributed.\n\n#### Input Parameters\n\npno: The ETH address of the PNO     \nrewardTokens: Array of reward token addresses\n\n#### Using claimFromPNOBucket function\n\n```js\nawait sdk.fundSplitter.claimFromPNOBucket(pno, rewardTokens);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### onPNOEnabled function\n\nHook function to track PNOs enabled status.\n\n#### Input Parameters\n\npno: The ETH address of the PNO     \nenabled: Boolean value, true if enabled\n\n#### Using onPNOEnabled function\n\n```js\nawait sdk.fundSplitter.onPNOEnabled(pno, enabled);\n```\n\n#### Return Parameters\n\nTransaction details if the transaction was successful.\n\n### pnoHistoricalEarnings function\n\nGet the historical earnings for the given PNO, for the default reward token.\n\n#### Input Parameters\n\npno: The ETH address of the PNO     \n\n#### Using pnoHistoricalEarnings function\n\n```js\nawait sdk.fundSplitter.pnoHistoricalEarnings(pno);\n```\n\n#### Return Parameters\n\nReturns the historical PNO earnings in bigint.\n\n### pnoHistoricalEarningsForRewardToken functions\n\nGet the historical earnings for the given PNO and the given reward token.\n\n#### Input Parameters\n\npno: The ETH address of the PNO     \nrewardToken: Address of the reward token\n\n#### Using pnoHistoricalEarningsForRewardToken function\n\n```js\nawait sdk.fundSplitter.pnoHistoricalEarningsForRewardToken(pno, rewardToken);\n```\n\n#### Return Parameters\n\nReturns the historical PNO earnings in bigint.\n\n\n### isPNOEnabledAt function\n\nChecks if the PNO was enabled at the given snapshot.\n\n#### Input Parameters\n\npno: The ETH address of the PNO     \nsnapshotId: The snapshot id in string\n\n#### Using isPNOEnabledAt function\n\n```js\nawait sdk.fundSplitter.isPNOEnabledAt(pno, snapshotId);\n```\n\n#### Return Parameters\nReturn true if the PNO was enabled, else false.","readmeFilename":"README.md"}