{"_id":"@bancoin/data-service-client-js","_rev":"2-8f39ad63e4fde0a17ea84abe18f403be","name":"@bancoin/data-service-client-js","dist-tags":{"latest":"4.0.2"},"versions":{"4.0.2":{"name":"@bancoin/data-service-client-js","version":"4.0.2","main":"dist/index.js","types":"dist/index.d.ts","author":{"name":"Ivan Shmidt","email":"bahoc47@gmail.com"},"license":"MIT","scripts":{"dev":"ts-node src/index.ts","build":"tsc","build:browser:dev":"tsc && browserify ./dist/index.js -o ./dist/umd.js","build:browser":"browserify ./dist/index.js -o ./dist/umd.js -u @bancoin/data-entities -u @bancoin/bignumber","build:all":"rimraf ./dist/* && npm run build && npm run build:browser","test":"jest","prepare":"npm run build:all && npm test"},"dependencies":{"@bancoin/bignumber":"^0.0.1-a5","@bancoin/data-entities":"^2.0.0-a3"},"devDependencies":{"@types/jest":"^22.2.3","@types/node":"8.0.0","@types/node-fetch":"^1.6.9","browserify":"^16.2.2","jest":"^23.6.0","node-fetch":"^2.1.2","parse-json-bignumber":"^0.0.2","rimraf":"^2.6.2","ts-jest":"^23.10.5","typescript":"^3.4.5"},"jest":{"transform":{"^.+\\.tsx?$":"ts-jest"},"testRegex":"(src/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["/node_modules/",".history"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"testURL":"http://localhost/"},"gitHead":"662c1d40337acdd89c7072b0a5b7121ee5417b52","description":"## Usage","_id":"@bancoin/data-service-client-js@4.0.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"hbastidas","email":"heberbastidas@gmail.com"},"dist":{"integrity":"sha512-TzlR156fiVolXC93zUl3L1tFR2H2VKdViU/WMwtdXmlvUDUi3tm8afcKz0YtpB03cPkp+ymFIMerDVnJgyU7jg==","shasum":"2df57e71503e29528c96d0cb77311fe29cf3ddd5","tarball":"https://registry.npmjs.org/@bancoin/data-service-client-js/-/data-service-client-js-4.0.2.tgz","fileCount":51,"unpackedSize":315547,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUf8GCRA9TVsSAnZWagAAb5wP/11MMc8TTWxDQdcU+wKa\n6uFrZMUdCtUs/uii1xSQvqvDEpJ68hVJSOwdnqxdvMCgHbQJXKdNfr6baqDt\n2O/1f9G/5xPLUhswjnBzFkCgGPWfsQcGQBkBc96T0QPoXAXGp/ZN5Cbl3TFU\nZI9aPz0LuB6X7lwVONxk96qIrJd/6qe47oaRRqxhk0DgAs30YN2qDYZxX+5H\nNbfww69f9HCgtkmKy5QTTZrrOqmodpFI6F697uca+rr9Kj7YnIfLpDn9d5S3\nVoKuWEUswDg6F5p48dsA7MozDIw9uq9MIiP45DMUti72ItAKbobgs3fNNvPT\nvMuaJAgoRBN7g38XzhNFdhcrRiTDdwn9iof+bqoOJ7mQd++VLPUzpzd3+KRk\n5WDTX+2ewqTCw74jchnNJW+J62G3nt8xx0+heRnbWCG66g5Mmuygmb3NVNNd\nSgnDnRbLxWm2FlIXMs/xQzR7d+G5iavKjfJ7JIWRj2+2yMNy9TjPzcA86Obc\nErPCKwwABWxMTGSwGCx6hdAdMKp5wDt5XHz4IGgPta2q+8A+N3HVSuWKfmwk\nWuLNSJ997KNYvE+ho87cubRG1S0glKWgVGHZQyEk+aDH+eDuy59DVo9+1PIR\naXY4MgsTj3c34J0P99txZq00rRBuV8CBZyFfqA0A2t30ZzC/+Dqj9FmhxhBG\nSyOo\r\n=PDgw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJ56sHqUElGVVxG8cXyokF2UD7cTxiYs3f3eZ1B7/CowIgeBFx3gXYDb0fnYuKVq4Y0A9CncjZymj2k7cbHfx4rjY="}]},"maintainers":[{"name":"hbastidas","email":"heberbastidas@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/data-service-client-js_4.0.2_1565654789788_0.9629110928789952"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-13T00:06:29.575Z","4.0.2":"2019-08-13T00:06:29.948Z","modified":"2022-04-04T17:40:57.301Z"},"maintainers":[{"email":"jose.estevez.prieto@gmail.com","name":"jestevez"},{"email":"heberbastidas@gmail.com","name":"hbastidas"}],"description":"## Usage","author":{"name":"Ivan Shmidt","email":"bahoc47@gmail.com"},"license":"MIT","readme":"# JS Library for Bancoin data services\n\n## Usage\n\n```typescript\nconst DataServiceClient = require('@bancoin/data-service-client-js').default;\n\n// Initialization\nconst client = new DataServiceClient({\n  rootUrl: 'http://api.bancoinplatform.com/v0',\n  fetch: req => window.fetch(req).then(res => res.text()), // fetch must return string\n  parse: str => JSON.parse(str),\n});\n\n// Fetching\n(async () => {\n  const { data } = await client.getAssets('BCT'); // data: Asset {}\n})();\n```\n\n## Methods\n\n### Response format\n\n`{ data, ...meta }`\n\n### All methods do GET requests, until query is under 2k symbols, then automatically switch to POST\n\n- getAssets:\n\n```typescript\nawait client.getAssets('BCT'); // One { data: Asset }\nawait client.getAssets('BCT', '8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'); // Or many { data: Asset[] }\nawait client.getAssetsByTicker('BCT');  // Many { data: Asset[] }\nawait client.getAssetsByTicker('*');  // Many { data: Asset[] } - all assets\n```\n\n- getPairs\n\n```typescript\n\nconst getPairs = client.getPairs('MATCHER_ID'); // set up DEX matcher\nawait getPairs([\n  'BCT/8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS',\n  'BCT/474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'\n]); // get pairs\n```\n\n- getExchangeTxs:\n\n```typescript\nawait client.getExchangeTxs('8rEwYY4wQ4bkEkk95EiyeQnvnonX6TAnU6eiBAbVSADk'); // By id { data: Tx }\nawait client.getExchangeTxs({\n  timeStart?: string | Date | number;\n  timeEnd?: string | Date | number;\n  matcher?: string;\n  sender?: string;\n  amountAsset?: string | Asset;\n  priceAsset?: string | Asset;\n  limit?: number;\n  sort?: 'asc'|'desc';\n}); // With filters { data: Tx[] }\nawait client.getExchangeTxs(); // Top 100 with default filters (timeStart = timestamp of first entry in db, timeEnd = now)\n```\n\n- aliases:\n\n```typescript\nconst alias1 = await client.aliases.getById('@askerych');\n/*\n  { data: {\n      address: '3P5uMgn1xvrm7g3sbUVAGLtetkNUa1AHn2M',\n      alias: '@askerych'\n    }\n  }\n  */\nconst alias2 = await client.aliases.getByAddress(\n  '3P5uMgn1xvrm7g3sbUVAGLtetkNUa1AHn2M'\n);\n/*\n  { data: [{\n      address: '3P5uMgn1xvrm7g3sbUVAGLtetkNUa1AHn2M',\n      alias: '@askerych'\n    }]\n  }\n  */\n```\n\n- getCandles:\n\n```typescript\nawait client.getCandles(amountAsset: string, priceAsset: string, {\n  timeStart: string | Date | number;\n  timeEnd?: string | Date | number;\n  interval: string; // interval pattern is xy, where x - number, y - one of m (minutes), h (hours), d (days), M (Month)\n});\nawait client.getCandles('BCT', '8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS', {\n  timeStart: '2018-12-01',\n  timeEnd: '2018-12-31',\n  interval: '1d'\n});\n```\n\n## Pagination\n\n```typescript\ntype Response<T> = {\n  data: T;\n  fetchMore?: TFunction;\n};\nconst response1 = await client.getExchangeTxs({ limit: 1, sort: 'asc' });\nconst data1 = response1.data;\n// Process data\n\nconst response2 = await res1.fetchMore(2); // 2 more\n```\n\n## Custom init params\n\nYou can set custom fetcher, parser and transformer for library.\n\n```typescript\ntype TLibOptions = {\n  rootUrl: string;\n  fetch?: TFunction;\n  parse?: TParser;\n  transform?: TFunction;\n};\n```\n\nThe path is fetch -> parse -> transform\n\n### Fetch must return string!\n\nFetch accepts (url, options)\nFetch by default is `fetch(...).then(res => res.text())`\n\nParse by default is `JSON.parse.bind(JSON)` , you can use `json-bigint`'s parse if you want to add support for bignumbers.\n\nTransform function has next signature by default (it depends on your parse function):\n\n```\n({\n  __type,\n  data,\n  ...rest\n}) => any\n```\n\nBasically you can switch on \\_\\_type and do transformations.\n","readmeFilename":"README.md"}