{"_id":"@citahub/cita-ee-sdk","_rev":"3-ee45b4f83a0b2f379e0361754d1a1ab2","name":"@citahub/cita-ee-sdk","dist-tags":{"latest":"1.4.0"},"versions":{"1.2.0":{"name":"@citahub/cita-ee-sdk","version":"1.2.0","main":"lib/index.js","repository":"","author":{"name":"Rivtower"},"license":"MIT","scripts":{"start":"nodemon --config nodemon.json","debug":"node debug/index.js","build":"cross-env ../../node_modules/.bin/tsc && npm run browserify","docs":"typedoc --out ./documents/ ./src/","test":"cross-env ../../node_modules/.bin/jest","parse-abi":"node ./scripts/parse_abi.js","example":"node examples/deploy.js","browserify":"browserify ./lib/browser.js -o ./lib/bundle.js && node_modules/.bin/terser lib/bundle.js -c -m -o lib/bundle.js ","precommit":"lint-staged"},"lint-staged":{"*.ts":["cross-env ../../node_modules/.bin/eslint --fix","git add"]},"docs":"typedoc --theme markdown","publishConfig":{"access":"public"},"postinstall":"rm -f node_modules/web3/index.d.ts","devDependencies":{"@types/web3":"1.0.12","browserify":"^16.2.2","cross-env":"^5.2.0","terser":"^4.6.6","typedoc":"^0.15.0"},"dependencies":{"@citahub/cita-signer":"^2.6.0","fstream":"1.0.12","web3":"1.0.0-beta.37"},"jest":{"verbose":true,"testURL":"http://localhost/"},"gitHead":"c779ddab45d74bfdd6a82f9af3bbd3b111fb704c","description":"[![Travis](https://travis-ci.org/citahub/cita-sdk-js.svg?branch=develop)](https://travis-ci.org/citahub/cita-sdk-js) ![npm](https://img.shields.io/npm/v/@citahub/cita-sdk.svg) [![MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://img.shield","_id":"@citahub/cita-ee-sdk@1.2.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-mhkkzgVVX4juXXtE9MMVZOrMszdYXg9kF5pNWg0jzSvD1LeS2EjiDrTuCSo+tp3oTWKvKPfywqAiLD4eKP2d7w==","shasum":"a5cda0f46251ebc5b40b296cf350736792f8de5a","tarball":"https://registry.npmjs.org/@citahub/cita-ee-sdk/-/cita-ee-sdk-1.2.0.tgz","fileCount":89,"unpackedSize":1348282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehprYCRA9TVsSAnZWagAA2E4QAJRX/9zxSsIBIHbly05O\ndOPSuNgM790eqEKE/qaPoU2gnMrOLgx1GocZS7VRnx/G5OFFpbxdZgtMS/Gz\nq9MT6GYW6e2rjQXYopFsvTxn/bKAe+hmtBtjEpxzql+wgw0lXQi9GoS8lQEx\npq7y4y8iw2IN1nRCr5aIHlb0dfPEQ/Pb9iXlGdcZwFfQNEJUn5EY8MvYldxs\njjavuvbRPZhvPo9ER8xwiUL/MkAg09Y/nst3Y8pUxDeIRu1VI0P+1PscKihD\nYlPfDhmXrduTyaC4psS5b4O0dbeOYDSuUHyvuspQwKQ8PFpf5MJXx6ihjVWG\nWowy5NSV/aQxNFVRaUderqkGIW5LbzKBO3kvXOO9B1fwOeu+gi00Sv+zywiD\n6uwfLnedBavQyeNxHABV2nQJ5xhsOHDthE5rPu/Z9ixfKFqNdMseW+xc4dP0\n3NYV6kH8oIOv5vhNDBab+jH2kdsDZqz44R2gko/7RLNXbIkqtlrNNhD4NRNa\n4QYN9wnLWfzygqQKPO0Sy8fqrkOHqLuj0E0RaEXVHvljTArP9aMu6q7TX7Fi\nAoz80ecQG7BXZpZZM2Ckmvk18afFp87kOjcgUauglaVfytXVsFjfhWPlKacM\nE6ssNK/yI0yiXlwqJhzLTN3SaQq0erfU62PbS8RoVw9APuDBTfApQccTjQ3z\nNX2Q\r\n=8iuh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGDNxxoTjyp1Kk6jpan6G1rL7q8W8KzG3O1FFUBugBSFAiEA3VDbfomRpMlFVCUa0kLdvYeWYutEClTdzWAI/WzxtxE="}]},"maintainers":[{"name":"wee911","email":"qiuzengyuan@rivtower.com"},{"name":"citahub-op","email":"citahub-op@rivtower.com"}],"_npmUser":{"name":"wee911","email":"qiuzengyuan@rivtower.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cita-ee-sdk_1.2.0_1585879767634_0.6386920125033813"},"_hasShrinkwrap":false},"1.3.0":{"name":"@citahub/cita-ee-sdk","version":"1.3.0","main":"lib/index.js","repository":"","author":{"name":"Rivtower"},"license":"MIT","scripts":{"start":"nodemon --config nodemon.json","debug":"node debug/index.js","build":"cross-env ../../node_modules/.bin/tsc && npm run browserify","docs":"typedoc --out ./documents/ ./src/","test":"cross-env ../../node_modules/.bin/jest","parse-abi":"node ./scripts/parse_abi.js","example":"node examples/deploy.js","browserify":"browserify ./lib/browser.js -o ./lib/bundle.js && node_modules/.bin/terser lib/bundle.js -c -m -o lib/bundle.js ","precommit":"lint-staged"},"lint-staged":{"*.ts":["cross-env ../../node_modules/.bin/eslint --fix","git add"]},"docs":"typedoc --theme markdown","publishConfig":{"access":"public"},"postinstall":"rm -f node_modules/web3/index.d.ts","devDependencies":{"@types/web3":"1.0.12","browserify":"^16.2.2","cross-env":"^5.2.0","terser":"^4.6.6","typedoc":"^0.15.0"},"dependencies":{"@citahub/cita-signer":"^2.6.0","fstream":"1.0.12","web3":"1.0.0-beta.37"},"jest":{"verbose":true,"testURL":"http://localhost/"},"gitHead":"c779ddab45d74bfdd6a82f9af3bbd3b111fb704c","description":"[![Travis](https://travis-ci.org/citahub/cita-sdk-js.svg?branch=develop)](https://travis-ci.org/citahub/cita-sdk-js) ![npm](https://img.shields.io/npm/v/@citahub/cita-sdk.svg) [![MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://img.shield","_id":"@citahub/cita-ee-sdk@1.3.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-AvWOdcD2RPc5f6/6QLh8sQUcAVzzPuk5ErA1PJOGoszCR0gZdwgjUsQHzOzXmXIkITJ5gtFApHl3BMG5X8uYpA==","shasum":"a61eb8a4b1f5a4f68cc44f38703f12c799a484ad","tarball":"https://registry.npmjs.org/@citahub/cita-ee-sdk/-/cita-ee-sdk-1.3.0.tgz","fileCount":89,"unpackedSize":1348282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjqmkCRA9TVsSAnZWagAAN9QP/RZ0UELblIA/N5mlAFXP\nWM2T2JISfuZv+g4HW3CdvbHwQXMfHfnqL57J8l5NB4Z3dS/Pf0Rp7sndelh1\nP4rdGwiiOB2iNhCGUutmbL7hoY70r3m1gNbRQ3p0Tuao1sQaSNgQbuRNlQtJ\nyU2qiUhN/WRoOFdL14KmqEgPTHP0Qa1bWUgiDFqgAx3IRWcdkD4GZBMdMySX\nAYPRVaut8d14zcEaFJQHx7la0mHipOoJ9TRtysOMg3z9KKEGW0cL1LWCBdm1\nOHRmO26Y1iOLZWt5qCSpkK6ERQUkKeoHD3AKzTTicloJEeWyIO6HkQ6TsGbe\nX6BWqgOmoqHYs7l2rR9d2QCT/I3u1CeovwhPzRrjJocKULcNM4xNGDc7qEhB\ndSAb6YRGLAJXXz4SBs4Vu2W6ZvVqT1WWwNq4A0lbJCZSVPFZEMaOP2gDVTT6\nDAqpYVxujkyOKEf7Loi3QFgxWFHNDQL6U9FuZtpTxv3XZuWuwkr5/l5Kunsr\nLq8wysWAsCjTPo7myHfBahzgn5rToAQ6i1qpKMBsHARKsrqDTz+HPY9J+Kfh\nZUY/KLDsGRQnAVkNEEyAvPfMa7DnElb8GP2fhG78rJPGr5yPkkkTzNGQJSrx\nkvglolxF0RhoOZXIFtymc+p+kAx9EDd16bslGnMVRj6cJ2ed4TbB3jvi45c3\nox90\r\n=CSK1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX4+D+1hRR7MsbEM26DLIz6DGC//0sGPky4e0pdipJ/QIhAPeoSLgq7dcXBjFhG91f7Peq9fHqLI3q8B0BxlA0Pvyk"}]},"maintainers":[{"name":"wee911","email":"qiuzengyuan@rivtower.com"},{"name":"citahub-op","email":"citahub-op@rivtower.com"}],"_npmUser":{"name":"wee911","email":"qiuzengyuan@rivtower.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cita-ee-sdk_1.3.0_1603185059574_0.4015711398401347"},"_hasShrinkwrap":false},"1.4.0":{"name":"@citahub/cita-ee-sdk","version":"1.4.0","main":"lib/index.js","repository":"","author":{"name":"Rivtower"},"license":"MIT","scripts":{"start":"nodemon --config nodemon.json","debug":"node debug/index.js","build":"cross-env ../../node_modules/.bin/tsc && npm run browserify","docs":"typedoc --out ./documents/ ./src/","test":"cross-env ../../node_modules/.bin/jest","parse-abi":"node ./scripts/parse_abi.js","example":"node examples/deploy.js","browserify":"browserify ./lib/browser.js -o ./lib/bundle.js && node_modules/.bin/terser lib/bundle.js -c -m -o lib/bundle.js ","precommit":"lint-staged"},"lint-staged":{"*.ts":["cross-env ../../node_modules/.bin/eslint --fix","git add"]},"docs":"typedoc --theme markdown","publishConfig":{"access":"public"},"postinstall":"rm -f node_modules/web3/index.d.ts","devDependencies":{"@types/web3":"1.0.12","browserify":"^16.2.2","cross-env":"^5.2.0","terser":"^4.6.6","typedoc":"^0.15.0"},"dependencies":{"@citahub/cita-signer":"^2.6.0","fstream":"1.0.12","web3":"1.0.0-beta.37"},"jest":{"verbose":true,"testURL":"http://localhost/"},"gitHead":"c779ddab45d74bfdd6a82f9af3bbd3b111fb704c","description":"[![Travis](https://travis-ci.org/citahub/cita-sdk-js.svg?branch=develop)](https://travis-ci.org/citahub/cita-sdk-js) ![npm](https://img.shields.io/npm/v/@citahub/cita-sdk.svg) [![MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://img.shield","_id":"@citahub/cita-ee-sdk@1.4.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-OMdVbcAmEaohUklLIDbqnwssqJPfa64eaRh6XF3xqnHetfSVjZ2LrEKN6FK2WiX1uRJXL2pM9yO6BuUgth1n3A==","shasum":"3924ea0340933914a1846a8b263ddf200de6bfe7","tarball":"https://registry.npmjs.org/@citahub/cita-ee-sdk/-/cita-ee-sdk-1.4.0.tgz","fileCount":93,"unpackedSize":1356300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4vQNCRA9TVsSAnZWagAAR1YP/AlPjHeLy7nrsymvz6sV\nBOBBzZdpdZqcS+64/FDGDgOa9lnr6uz6wFu0bS/wQPmz6BgX+retpcNyVWRo\nx+0qYe+VvqgYRhD1b8voKU8qQVcYWdWIN7av37cDQNWrEbxs2B5VYrpfqYzX\nbysWnbHbS3z1NkZ3anfOgk63r29L8viLaz8kWhcgiava6gJzY8Ap4veGngrj\nl1/nF0N3GqfhYoZ7kb6YJCRz6F24jpLl31GmRP2BtmevFCRHywDuv4NsPoXz\nSWwoNPbfFfF87GGcdyxPPwB+Y0bw0hbG4buiXlLENL5F0M2mGCekYpc3Lgzf\nS5tuMVthiODlJMCsYnKgf6lXwwM0jPWSl6kiu4hpc77IkzQHz3/2vedAGQn/\n2uzq4hCJ4W/MBaLYnxFx4ANNaOpV6jr5/BnskMSB6xWZiZ7soxU8guItHbkY\nhR6Ntk7O+FDTbA3hUQLE6llQLNwLQbgofaGN0GXVEYKhFr9n8VCZ4TomeNmV\n85nDvAJl/72U/EVLmdVXFLPwExT3LB4V7jWTm4TTWU326QaSsjyfJi/4bauy\nFcRB6oUMDu2PeCyA8WXlaGrHOR9gcy+/WhHhBb8e3mhGMaTfMblV86Ar4L4+\npzRRj38vQYRjLf1gA6OyP3St1PhTgY2HLdL8UlhWSq+nVwKeqnRRl2G9+hIs\n5iTf\r\n=XY6r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgdVgBNY5bZJecq/zCMzEKxJzF2Av+OB/zvloJsacMcwIhAIeoXZY5hZupaUdEh8n15p5oUyRGuRef3JQcsxZojgBp"}]},"_npmUser":{"name":"wee911","email":"qiuzengyuan@rivtower.com"},"directories":{},"maintainers":[{"name":"citahub-op","email":"citahub-op@rivtower.com"},{"name":"wee911","email":"qiuzengyuan@rivtower.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cita-ee-sdk_1.4.0_1608709133007_0.5037503696771721"},"_hasShrinkwrap":false}},"time":{"created":"2020-04-03T02:09:27.425Z","1.2.0":"2020-04-03T02:09:27.813Z","modified":"2022-04-04T23:05:19.117Z","1.3.0":"2020-10-20T09:10:59.748Z","1.4.0":"2020-12-23T07:38:53.216Z"},"maintainers":[{"name":"citahub-op","email":"citahub-op@rivtower.com"},{"name":"wee911","email":"qiuzengyuan@rivtower.com"}],"description":"[![Travis](https://travis-ci.org/citahub/cita-sdk-js.svg?branch=develop)](https://travis-ci.org/citahub/cita-sdk-js) ![npm](https://img.shields.io/npm/v/@citahub/cita-sdk.svg) [![MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://img.shield","author":{"name":"Rivtower"},"license":"MIT","readme":"[![Travis](https://travis-ci.org/citahub/cita-sdk-js.svg?branch=develop)](https://travis-ci.org/citahub/cita-sdk-js)\n![npm](https://img.shields.io/npm/v/@citahub/cita-sdk.svg)\n[![MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://img.shields.io/npm/v/@citahub/cita-sdk.svg)\n\n[中文文档](https://github.com/citahub/cita-sdk-js/blob/develop/docs/zh-CN/cita-sdk.md)\n\n# About\n\n`@citahub/cita-sdk` is a function takes `provider` and `Web3 Class`(optional) as inputs, returns cita-supported web3 instance, methods of `citaSDK.utils`, `citaSDK.eth`, `citaSDK.shh`, `citaSDK.bzz` are same as [web3](https://web3js.readthedocs.io/en/1.0/getting-started.html)\n\n# Notice\n\nWebsocket is supported, but the pub/sub is not completed in CITA for now.\n\n# Version\n\n`@citahub/cita-sdk` strictly abides by Semver, and is compatible with [CITA](https://github.com/citahub/cita) by `MAJOR` and `MINOR` version, e.g. `@citahub/cita-sdk@0.17.x` will work perfectly with `CITA@0.17`\n\n# Prerequisites\n\n## Learn `web3@1.0`\n\nBy default, `@citahub/cita-sdk` acts like [`web3@1.0.0`](https://web3js.readthedocs.io/en/1.0/getting-started.html), and has the same APIs.\n\n## Learn `CITA`\n\n`@citahub/cita-sdk` works for [CITA](https://citahub.com).\n\nBefore using this SDK, following concept should be cast.\n\n1. Transaction Object\n\nTransaction Object to be signed has been defined in [cita-proto](https://github.com/citahub/cita-proto/blob/master/blockchain.proto#L49)\n\nTransaction Object returned from CITA has been declared [here](https://github.com/citahub/cita/blob/develop/docs/zh-CN/rpc_guide/rpc.md#gettransaction)\n\n2. Transaction Receipt\n\n[Transaction Receipt](https://github.com/citahub/cita/blob/develop/docs/zh-CN/rpc_guide/rpc.md#gettransactionreceipt)\n\n3. Block Object\n\n[Block Object](https://github.com/citahub/cita/blob/develop/docs/zh-CN/rpc_guide/rpc.md#getblockbyhash)\n\n4. MetaData Object\n\n[MetaData Object](https://github.com/citahub/cita/blob/develop/docs/zh-CN/rpc_guide/rpc.md#getmetadata)\n\n5. ABI\n\n[ABI](https://solidity.readthedocs.io/en/v0.4.25/abi-spec.html)\n\n6. Filter Object\n\n[Filter Object](https://docs.citahub.com/en-US/cita/rpc-guide/rpc#newfilter)\n\n7. Transaction Log\n\n````javascript\nLog {\n  address: string\n  topics: string[]\n  data: string\n  blockHash: string\n  blockNumber: string\n  transactionHash: string\n  transactionIndex: string\n  logIndex: string\n  transactionLogIndex: string\n  decodedLogs: object\n}\n``\n\n# Getting Started\n\nTo use `@citahub/cita-sdk`, you can add it via npm\n\n```shell\nyarn add @citahub/cita-sdk\n````\n\nor to link it in browser directly with\n\n```html\n<script src=\"node_modules/@citahub/cita-sdk/lib/bundle.js\" />\n```\n\n# Add `citaSDK.js`\n\n```javascript\nimport CITASDK from '@citahub/cita-sdk'\nconst citaSDK = CITASDK('http://localhost:1337')\n```\n\n# CITA SDK\n\n`citaSDK.base` allows you to interact with an CITA Blockchain and CITA Smart Contract.\n\n## RPC API Reference\n\n### peerCount\n\n```javascript\n/**\n * @method peerCount\n * @desc request peer count of CITA\n * @param null\n * @return {Promise<string>} Promise returns peer count\n */\ncitaSDK.base.peerCount()\n```\n\n### getMetaData\n\n```javascript\n/**\n * @method getMetaData\n * @desc request metadata of CITA, including `chainId`, `chainName`, `operator`, `website`, `genesisTimestamp`, `validators`, `blockInterval`, `tokenName`, `tokenSymbol`, `tokenAvatar`\n * @param null\n * @return {Promise<object>} Promise returns metadata\n * {\n *   \"result\": {\n *    \"website\": \"https://www.example.com\",\n *    \"validators\": [\n *     \"0x71b028e49c6f41aaa74932d703c707ecca6d7321\",\n *     \"0xee01b9ba97671e8a1891e85b206b499f106822a1\",\n *     \"0x486bb688c8d29056bd7f87c26733048b0a6abda1\",\n *     \"0x31042d4f7662cddf8ded5229db3c5e7302875e11\"\n *    ],\n *    \"tokenSymbol\": \"NOS\",\n *    \"tokenName\": \"Nervos\",\n *    \"tokenAvatar\": \"https://avatars1.githubusercontent.com/u/35361817\",\n *    \"operator\": \"test-operator\",\n *    \"number\": \"0xA2DE3\",\n *    \"genesisTimestamp\": 1532314871400,\n *    \"chainName\": \"test-chain\",\n *    \"chainId\": 1,\n *    \"blockInterval\": 3000\n *   }\n * }\n */\ncitaSDK.base.getMetaData()\n```\n\n### getAbi\n\n```javascript\n/**\n * @method getAbi\n * @desc request abi object from the CITA\n * @param {string} - contract address\n * @param {string} - block number\n * @return {Promise<Abi>} Promise returns abi\n */\ncitaSDK.base.getAbi('0xb3f940e3b5F0AA26dB9f86F0824B3581fE18E9D7', 'latest')\n```\n\n### getCode\n\n```javascript\n/**\n * @method getCode\n * @desc request contract code from the CITA\n * @param {string} - contract address\n * @param {string} - block number\n * @return {Promise<string>} Promise returns code\n */\ncitaSDK.base.getCode('0xb3f940e3b5F0AA26dB9f86F0824B3581fE18E9D7', 'latest')\n```\n\n### getBalance\n\n```javascript\n/**\n * @method getBalance\n * @desc request balance of specified account\n * @param {string} - account address\n * @return {Promise<BN>} Promise returns balance\n */\ncitaSDK.base.getBalance('0xb3f940e3b5F0AA26dB9f86F0824B3581fE18E9D7')\n```\n\n### getAccounts\n\n```javascript\n// TODO:\n```\n\n### getBlock\n\n```javascript\n/**\n * @method getBlock\n * @desc request block of specified hash or number\n * @param {string|number} - block hash or block number\n * @return {Promise<Block>} Promise returns block\n */\ncitaSDK.base.getBlock(0)\n```\n\n### getBlockByNumber\n\n```javascript\n/**\n * @method getBlockByNumber\n * @desc request block of specified number\n * @param {number} - block number\n * @return {Promise<Block>} Promise returns block\n */\ncitaSDK.base.getBlockByNumber(0)\n```\n\n### getBlockByHash\n\n```javascript\n/**\n * @method getBlockByHash\n * @desc request block of specified hash\n * @param {string} - block hash\n * @return {Promise<Block>} Promise returns block\n */\ncitaSDK.base.getBlockByHash('0x0c56def738d15d9dfaad64ad246e8b5fe39e175ce3da308ea1018869522a1a4d')\n```\n\n### getBlockNumber\n\n```javascript\n/**\n * @method getBlockNumber\n * @desc request current block number of CITA\n * @param null\n * @return {Promise<number>} Promise returns current block number\n */\ncitaSDK.base.getBlockNumber()\n```\n\n### getBlockTransactionCount\n\n```javascript\n// TODO:\n```\n\n### getTransactionCount\n\n```javascript\n/**\n * @method getTransactionCount\n * @desc get transaction account of specified account\n * @param {string} - account address\n * @return {Promise<number>} Promise returns transaction count of account address\n */\ncitaSDK.base.getTransactionCount('0xb3f940e3b5F0AA26dB9f86F0824B3581fE18E9D7')\n```\n\n### getLogs\n\n```javascript\n/**\n * @method getLogs\n * @desc get logs by filter object and abi\n * @param {object} - filter object\n * @param {object} - [abi], event abi\n * @return {Promise<logs>} Promise returns logs of block or transaction\n */\n\nconst abi = [\n  {\n    indexed: false,\n    name: '_sender',\n    type: 'address',\n  },\n  {\n    indexed: false,\n    name: '_text',\n    type: 'string',\n  },\n  {\n    indexed: true,\n    name: '_time',\n    type: 'uint256',\n  },\n]\nconst filter = {\n  address: '0x35bD452c37d28becA42097cFD8ba671C8DD430a1',\n  fromBlock: '0x0',\n}\ncitaSDK.base.getLogs(filter, abi).then(console.log)\n```\n\n### newMessageFilter\n\n```javascript\n/**\n * @method newMessageFilter\n * @desc creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call getFilterChanges.\n * @param {object} - topics object\n * @return {Promise<string>} Promise returns filter id\n */\n\nconst topics = {\n  topics: ['0x8fb1356be6b2a4e49ee94447eb9dcb8783f51c41dcddfe7919f945017d163bf3'],\n}\ncitaSDK.base.newMessageFilter(topics)\n```\n\n### newBlockFilter\n\n```javascript\n/**\n * @method newBlockFilter\n * @desc creates a filter in the node, to notify when a new block arrives. To check if the state has changed, call getFilterChanges.\n * @param null\n * @return {Promise<string>} Promise returns filter id\n */\n\ncitaSDK.base.newBlockFilter()\n```\n\n### getFilterChanges\n\n```javascript\n/**\n * @method getFilterChanges\n * @desc polling method for a filter, which returns an array of logs which occurred since last poll. If parameter is a block filter id, it will return an array of block hashes, otherwise it will return an array of transaction logs\n * @param {string} - filter id\n * @return {Promise<Array<string>} Promise returns filter logs\n */\n\ncitaSDK.base.getFilterChanges('0x1')\n```\n\n### getFitlerLogs\n\n```javascript\n/**\n * @method getFitlerLogs\n * @desc Returns an array of all logs matching filter with given id.\n * @param {string} - filter id\n * @return {Promise<Array<string>} Promise returns filter logs\n */\n\ncitaSDK.base.getFitlerLogs('0x1')\n```\n\n### deleteMessageFilter\n\n```javascript\n/**\n * @method deleteMessageFilter\n * @desc remove a filter with given id. Should always be called when watch is no longer needed. Additonally Filters timeout when they aren't requested with getFilterChanges for a period of time.\n * @param {string} - filter id\n * @return {Promise<boolean>} Promise returns success\n */\n\ncitaSDK.base.deleteMessageFilter('0x1')\n```\n\n### sign\n\n```javascript\n/**\n * @method sign\n * @desc sign message by wallet\n * @param {string} - message to sign\n * @param {string} - address of specified account\n * @return {Promise<string>} Promise returns signed message\n */\n\ncitaSDK.base.sign('hello', '0x6fc32e7bdcb8040c4f587c3e9e6cfcee4025ea58')\n```\n\n### personal.sign\n\n```javascript\n/**\n * @method personal.sign\n * @desc sign message by wallet\n * @param {string} - message to sign\n * @param {string} - address of specified account\n * @param {string} - password of specified account\n * @return {Promise<string>} Promise returns signed message\n */\n\ncitaSDK.base.personal.sign('message', '0x6fc32e7bdcb8040c4f587c3e9e6cfcee4025ea58', 'password')\n```\n\n### sendTransaction\n\n```javascript\n/**\n * @method sendTransaction\n * @desc send transaction to CITA, if transaction including `privateKey`, or wallet has been set, it will sign the transaction locally, otherwise the transaction will be send to node and signed remote.\n * @param {object} - transaction object\n * @return {Promise<object>} Promise returns transaction hash object\n */\n\ncitaSDK.base.sendTransaction(transaction)\n```\n\n### sendSignedTransaction\n\n```javascript\n/**\n * @method sendSignedTransaction\n * @desc send signed transaction to CITA\n * @param {string} - signed transaction message\n * @return {Promise<object>} Promise returns transaction hash object\n */\n\ncitaSDK.base.sendSignedTransaction('signedTransaction')\n```\n\n### getTransactionReceipt\n\n```javascript\n/**\n * @method getTransactionReceipt\n * @desc request transaction receipt\n * @param {string} - transaction hash\n * @return {Promise<object>} Promise returns transaction receipt object\n */\n\ncitaSDK.base.getTransactionReceipt('0xe418a9cf4f4257aaed8c4c1259d30fb41ea650f4b4ef95ebb28cb3b29ccb1d91')\n```\n\n```javascript\n/**\n * @method getTransactionProof\n * @desc request transaction proof\n * @param {string} - transaction hash\n * @return {Promise<string>} Promise returns transaction proof\n */\n\ncitaSDK.base.getTransactionProof('0xe418a9cf4f4257aaed8c4c1259d30fb41ea650f4b4ef95ebb28cb3b29ccb1d91')\n```\n\n### getTransaction\n\n```javascript\n/**\n * @method getTransaction\n * @desc request transaction by hash\n * @param {string} - transaction hash\n * @return {Promise<object>} Promise returns transaction object\n */\n\ncitaSDK.base.getTransaction('0x6fc32e7bdcb8040c4f587c3e9e6cfcee4025ea58')\n```\n\n## Contract Reference\n\n### Deploy Contract\n\n```javascript\nconst abi = JSON.parse(\n  '[{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]',\n)\nconst bytecode =\n  '6060604052341561000f57600080fd5b60d38061001d6000396000f3006060604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c14606e575b600080fd5b3415605857600080fd5b606c60048080359060200190919050506094565b005b3415607857600080fd5b607e609e565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a723058202d9a0979adf6bf48461f24200e635bc19cd1786efbcfc0608eb1d76114d405860029'\nconst privateKey = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'\nconst transaction = {\n  from: '0xb4061fA8E18654a7d51FEF3866d45bB1DC688717',\n  privateKey,\n  nonce: 999999,\n  quota: 1e10,\n  chainId: 1,\n  version: 2,\n  validUntilBlock: 999999,\n  value: '0x0',\n}\n// create contract instance\nconst myContract = new citaSDK.base.Contract(abi)\n\n// deploy contract and get transaction result\nconst txRes = await myContract\n  .deploy({\n    data: bytecode,\n    arguments: [],\n  })\n  .send(tx)\n\n// get transaction receipt by transaction hash\nconst receipt = await web3.listeners.listenToTransactionReceipt(txRes.hash)\n\n// set contract address to contract instance\nmyContract.options.address = receipt.contractAddress\n```\n\n### Store Abi\n\n```javascript\n/**\n * @method storeAbi\n * @desc send contract abi to CITA\n * @param {string} - contract hash\n * @param {abi} - abi object\n * @return {Promise<object>} Promise returns transaction receipt object\n */\nconst contractAddress = '0x6fc32e7bdcb8040c4f587c3e9e6cfcee4025ea58'\nconst abi = JSON.parse(\n  '[{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]',\n)\n\nconst receipt = citaSDK.base.storeAbi(contractAddress, abi, transaction)\n```\n\n### Use Contract\n\n```javascript\nconst abi = JSON.parse(\n  '[{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]',\n)\nconst contract = new citaSDK.base.Contract(abi, contractAddress)\n\n// call method\n// get method is specified by contract through abi\n// contract.methods.myMethod(paramters).call(transaction)\ncontract.methods.get().call()\n\n// send method\n// set method is specified by contract through abi\n// contract.methods.myMethod(parameters).send(transaction)\ncontract.methods.set(5).send(transaction)\n```\n\n## Utils API\n\n### signer\n\n```javascript\n/**\n * @method signer\n * @desc sign a transaction\n * @param {object} transaction object\n * @param {string} [externalPrivateKey] - if external private key exsits, the one in transaction object will be overriden\n * @return {string} signedTransaction\n */\ncitaSDK.base.signer({\n  privateKey: '0x7cc34429d268cdf33e1595d9aa3c56bfcb785c24b7f6dd031fe059d93d8e92d9',\n  data:\n    '6060604052341561000f57600080fd5b60d38061001d6000396000f3006060604052600436106049576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360fe47b114604e5780636d4ce63c14606e575b600080fd5b3415605857600080fd5b606c60048080359060200190919050506094565b005b3415607857600080fd5b607e609e565b6040518082815260200191505060405180910390f35b8060008190555050565b600080549050905600a165627a7a723058202d9a0979adf6bf48461f24200e635bc19cd1786efbcfc0608eb1d76114d405860029',\n  nonce: '47',\n  quota: 2.1e13,\n  validUntilBlock: 114930,\n  version: 2,\n  chainId: 1,\n  value: '0',\n})\n```\n\n### unsigner\n\n```javascript\n/**\n * @method unsigner\n * @desc unsign a signed transaction\n * @param {string} signed transaction\n * @return {object} unsigned transaction\n * {\n *    crypot: 0,\n *    sender: {\n *      address: 'f74b3a9c67d4b657dd335e1d5f57e7ef7d160470',\n *      publicKey: '708e8f442b8b94735d09c7f32eb05c0831f1f888dbbde5f979c0fd0613808facb857207c420b1c75a62612995a78455c2c21756e28a0a1c881d62ea3d6f975f0',\n *    },\n *    signature: '9941c2619195b833b3292a6aeb5aa568ee0a8cd5eef67e1ff77612c87121b65866483ba0c79d88445ad368459c600fbf52b6d0c20aaa507ecdaf233ff4cf2c4701',\n *    transaction: {\n *      chainId: 1,\n *      data: [...],\n *      nonce: '2e96d7a387092faa' ,\n *      quota: 1e10,\n *      to: '',\n *      validUntilBlock: 663228,\n *      value: [...],\n *      version: 2,\n *    }\n * }\n */\ncitaSDK.base.unsigner(transactionContent)\n```\n\n### transactionReceiptListener\n\n```javascript\n/**\n * @method listenToTransactionReceipt\n * @desc listen to transaction receipt by hash\n * @param {string} transaction hash\n * @return {Promise<object>} transaction receipt object\n */\ncitaSDK.listeners.listenToTransactionReceipt(result.hash).then(console.log)\n```\n\n## System Contracts API\n\nSystem contracts locating in `citaSDK.system` can be used as normal contracts.\n\n```javascript\ncitaSDK.system.admin\ncitaSDK.system.authorization\ncitaSDK.system.batchTx\ncitaSDK.system.chainManager\ncitaSDK.system.emergencyBrake\ncitaSDK.system.groupManagement\ncitaSDK.system.nodeManager\ncitaSDK.system.permissionManagement\ncitaSDK.system.priceManager\ncitaSDK.system.quotaManager\ncitaSDK.system.roleManagement\ncitaSDK.system.sysConfig\ncitaSDK.system.versionManage\ncitaSDK.system.cerRevokeManager\n```\n\nCorresponding methods can be found [here](https://docs.citahub.com/en-US/cita/system/system-contracts#batch-transaction)\n\n## Additional Utils\n\n```javascript\n/**\n * @function isPrivateKey\n * @desc check if private key is in right format\n * @param {string} - privateKey\n * @return {boolean} - valid\n */\nconst valid = citaSDK.utils.isPrivateKey('0x7cc34429d268cdf33e1595d9aa3c56bfcb785c24b7f6dd031fe059d93d8e92d')\n```\n","readmeFilename":"README.md"}