{"_id":"@ankr.com/stakefi-slot-auction","_rev":"6-836dfbf7699d3aaaa433cace87c94f14","name":"@ankr.com/stakefi-slot-auction","dist-tags":{"latest":"0.0.42"},"versions":{"0.0.42":{"name":"@ankr.com/stakefi-slot-auction","version":"0.0.42","keywords":["ankr","ankr.com","stkr","stkr.io","eth 2.0","staking"],"author":{},"license":"MIT","_id":"@ankr.com/stakefi-slot-auction@0.0.42","maintainers":[{"name":"ankr_network","email":"stanley@ankr.com"},{"name":"nwts0as","email":"dmitry123@inbox.ru"}],"dist":{"shasum":"c255d6b6e043712e0d50953603795b271fc02b3e","tarball":"https://registry.npmjs.org/@ankr.com/stakefi-slot-auction/-/stakefi-slot-auction-0.0.42.tgz","fileCount":29,"integrity":"sha512-9QoBwdegub77m1mg7r6xAdI3rZpT/VIRsX2PNNqvz8bbW78wylRsFoeDyxhvXAmyenI1BhFVndnrCdhykvPniA==","signatures":[{"sig":"MEUCIAeNFKWkzg5oE4E+Z4BTEp3zjQba/N1fHT3RvW+SumL3AiEAp45LjJ12UcEduLUBuNVP6TXrdN8X7uoPFZdu8u3Cilw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":117717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+TunCRA9TVsSAnZWagAAdOMP/j7KSSHdScl651VCpamL\nK2ZjsEujS4ySyeW43JDHgWjMQKR68qu5qMc51yUXVF9GiNkh/LLaHu6nPOLU\n+AEd7gTACxe1KKPcnkjl+Od37pJEp8OUXBX4951WeWXCbC2Jw7gbbmrjI7Fy\nzGDsw8/qh7W2KPDVxjDaYZn8CdNGqFlE8/3+2PBUI95TJD7camK6LmuM8135\nY3sCnZwL9uFbtvR45dOP4pn2gjAXgrwUVnyvsa2TNL0/S7CKqWC8xURuXckf\n4rJzbgnKXJ4IhAa7paTnijEiwhgc+LbJc+I9wcfR6beGP28Cx0lyVxVZ36cA\nVh8dt0PKij0uByG/9xZSNL8U5BWgygP9mauSG7TsjBXVR2p64/UAQRvfymHe\nndQ76uLK/S1A2I4k75qPWjNflNLq+hcxZSuAwFtHTgdry553KFXFv1Ksj8pa\nDNFedaBb2wn+5MbhnuFcxryiVDEW/Eeyz+OAGmb6IBCnmlrv8XGhDRq9zWu2\n7vaWHtxeGF81+sZ0ut0VmpJpMjwLKfGB6YE0ZuQOjzg0uBrDgcWcgoDdsIrG\nb7Dhf4ZnLd6D4buggkt8z7lXQFltskzoyZW6AjCM5YJRBkCs9AnPe54tnERV\nj6PeX3RhtdCXCvHOKlgTWulqbehW0OPZjPJkwO8HFWnBgXIzGy8gS2ZtlC60\ntL4I\r\n=zbKc\r\n-----END PGP SIGNATURE-----\r\n"},"module":"dist","scripts":{"lint":"node_modules/.bin/tslint --project tsconfig.json","build":"tsc","publish":"yarn publish","version":"tsc --version","prebuild":"rimraf dist","precommit":"lint-staged; npm run test","prepublish":"tsc","preversion":"npm run lint"},"typings":"dist/types","_npmUser":{"name":"nwts0as","email":"dmitry123@inbox.ru"},"prettier":{"semi":false,"singleQuote":true},"description":"SDK for polkadot & slot auction staking","directories":{},"lint-staged":{"{src,test}/**/*.ts":["prettier --write","git add"]},"dependencies":{"axios":"^0.21.1","base58-js":"^1.0.0","@polkadot/api":"^4.17.1","axios-cache-adapter":"^2.7.3","@ankr.com/stakefi-web3":"^0.0.42","@polkadot/extension-dapp":"^0.38.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lerna":"^3.22.1","tslint":"^5.11.0","ts-node":"^7.0.1","tslint-config-prettier":"^1.15.0","tslint-config-standard":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/stakefi-slot-auction_0.0.42_1626946471452_0.0662039957601539","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-07-22T09:34:31.384Z","modified":"2025-12-15T23:54:23.285Z","0.0.42":"2021-07-22T09:34:31.576Z"},"author":{},"license":"MIT","keywords":["ankr","ankr.com","stkr","stkr.io","eth 2.0","staking"],"description":"SDK for polkadot & slot auction staking","maintainers":[{"email":"stanley@ankr.com","name":"ankr_network"},{"email":"ivanoff.pg@ya.ru","name":"intoskai"},{"email":"meagan@ankr.com","name":"meaganankr"}],"readme":"StakeFi Polkadot & Slot Auction Staking\n=======================================\n\nThis SDK can be used for polkadot and slot auction staking on StakeFi platform.\n\nTo install dependency, run next command:\n\n```bash\nyarn add @ankr.com/stakefi-slot-auction\n```\n\nSince this library depends on Web3, it has `ankr.com/stakefi-web3` package inside.\n\n### Create SDK\n\nFirstly you need to create SDK instance and store it somewhere in your state. Each SDK instance is\nassigned to chosen polakdot network, that can be Kusama or Polkadot. If its required to manage both\nnetworks at the same time then create two SDK instances.\n\n```typescript\n// create new web3 key provider\nconst keyProvider = new Web3KeyProvider({\n  // required chain id for MetaMask\n  expectedChainId: 5,\n});\n// create SDK instance\nconst sdk = new SlotAuctionSdk(keyProvider, {\n  // url to polkadot RPC (network type is strictly depends on polkadot URL)\n  polkadotUrl: 'wss://westend-rpc.polkadot.io',\n  // base url to api gateway\n  baseUrl: 'https://api.dev.stkr.io/',\n  // don't do status check\n  crowdloanStatusCheck: false,\n});\n// dispatch it to state somewhere\ndispatch(SDK_INIT, {sdk});\n```\n\nHINT: By default slot auction SDK uses always connected Web3 key provider, so its not required to\nconnect it manually, because it asks user to connect MetaMask only when its required for\napplication.\n\n### Basic methods\n\nSome methods can be used without connection to `polkadot.js`, here is list of such methods:\n\n- `getAvailableCrowdloans` - list available crowdloans\n- `getCrowdloanById` - get crowdloan by id\n- `requestDepositAddress` - request deposit address for selected crowdloan\n- `getCrowdloanBalances` - get claimable and total your crowdloan balances (if you know polkadot\n  address, of course)\n- `getClaimableStakingRewards` - get claimable staking rewards in ethereum network\n- `getClaimMethodsForStakingRewards` - list possible clam methods (ERC20 or PARACHAIN)\n- `claimStakingRewards` - claim staking rewards as ERC20 tokens or as PARACHAIN token\n- `checkCrowdloanStatus` - check crowdloan status check (it can be disabled in config for testing\n  purposes)\n\n### Connect to PolkadotJS\n\nOnce its required to do connect for lending or staking you need to do connect.\n\n```typescript\n// you can check does it connected already\nif (sdk.isConnected()) {\n  return;\n}\n// connect to polkadot.js (promise is resolved once user accepted connection or expection is thrown)\nawait sdk.connect();\n```\n\nOnce you're connected to `polkadot.js`, next methods are available for you:\n\n- `depositFundsToCrowdloan` - lend funds to specified crowdloan project\n- `claimRewardPoolTokens` - claim aDOTp once project is winner\n- `createRawTokenSignature` - ask user to create raw token signature (internal)\n- `createVerifiableTokenSignature` - ask user to create verifiable token sig (internal)\n\n### Lend KSM/DOT tokens\n\nTo lend KSM/DOT tokens to project just use next snippet (don't forget to specify crowloan to\nparticipate).\n\n```typescript\nconst stakingAmount = prompt('Enter staking amount: ');\n// find crowdloan u're interested of\nconst [crowdloan] = sdk.getAvailableCrowdloans('LOAN_STATUS_ONGOING');\nif (!crowdloan) throw new Error(`There is no availabe ongoing crowdloans`);\n// choose one of available polkadot accounts \nconst [polkadotAccount] = await sdk.getPolkadotAccounts();\n// lend funds to crowdloan\nawait sdk.depositFundsToCrowdloan(polkadotAccount, crowdloan.loanId, new BigNumber(`${stakingAmount}`));\n```\n\n### Claim aDOTp tokens\n\nAfter crowdloan launch you're allowed to claim aDOTp tokens for some project.\n\n```typescript\nconst [crowdloan] = sdk.getAvailableCrowdloans('LOAN_STATUS_SUCCEED');\nif (!crowdloan) throw new Error(`There is no availabe succeed crowdloans`);\n// choose one of available polkadot accounts \nconst [polkadotAccount] = await sdk.getPolkadotAccounts();\n// lend funds to crowdloan\nconst metaMaskAccount = await sdk.getEthereumAccount();\nawait sdk.claimRewardPoolTokens(polkadotAccount, crowdloan.loanId, metaMaskAccount);\n```\n\n### Claim aDOTp staking rewards\n\nAfter some period (at least 1 block) of staking aDOTp you can claim your staking rewards.\n\n```typescript\nconst [crowdloan] = sdk.getAvailableCrowdloans('LOAN_STATUS_SUCCEED');\nif (!crowdloan) throw new Error(`There is no availabe succeed crowdloans`);\n// determine available claim methods (optional), it can be ERC20 or PARACHAIN\nconst claimMethods = await sdk.getClaimMethodsForStakingRewards();\nif (!claimMethods.includes('ERC20')) throw new Error(`ERC20 claim method is not available`);\n// find some polkadot account\nconst [polkadotAddress] = await sdk.getPolkadotAccounts();\nawait sdk.claimStakingRewards(polkadotAddress, crowdloan, 'ERC20');\n```\n","readmeFilename":"README.md"}