{"_id":"@cybercongress/js-amino","_rev":"7-be73d1fea12c44dc9799eb0f90d7e586","name":"@cybercongress/js-amino","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@cybercongress/js-amino","version":"1.0.0","description":"JS Implementation of Amino","main":"src/index.js","dependencies":{"int53":"^0.2.4","js-sha256":"^0.9.0","nanoseconds":"^1.0.1","safe-buffer":"^5.1.2","signed-varint":"^2.0.1","varint":"^5.0.0"},"devDependencies":{"coveralls":"^3.0.3","mocha":"^5.2.0","mocha-lcov-reporter":"^1.3.0"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/cybercongress/js-amino.git"},"author":{"name":"TanDo"},"license":"MIT","homepage":"https://github.com/cybercongress/js-amino/","gitHead":"7e3dcf53552af7de77ecd8b0e622d8ac787765f9","bugs":{"url":"https://github.com/cybercongress/js-amino/issues"},"_id":"@cybercongress/js-amino@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"litvintech","email":"litvintech@gmail.com"},"dist":{"integrity":"sha512-9NNwrJJBThLZt+WDE1yDCVawX1cMkmgUnN5J1wO6+oPX/D6Wrbfe3zjeJu4n0xexJmmN8E1rBr5liK7qBWWPOg==","shasum":"6f9a967de8da5ce211d54e6fc3ccd58dbe2b0c67","tarball":"https://registry.npmjs.org/@cybercongress/js-amino/-/js-amino-1.0.0.tgz","fileCount":48,"unpackedSize":133353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpb9lCRA9TVsSAnZWagAARsQP/16c3GW1Booxamj3z37h\npPmaV011tyowZMmk28ad5+qpcNfRgU40qsA7YlOkhU2gO6nGH12j/VUmhq3v\n4EXW+1PHQkAklxeDm6RxeRgugxh8r88N57npdek3J2LxsKP/jWGCOlOUyJYy\n7nftgobe63Snt4EyYuNfnnMUcuxK2KwtEYmd7c7oGRSriIEfCHjHIGizMyUb\nFrmyxht683Zm5zeKt2JhdL02H30DuNP8VaPu/i7IiMBG+ia615Uqnp9rqaC7\nMQxRkmyv+SHtyoOXsIIE8QSoO8Dl77mq0kWq2ziP/wehlHGqwCxN2JHsL7Au\nlHgVNkwuvaXtY0S5l9Sai+A284d36/BaFlsL5POUrVTsjRpxbxOrp/SrmoiA\nOyStoSQQOGBSbqphC1wFzB/zKvFqjRGDibCWjsXKJ+yFsQTlXkzH8LLthDLY\n+KtrucE5+WID0SVwhzomks4qr8B81qyidwml0sEs7Ml83aD2ZG/O4T1109v3\nysSzbC79ayJerHAJMe5nEKx2Wjkx1qLBK67Jbav1zr34JHJrcjzqm9rUZmKY\nw0eg5JfX/645DinmT6A5ODHd0spCXW5IZidUCUp9GGF5T1AOvU9Lkg4SQ529\n8X1cFgYDFcAk3Rq+bpnYAk+l/9EhyaA3iS/eLAd6LtAsEpR/wDZMwCZsfT1i\nIJoL\r\n=2QOo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWp07H3dSzBGPJUbAQl97VnhQlXFQhUN5Z75zlbmLrgwIhALx8FVOgJHPOUP8zEQoEqyYGxyWbUSIuMCiN8GezY1s3"}]},"maintainers":[{"name":"tando","email":"darkknightkhtn2008@gmail.com"},{"name":"litvintech","email":"litvintech@gmail.com"},{"name":"andrey.luzhkovsky","email":"andrewluzkovsky@gmail.com"},{"name":"vstavetski","email":"vstavetski@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/js-amino_1.0.0_1554366308284_0.04846841926792189"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-04T08:25:08.128Z","1.0.0":"2019-04-04T08:25:08.427Z","modified":"2022-04-05T02:25:16.978Z"},"maintainers":[{"email":"korzhovnik.dima@gmail.com","name":"dimakorzhovnik"},{"email":"ales.puchilo@gmail.com","name":"savetheales"},{"email":"litvintech@gmail.com","name":"litvintech"}],"description":"JS Implementation of Amino","homepage":"https://github.com/cybercongress/js-amino/","repository":{"type":"git","url":"git+https://github.com/cybercongress/js-amino.git"},"author":{"name":"TanDo"},"bugs":{"url":"https://github.com/cybercongress/js-amino/issues"},"license":"MIT","readme":"<h1 align=\"center\">\n  <img src=\"logo.png\"\n  alt=\"chaingear\" width=\"470\"></a>\n</h1>\n\n<h3 align=\"center\">An Implementation of Amino for clients with Javascript</h3>\n<div align=\"center\">\n  Current state: 1.0.0 First major public release\n</div>\n\n<br />\n\n[![Coverage Status](https://coveralls.io/repos/github/cybercongress/js-amino/badge.svg)](https://coveralls.io/github/cybercongress/js-amino)\n<div align=\"center\">\n<img src=\"https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square\" alt=\"contributors\"/>\n  <img src=\"https://img.shields.io/badge/contributions-welcome-orange.svg?style=flat-square\" alt=\"Contributions Welcome\" />\n  <a href=\"https://t.me/fuckgoogle\"> <img src=\"https://img.shields.io/badge/Join%20Us%20On-Telegram-2599D2.svg?style=flat-square\" alt=\"Join Us On Telegram\" /></a>\n</div>\n\n<div align=\"center\">\n  <sub>Built and maintenance by\n  <a href=\"https://github.com/cybercongress/js-amino/graphs/contributors\">\n    contributors\n  </a>\n  and\n  <a href=\"https://twitter.com/cyber_devs\">cyber•Congress</a> \n</div>\n\nFor more information spec, please refer: https://github.com/tendermint/go-amino\n\n## Features:\n1. Encode and Decode simple types: ints 8/16/32/64, booleans, strings, bytes\n2. Encode and Decode recursive Structs and Interfaces, Arrays\n3. Encode simple Time data\n\n## Install From NPM:\nRun `npm i js-amino`\n\n## Install From Source\n\n1. Run `npm install`\n\n## Running The Examples\n\n1. `cd src/examples`\n2. `go get`\n3. Run examples, e. g. in Go: `go run string.go` and in JS `node string.js`\n\n## Running The Unit Test\n\n1. Run `npm test`\n\n## To Do:\n1. Full support for Time encoding and decoding\n2. More Unit test\n3. Benchmarking\n\n## Gitcoin program\n\n## Our cosmos ecosystem initiative\n\n## Usage (MsgMultiSend example)\n\n```js\nconst {\n    Codec,\n    FieldOtions,\n    TypeFactory,\n    Utils,\n    Types,\n    WireTypes,\n} = require('../index');\n\nlet StdTx = TypeFactory.create('StdTx', [{\n        name: 'msg',\n        type: Types.ArrayInterface,\n    },\n    {\n        name: 'fee',\n        type: Types.Struct,\n    },\n    {\n        name: 'signatures',\n        type: Types.ArrayStruct,\n    },\n    {\n        name: 'memo',\n        type: Types.String,\n    },\n]);\n\nlet MsgMultiSend = TypeFactory.create('MsgMultiSend', [{\n        name: \"inputs\",\n        type: Types.ArrayStruct\n    },\n    {\n        name: \"outputs\",\n        type: Types.ArrayStruct \n    }\n]);\n\nlet Coin = TypeFactory.create('coin', [{\n        name: 'denom',\n        type: Types.String,\n    },\n    {\n        name: 'amount',\n        type: Types.String,\n    }\n]);\n\nlet Input = TypeFactory.create('input', [{\n        name: 'address',\n        type: Types.String,\n    },\n    {\n        name: 'coins',\n        type: Types.ArrayStruct,\n    }\n]);\n\nlet Output = TypeFactory.create('output', [{\n        name: 'address',\n        type: Types.String,\n    },\n    {\n        name: 'coins',\n        type: Types.ArrayStruct,\n    }\n]);\n\nlet Fee = TypeFactory.create('fee', [{\n        name: 'amount',\n        type: Types.ArrayStruct,\n    },\n    {\n        name: 'gas',\n        type: Types.Int64,\n    }\n]);\n\nlet PubKeySecp256k1 = TypeFactory.create('PubKeySecp256k1', [{\n    name: 's',\n    type: Types.ByteSlice,\n}], Types.ByteSlice)\n\nlet Signature = TypeFactory.create('signature', [{\n        name: 'pub_key',\n        type: Types.Interface,\n    },\n    {\n        name: 'signature',\n        type: Types.ByteSlice,\n    }\n])\n\nlet codec = new Codec();\n\ncodec.registerConcrete(new StdTx(), 'auth/StdTx', {});\ncodec.registerConcrete(new MsgMultiSend(), 'cosmos-sdk/MsgMultiSend', {});\ncodec.registerConcrete(new PubKeySecp256k1(), 'tendermint/PubKeySecp256k1', {});\n\nlet coin = new Coin('cyb', \"10000\");\n\nlet addressFrom = [ 59,58,243,13,132,163,164,202,233,7,236,93,136,166,181,175,236,69,48,186 ]\nlet addressTo = [ 94,222,114,42,196,107,51,203,139,142,219,243,137,60,54,250,139,153,46,168 ]\n  \nlet input = new Input(addressFrom, [coin]);\nlet output = new Output(addressTo, [coin]);\nlet sendMultiMsg = new MsgMultiSend([input], [output]);\nlet fee = new Fee([new Coin('cyb', '0')], 200000);\n\nlet pubKey = new PubKeySecp256k1([2,27,24,0,255,96,147,21,64,29,132,192,108,219,59,134,206,201,126,224,63,160,24,236,170,124,164,95,43,180,6,246,250]);\nlet signature = [165,76,109,61,53,129,190,147,52,224,34,106,235,208,224,36,190,25,204,36,226,129,97,109,35,130,217,228,144,106,10,134,14,183,95,252,219,235,22,92,37,53,3,89,111,173,12,158,146,71,82,113,236,241,170,121,217,20,236,23,131,35,80,29];\n\nlet sig = new Signature(pubKey, signature);\nlet stdTx = new StdTx([sendMultiMsg], fee, [sig], 'elonmusk');\n\nlet jsonTx = codec.marshalJson(stdTx);\nlet decodedDataTx = new StdTx();\n\nconsole.log(\"Binary stdTx:\\n\", (codec.marshalBinary(stdTx)).toString());\nconsole.log(\"Json:\\n\", jsonTx);\ncodec.unMarshalBinary(codec.marshalBinary(stdTx), decodedDataTx);\nconsole.log(\"Decoded data:\\n\", decodedDataTx.JsObject());\n```\n\n```js\nBinary stdTx:\n  220,1,240,98,93,238,10,80,194,104,154,209,10,36,10,20,59,58,243,13,132,163,164,202,233,7,236,93,136,166,181,175,236,69,48,186,18,12,10,3,99,121,98,18,5,49,48,48,48,48,18,36,10,20,94,222,114,42,196,107,51,203,139,142,219,243,137,60,54,250,139,153,46,168,18,12,10,3,99,121,98,18,5,49,48,48,48,48,18,14,10,8,10,3,99,121,98,18,1,48,16,192,154,12,26,106,10,38,235,90,233,135,33,2,27,24,0,255,96,147,21,64,29,132,192,108,219,59,134,206,201,126,224,63,160,24,236,170,124,164,95,43,180,6,246,250,18,64,165,76,109,61,53,129,190,147,52,224,34,106,235,208,224,36,190,25,204,36,226,129,97,109,35,130,217,228,144,106,10,134,14,183,95,252,219,235,22,92,37,53,3,89,111,173,12,158,146,71,82,113,236,241,170,121,217,20,236,23,131,35,80,29,34,8,101,108,111,110,109,117,115,107\n\nJson:\n {\"type\":\"auth/StdTx\",\"value\":{\"msg\":[{\"type\":\"cosmos-sdk/MsgMultiSend\",\"value\":{\"inputs\":[{\"address\":[59,58,243,13,132,163,164,202,233,7,236,93,136,166,181,175,236,69,48,186],\"coins\":[{\"denom\":\"cyb\",\"amount\":\"10000\"}]}],\"outputs\":[{\"address\":[94,222,114,42,196,107,51,203,139,142,219,243,137,60,54,250,139,153,46,168],\"coins\":[{\"denom\":\"cyb\",\"amount\":\"10000\"}]}]}}],\"fee\":{\"amount\":[{\"denom\":\"cyb\",\"amount\":\"0\"}],\"gas\":\"200000\"},\"signatures\":[{\"pub_key\":{\"type\":\"tendermint/PubKeySecp256k1\",\"value\":\"AhsYAP9gkxVAHYTAbNs7hs7JfuA/oBjsqnykXyu0Bvb6\"},\"signature\":\"pUxtPTWBvpM04CJq69DgJL4ZzCTigWFtI4LZ5JBqCoYOt1/82+sWXCU1A1lvrQyekkdScezxqnnZFOwXgyNQHQ==\"}],\"memo\":\"elonmusk\"}}\n\nDecoded data:\n { msg: [ { inputs: [Array], outputs: [Array] } ],\n  fee: { amount: [ [Object] ], gas: 200000 },\n  signatures: [ { pub_key: [Array], signature: [Array] } ],\n  memo: 'elonmusk' }\n```\n\n## Contributing Guide\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore -->\n<table><tr><td align=\"center\"><a href=\"https://github.com/Thunnini\"><img src=\"https://avatars2.githubusercontent.com/u/16339680?v=4\" width=\"100px;\" alt=\"JungHwan Tony Yun\"/><br /><sub><b>JungHwan Tony Yun</b></sub></a><br /><a href=\"https://github.com/cybercongress/js-amino/commits?author=Thunnini\" title=\"Code\">💻</a></td><td align=\"center\"><a href=\"https://www.linkedin.com/in/do-ngoc-tan-64260072/\"><img src=\"https://avatars3.githubusercontent.com/u/8816061?v=4\" width=\"100px;\" alt=\"TanNgocDo\"/><br /><sub><b>TanNgocDo</b></sub></a><br /><a href=\"https://github.com/cybercongress/js-amino/commits?author=TanNgocDo\" title=\"Code\">💻</a> <a href=\"#maintenance-TanNgocDo\" title=\"Maintenance\">🚧</a></td><td align=\"center\"><a href=\"https://github.com/philipstanislaus\"><img src=\"https://avatars1.githubusercontent.com/u/6912756?v=4\" width=\"100px;\" alt=\"philipstanislaus\"/><br /><sub><b>philipstanislaus</b></sub></a><br /><a href=\"https://github.com/cybercongress/js-amino/commits?author=philipstanislaus\" title=\"Documentation\">📖</a></td><td align=\"center\"><a href=\"https://github.com/SaveTheAles\"><img src=\"https://avatars0.githubusercontent.com/u/36516972?v=4\" width=\"100px;\" alt=\"Ales Puchilo\"/><br /><sub><b>Ales Puchilo</b></sub></a><br /><a href=\"#projectManagement-SaveTheAles\" title=\"Project Management\">📆</a></td><td align=\"center\"><a href=\"https://github.com/litvintech\"><img src=\"https://avatars2.githubusercontent.com/u/1690657?v=4\" width=\"100px;\" alt=\"Valery Litvin\"/><br /><sub><b>Valery Litvin</b></sub></a><br /><a href=\"https://github.com/cybercongress/js-amino/commits?author=litvintech\" title=\"Code\">💻</a></td><td align=\"center\"><a href=\"https://github.com/cyberadmin\"><img src=\"https://avatars1.githubusercontent.com/u/36439031?v=4\" width=\"100px;\" alt=\"Cyber Admin\"/><br /><sub><b>Cyber Admin</b></sub></a><br /><a href=\"https://github.com/cybercongress/js-amino/commits?author=cyberadmin\" title=\"Documentation\">📖</a></td><td align=\"center\"><a href=\"https://github.com/ethanfrey\"><img src=\"https://avatars3.githubusercontent.com/u/5689864?v=4\" width=\"100px;\" alt=\"Ethan Frey\"/><br /><sub><b>Ethan Frey</b></sub></a><br /><a href=\"https://github.com/cybercongress/js-amino/commits?author=ethanfrey\" title=\"Tests\">⚠️</a></td></tr></table>\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n## License\n\nCode are licensed under [MIT](./LICENSE) license by [contributors](https://github.com/cybercongress/js-amino/graphs/contributors)","readmeFilename":"README.md"}