├── .all-contributorsrc ├── .gitignore ├── LICENSE ├── README.md ├── docs └── msg_types │ └── cosmoshub.md ├── example ├── cosmoshub.js └── juno.js ├── package-lock.json ├── package.json ├── src ├── google │ └── protobuf │ │ ├── any.proto │ │ └── any_pb.js ├── index.js └── messages │ ├── .npmignore │ ├── .openapi-generator-ignore │ ├── .openapi-generator │ ├── FILES │ └── VERSION │ └── proto.js └── test └── test.spec.js /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | "README.md" 4 | ], 5 | "imageSize": 100, 6 | "commit": false, 7 | "contributors": [ 8 | { 9 | "login": "Booyoun-Kim", 10 | "name": "Booyoun", 11 | "avatar_url": "https://avatars3.githubusercontent.com/u/34641838?v=4", 12 | "profile": "https://www.cosmostation.io/", 13 | "contributions": [ 14 | "code", 15 | "bug", 16 | "maintenance" 17 | ] 18 | }, 19 | { 20 | "login": "kogisin", 21 | "name": "JayB", 22 | "avatar_url": "https://avatars1.githubusercontent.com/u/20435620?v=4", 23 | "profile": "https://jaybdev.net", 24 | "contributions": [ 25 | "code", 26 | "doc", 27 | "maintenance" 28 | ] 29 | }, 30 | { 31 | "login": "okwme", 32 | "name": "billy rennekamp", 33 | "avatar_url": "https://avatars2.githubusercontent.com/u/964052?v=4", 34 | "profile": "https://clovers.network", 35 | "contributions": [ 36 | "code", 37 | "bug" 38 | ] 39 | }, 40 | { 41 | "login": "tonyfeung", 42 | "name": "Tony Phuong Nguyen", 43 | "avatar_url": "https://avatars3.githubusercontent.com/u/5483234?v=4", 44 | "profile": "https://github.com/tonyfeung", 45 | "contributions": [ 46 | "code" 47 | ] 48 | } 49 | ], 50 | "contributorsPerLine": 7, 51 | "projectName": "cosmosjs", 52 | "projectOwner": "cosmostation", 53 | "repoType": "github", 54 | "repoHost": "https://github.com", 55 | "skipCi": true 56 | } 57 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | # /dist 5 | /tmp 6 | /out-tsc 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # IDEs and editors 33 | .idea 34 | .project 35 | .classpath 36 | .c9/ 37 | *.launch 38 | .settings/ 39 | *.sublime-workspace 40 | 41 | # IDE - VSCode 42 | .vscode/* 43 | !.vscode/settings.json 44 | !.vscode/tasks.json 45 | !.vscode/launch.json 46 | !.vscode/extensions.json 47 | 48 | # misc 49 | .sass-cache 50 | connect.lock 51 | typings 52 | 53 | # Logs 54 | logs 55 | *.log 56 | npm-debug.log* 57 | yarn-debug.log* 58 | yarn-error.log* 59 | 60 | 61 | # Dependency directories 62 | node_modules/ 63 | jspm_packages/ 64 | 65 | # Optional npm cache directory 66 | .npm 67 | 68 | # Optional eslint cache 69 | .eslintcache 70 | 71 | # Optional REPL history 72 | .node_repl_history 73 | 74 | # Output of 'npm pack' 75 | *.tgz 76 | 77 | # Yarn Integrity file 78 | .yarn-integrity 79 | yarn.lock 80 | 81 | # dotenv environment variables file 82 | .env 83 | 84 | # next.js build output 85 | .next 86 | 87 | # Lerna 88 | lerna-debug.log 89 | 90 | # System Files 91 | .DS_Store 92 | Thumbs.db -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Cosmostation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | [![NPM Downloads](https://img.shields.io/npm/dt/@cosmostation/cosmosjs.svg)](https://www.npmjs.com/package/@cosmostation/cosmosjs) 3 | 4 | 5 | > **IMPORTANT** THIS REPO IS DEPRECATED. Please use [cosmos/cosmjs](https://github.com/cosmos/cosmjs) instead of this repository. 6 | 7 |

8 | Cosmostation logo 9 |

10 |

11 | CosmosJS - Cosmos JavaScript Library 12 |

13 | 14 | *:star: Developed / Developing by [Cosmostation](https://www.cosmostation.io/)* 15 | 16 | A Javascript Open Source Library for blockchain made using by Cosmos SDK like [Cosmoshub](https://cosmos.network/), [IRISnet](https://www.irisnet.org/), [Akash Network](https://akash.network/), and [Juno](https://www.junonetwork.io/). 17 | 18 | This library supports cosmos address generation and verification. It enables you to create an offline signature functions of different types of transaction messages. It will eventually support all the other blockchains that are based on Tendermint in the future. 19 | 20 | > :warning: If you need for classic version for amino signing, download a version under v0.9.7 21 | 22 | [![License](https://img.shields.io/npm/l/@cosmostation/cosmosjs.svg)](https://www.npmjs.com/package/@cosmostation/cosmosjs) 23 | [![Latest Stable Version](https://img.shields.io/npm/v/@cosmostation/cosmosjs.svg)](https://www.npmjs.com/package/@cosmostation/cosmosjs) 24 | [![NPM Downloads](https://img.shields.io/npm/dm/@cosmostation/cosmosjs.svg)](https://www.npmjs.com/package/@cosmostation/cosmosjs) 25 | 26 | ## Installation 27 | 28 | In order to fully use this library, you need to run a local or remote full node and set up its rest server, which acts as an intermediary between the front-end and the full-node. 29 | 30 | ### NPM (Protobuf) 31 | 32 | ```bash 33 | npm install @cosmostation/cosmosjs 34 | ``` 35 | 36 | ### Yarn (Protobuf) 37 | 38 | ```bash 39 | yarn add @cosmostation/cosmosjs 40 | ``` 41 | 42 | ### NPM (Amino) 43 | - https://github.com/cosmostation/cosmosjs/tree/classic 44 | 45 | ```bash 46 | npm install @cosmostation/cosmosjs@0.9.7 47 | ``` 48 | 49 | ### Yarn (Amino) 50 | - https://github.com/cosmostation/cosmosjs/tree/classic 51 | 52 | ```bash 53 | yarn add @cosmostation/cosmosjs@0.9.7 54 | ``` 55 | 56 | ## Import 57 | 58 | ```js 59 | import { Cosmos } from "../src/index.js"; 60 | ``` 61 | 62 | ## Usage 63 | 64 | - You need to import Cosmos-sdk Protobuf message file as js. It is created by [gen-proto.sh](https://github.com/cosmos-client/cosmos-client-ts/blob/master/gen-proto.sh). 65 | - @cosmostation/cosmosjs@0.10.0+ is running above nodejs v14+ 66 | - You can run with this option for ES6. 67 | ```sh 68 | $ node --es-module-specifier-resolution=node example/cosmoshub.js 69 | ``` 70 | 71 | - Import the message file that is converted from Cosmos-sdk proto. 72 | 73 | ```js 74 | import message from "@cosmostation/cosmosjs/src/messages/proto"; 75 | ``` 76 | 77 | - Stargate-final: Generate Cosmos address from mnemonic 78 | ```js 79 | const mnemonic = "..." 80 | const chainId = "cosmoshub-4"; 81 | const cosmos = new Cosmos(lcdUrl, chainId); 82 | 83 | cosmos.setPath("m/44'/118'/0'/0/0"); 84 | const address = cosmos.getAddress(mnemonic); 85 | 86 | ``` 87 | 88 | Generate both privKey and pubKeyAny that are needed for signing. 89 | ```js 90 | const privKey = cosmos.getECPairPriv(mnemonic); 91 | const pubKeyAny = cosmos.getPubKeyAny(privKey); 92 | ``` 93 | 94 | Transfer ATOM to designated address. 95 | * Make sure to input proper type, account number, and sequence of the cosmos account to generate protobuf structure. You can get those account information on blockchain. Protobuf signing is different from Amino signing. 96 | ```js 97 | cosmos.getAccounts(address).then(data => { 98 | // signDoc = (1)txBody + (2)authInfo 99 | // ---------------------------------- (1)txBody ---------------------------------- 100 | const msgSend = new message.cosmos.bank.v1beta1.MsgSend({ 101 | from_address: address, 102 | to_address: "cosmos1jf874x5vr6wkza6ahvamck4sy4w76aq4w9c4s5", 103 | amount: [{ denom: "uatom", amount: String(100000) }] // 6 decimal places (1000000 uatom = 1 ATOM) 104 | }); 105 | 106 | const msgSendAny = new message.google.protobuf.Any({ 107 | type_url: "/cosmos.bank.v1beta1.MsgSend", 108 | value: message.cosmos.bank.v1beta1.MsgSend.encode(msgSend).finish() 109 | }); 110 | 111 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgSendAny], memo: "" }); 112 | 113 | // --------------------------------- (2)authInfo --------------------------------- 114 | const signerInfo = new message.cosmos.tx.v1beta1.SignerInfo({ 115 | public_key: pubKeyAny, 116 | mode_info: { single: { mode: message.cosmos.tx.signing.v1beta1.SignMode.SIGN_MODE_DIRECT } }, 117 | sequence: data.account.sequence 118 | }); 119 | 120 | const feeValue = new message.cosmos.tx.v1beta1.Fee({ 121 | amount: [{ denom: "uatom", amount: String(5000) }], 122 | gas_limit: 200000 123 | }); 124 | 125 | const authInfo = new message.cosmos.tx.v1beta1.AuthInfo({ signer_infos: [signerInfo], fee: feeValue }); 126 | 127 | ... 128 | }); 129 | ``` 130 | 131 | Sign transaction by using stdSignMsg and broadcast by using [/cosmos/tx/v1beta1/txs](https://v1.cosmos.network/rpc/v0.41.4) REST API 132 | ```js 133 | const signedTxBytes = cosmos.sign(txBody, authInfo, data.account.account_number, privKey); 134 | cosmos.broadcast(signedTxBytes).then(response => console.log(response)); 135 | ``` 136 | 137 | Now it is time to transfer CW20 tokens via Cosmosjs! Copy the CW20 contract into the variable of cw20Contract. You can instantiate and execute cosmwasm contracts on JUNO. It is possible to create your own CW20 token [here](https://junomint.ezstaking.io/). 138 | ```js 139 | cosmos.getAccounts(address).then(data => { 140 | // signDoc = (1)txBody + (2)authInfo 141 | // ---------------------------------- (1)txBody ---------------------------------- 142 | let cw20Contract = "juno10rktvmllvgctcmhl5vv8kl3mdksukyqf2tdveh8drpn0sppugwwqjzz30z"; 143 | let transferBytes = new Buffer('{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}'); 144 | const msgExecuteContract = new message.cosmwasm.wasm.v1.MsgExecuteContract({ 145 | sender: address, 146 | contract: cw20Contract, 147 | msg: transferBytes, 148 | funds: [] 149 | }); 150 | 151 | const msgExecuteContractAny = new message.google.protobuf.Any({ 152 | type_url: "/cosmwasm.wasm.v1.MsgExecuteContract", 153 | value: message.cosmwasm.wasm.v1.MsgExecuteContract.encode(msgExecuteContract).finish() 154 | }); 155 | 156 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgExecuteContractAny], memo: "" }); 157 | }); 158 | ``` 159 | 160 | In addition, you can query CW20 token balance using wasmQuery. 161 | ```js 162 | cosmos.wasmQuery( 163 | 'juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr', 164 | '{"balance": {"address": "juno1sautwkp7mzftvqtct3ugtq9xuuq680tzqzvf5g"}}' 165 | ).then(json => { 166 | let smartCode = json.result.smart; 167 | let decoded = new Buffer(smartCode, 'base64').toString(); 168 | let parsed = JSON.parse(decoded); 169 | 170 | console.log("NETA balance: ", parsed.balance); 171 | }) 172 | ``` 173 | 174 | Official LCD url([https://api.cosmos.network](https://api.cosmos.network/node_info)). 175 | - This rest server URL may be disabled at any time. In order to maintain stable blockchain service, it is recommended to prepare your rest server. 176 | - Setting up the rest server: (https://docs.cosmos.network/master/core/grpc_rest.html#rest-server) 177 | 178 | ## Supporting Message Types (Updating...) 179 | 180 | We will continue to update the protobuf signing structure. 181 | 182 | ## Documentation 183 | 184 | This library is simple and easy to use. We don't have any formal documentation yet other than examples. Ask for help if our examples aren't enough to guide you 185 | 186 | ## Contribution 187 | 188 | - Contributions, suggestions, improvements, and feature requests are always welcome 189 | 190 | When opening a PR with a minor fix, make sure to add #trivial to the title/description of said PR. 191 | 192 | ## Cosmostation's Services and Community 193 | 194 | - [Official Website](https://www.cosmostation.io) 195 | - [Mintscan Explorer](https://www.mintscan.io) 196 | - [Web Wallet](https://wallet.cosmostation.io) 197 | - [Android Wallet](https://bit.ly/2BWex9D) 198 | - [iOS Wallet](https://apple.co/2IAM3Xm) 199 | - [Telegram - International](https://t.me/cosmostation) 200 | - [Kakao - Koreans](https://open.kakao.com/o/g6KKSe5) 201 | 202 | 203 | ## Contributors ✨ 204 | 205 | Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 219 | 220 | 221 | 222 | 223 | 224 |

Booyoun

💻 🐛 🚧

JayB

💻 📖 🚧

billy rennekamp

💻 🐛

Tony Phuong Nguyen

💻

Tobias Schwarz

💻

218 | Scott Burch

🚧

billy rennekamp

🚧

Pierre Grimaud

🚧

Taariq Levack

🚧

ɐʇɯon3ɹ

🚧
225 | 226 | 227 | 228 | 229 | 230 | This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! 231 | -------------------------------------------------------------------------------- /docs/msg_types/cosmoshub.md: -------------------------------------------------------------------------------- 1 | # Cosmos 2 | 3 | In this docs, these are supporting protobuf message types in Cosmoshub. 4 | 5 | ### Supporting Message Types 6 | 7 | - [cosmos.bank.v1beta1.MsgSend](#msgsend) 8 | - [cosmos.staking.v1beta1.MsgDelegate](#msgdelegate) 9 | - [cosmos.staking.v1beta1.MsgUndelegate](#MsgUndelegate) 10 | - [cosmos.staking.v1beta1.MsgBeginRedelegate](#MsgBeginRedelegate) 11 | - [cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward](#MsgWithdrawDelegatorReward) 12 | - [cosmos.distribution.v1beta1.MsgSetWithdrawAddress](#MsgSetWithdrawAddress) 13 | 14 | ### MsgSend 15 | 16 | ```js 17 | // cosmos.bank.v1beta1.MsgSend 18 | // ---------------------------------- (1)txBody ---------------------------------- 19 | const msgSend = new message.cosmos.bank.v1beta1.MsgSend({ 20 | from_address: address, 21 | to_address: "cosmos18vhdczjut44gpsy804crfhnd5nq003nz0nf20v", 22 | amount: [{ denom: "uatom", amount: String(100000) }] // 6 decimal places (1000000 uatom = 1 ATOM) 23 | }); 24 | 25 | const msgSendAny = new message.google.protobuf.Any({ 26 | type_url: "/cosmos.bank.v1beta1.MsgSend", 27 | value: message.cosmos.bank.v1beta1.MsgSend.encode(msgSend).finish() 28 | }); 29 | 30 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgSendAny], memo: "" }); 31 | 32 | // --------------------------------- (2)authInfo --------------------------------- 33 | const signerInfo = new message.cosmos.tx.v1beta1.SignerInfo({ 34 | public_key: pubKeyAny, 35 | mode_info: { single: { mode: message.cosmos.tx.signing.v1beta1.SignMode.SIGN_MODE_DIRECT } }, 36 | sequence: data.account.sequence 37 | }); 38 | 39 | const feeValue = new message.cosmos.tx.v1beta1.Fee({ 40 | amount: [{ denom: "uatom", amount: String(5000) }], 41 | gas_limit: 200000 42 | }); 43 | 44 | const authInfo = new message.cosmos.tx.v1beta1.AuthInfo({ signer_infos: [signerInfo], fee: feeValue }); 45 | ``` 46 | 47 | ### MsgDelegate 48 | 49 | ```js 50 | cosmos.getAccounts(address).then(data => { 51 | // signDoc = (1)txBody + (2)authInfo 52 | // --------------------------------- (1)txBody --------------------------------- 53 | const msgDelegate = new message.cosmos.staking.v1beta1.MsgDelegate({ 54 | delegator_address: address, 55 | validator_address: "cosmosvaloper1tflk30mq5vgqjdly92kkhhq3raev2hnz6eete3", 56 | amount: new message.cosmos.base.v1beta1.Coin({ denom: "uatom", amount: String(100000) }) 57 | }); 58 | 59 | const msgDelegateAny = new message.google.protobuf.Any({ 60 | type_url: "/cosmos.staking.v1beta1.MsgDelegate", 61 | value: message.cosmos.staking.v1beta1.MsgDelegate.encode(msgDelegate).finish() 62 | }); 63 | 64 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgDelegateAny], memo: "" }); 65 | 66 | // --------------------------------- (2)authInfo --------------------------------- 67 | // ... 68 | 69 | // -------------------------------- sign -------------------------------- 70 | // ... 71 | }); 72 | ``` 73 | 74 | ### MsgUndelegate 75 | 76 | ```js 77 | cosmos.getAccounts(address).then(data => { 78 | // signDoc = (1)txBody + (2)authInfo 79 | // --------------------------------- (1)txBody --------------------------------- 80 | const msgUndelegate = new message.cosmos.staking.v1beta1.MsgUndelegate({ 81 | delegator_address: address, 82 | validator_address: "cosmosvaloper1tflk30mq5vgqjdly92kkhhq3raev2hnz6eete3" 83 | }); 84 | 85 | const msgUndelegateAny = new message.google.protobuf.Any({ 86 | type_url: "/cosmos.staking.v1beta1.MsgUndelegate", 87 | value: message.cosmos.staking.v1beta1.MsgUndelegate.encode(msgUndelegate).finish() 88 | }); 89 | 90 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgUndelegateAny], memo: "" }); 91 | 92 | // --------------------------------- (2)authInfo --------------------------------- 93 | // ... 94 | 95 | // -------------------------------- sign -------------------------------- 96 | // ... 97 | }); 98 | ``` 99 | 100 | ### MsgBeginRedelegate 101 | 102 | ```js 103 | cosmos.getAccounts(address).then(data => { 104 | // signDoc = (1)txBody + (2)authInfo 105 | // --------------------------------- (1)txBody --------------------------------- 106 | const msgBeginRedelegate = new message.cosmos.staking.v1beta1.MsgBeginRedelegate({ 107 | delegator_address: address, 108 | validator_src_address: "cosmosvaloper1tflk30mq5vgqjdly92kkhhq3raev2hnz6eete3", 109 | validator_dst_address: "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7", 110 | amount: new message.cosmos.base.v1beta1.Coin({ denom: "uatom", amount: String(100000) }) 111 | }); 112 | 113 | const msgBeginRedelegateAny = new message.google.protobuf.Any({ 114 | type_url: "/cosmos.staking.v1beta1.MsgBeginRedelegate", 115 | value: message.cosmos.staking.v1beta1.MsgBeginRedelegate.encode(msgBeginRedelegate).finish() 116 | }); 117 | 118 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgBeginRedelegateAny], memo: "" }); 119 | 120 | // --------------------------------- (2)authInfo --------------------------------- 121 | // ... 122 | 123 | // -------------------------------- sign -------------------------------- 124 | // ... 125 | }); 126 | ``` 127 | 128 | ### MsgWithdrawDelegatorReward 129 | 130 | ```js 131 | cosmos.getAccounts(address).then(data => { 132 | // signDoc = (1)txBody + (2)authInfo 133 | // --------------------------------- (1)txBody --------------------------------- 134 | const msgWithdrawDelegatorReward = new message.cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward({ 135 | delegator_address: address, 136 | validator_address: "cosmosvaloper1tflk30mq5vgqjdly92kkhhq3raev2hnz6eete3" 137 | }); 138 | 139 | const msgWithdrawDelegatorRewardAny = new message.google.protobuf.Any({ 140 | type_url: "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", 141 | value: message.cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward.encode(msgWithdrawDelegatorReward).finish() 142 | }); 143 | 144 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgWithdrawDelegatorRewardAny], memo: "" }); 145 | 146 | // --------------------------------- (2)authInfo --------------------------------- 147 | // ... 148 | 149 | // -------------------------------- sign -------------------------------- 150 | // ... 151 | }); 152 | ``` 153 | 154 | ### MsgSetWithdrawAddress 155 | 156 | ```js 157 | cosmos.getAccounts(address).then(data => { 158 | // signDoc = (1)txBody + (2)authInfo 159 | // --------------------------------- (1)txBody --------------------------------- 160 | const msgSetWithdrawAddress = new message.cosmos.distribution.v1beta1.MsgSetWithdrawAddress({ 161 | delegator_address: address, 162 | withdraw_address: "rizon1vh3pnah460uf7y5xv46d7stkh7trxdw0c7kmq7" 163 | }); 164 | 165 | const msgSetWithdrawAddressAny = new message.google.protobuf.Any({ 166 | type_url: "/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", 167 | value: message.cosmos.distribution.v1beta1.MsgSetWithdrawAddress.encode(msgSetWithdrawAddress).finish() 168 | }); 169 | 170 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgSetWithdrawAddressAny], memo: "" }); 171 | 172 | // --------------------------------- (2)authInfo --------------------------------- 173 | // ... 174 | 175 | // -------------------------------- sign -------------------------------- 176 | // ... 177 | }); 178 | ``` -------------------------------------------------------------------------------- /example/cosmoshub.js: -------------------------------------------------------------------------------- 1 | import { Cosmos } from "../src/index.js"; 2 | import message from "../src/messages/proto"; 3 | 4 | // [WARNING] This mnemonic is just for the demo purpose. DO NOT USE THIS MNEMONIC for your own wallet. 5 | const mnemonic = "swear buyer security impulse public stereo peasant correct cross tornado bid discover anchor float venture deal patch property cool wreck eight dwarf december surface"; 6 | const chainId = "cosmoshub-4"; 7 | // This rest server URL may be disabled at any time. In order to maintain stable blockchain service, it is recommended to prepare your rest server. 8 | // (https://hub.cosmos.network/main/gaia-tutorials/join-mainnet.html#enable-the-rest-api) 9 | const cosmos = new Cosmos("https://api.cosmos.network", chainId); 10 | cosmos.setBech32MainPrefix("juno"); 11 | cosmos.setPath("m/44'/118'/0'/0/0"); 12 | const address = cosmos.getAddress(mnemonic); 13 | const privKey = cosmos.getECPairPriv(mnemonic); 14 | const pubKeyAny = cosmos.getPubKeyAny(privKey); 15 | 16 | cosmos.getAccounts(address).then(data => { 17 | // signDoc = (1)txBody + (2)authInfo 18 | // ---------------------------------- (1)txBody ---------------------------------- 19 | const msgSend = new message.cosmos.bank.v1beta1.MsgSend({ 20 | from_address: address, 21 | to_address: "cosmos18vhdczjut44gpsy804crfhnd5nq003nz0nf20v", 22 | amount: [{ denom: "uatom", amount: String(100000) }] // 6 decimal places (1000000 uatom = 1 ATOM) 23 | }); 24 | 25 | const msgSendAny = new message.google.protobuf.Any({ 26 | type_url: "/cosmos.bank.v1beta1.MsgSend", 27 | value: message.cosmos.bank.v1beta1.MsgSend.encode(msgSend).finish() 28 | }); 29 | 30 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgSendAny], memo: "" }); 31 | 32 | // --------------------------------- (2)authInfo --------------------------------- 33 | const signerInfo = new message.cosmos.tx.v1beta1.SignerInfo({ 34 | public_key: pubKeyAny, 35 | mode_info: { single: { mode: message.cosmos.tx.signing.v1beta1.SignMode.SIGN_MODE_DIRECT } }, 36 | sequence: data.account.sequence 37 | }); 38 | 39 | const feeValue = new message.cosmos.tx.v1beta1.Fee({ 40 | amount: [{ denom: "uatom", amount: String(5000) }], 41 | gas_limit: 200000 42 | }); 43 | 44 | const authInfo = new message.cosmos.tx.v1beta1.AuthInfo({ signer_infos: [signerInfo], fee: feeValue }); 45 | 46 | // -------------------------------- sign -------------------------------- 47 | const signedTxBytes = cosmos.sign(txBody, authInfo, data.account.account_number, privKey); 48 | cosmos.broadcast(signedTxBytes).then(response => console.log(response)); 49 | }); 50 | -------------------------------------------------------------------------------- /example/juno.js: -------------------------------------------------------------------------------- 1 | import { Cosmos } from "../src/index.js"; 2 | import message from "../src/messages/proto"; 3 | 4 | // [WARNING] This mnemonic is just for the demo purpose. DO NOT USE THIS MNEMONIC for your own wallet. 5 | const mnemonic = "swear buyer security impulse public stereo peasant correct cross tornado bid discover anchor float venture deal patch property cool wreck eight dwarf december surface"; 6 | const chainId = "juno-1"; 7 | // In order to maintain stable blockchain service, it is recommended to create your rest server. 8 | // (https://docs.cosmos.network/master/core/grpc_rest.html#rest-server) 9 | const cosmos = new Cosmos("http://YOUR_REST_SERVER_URL:1317", chainId); 10 | cosmos.setBech32MainPrefix("juno"); 11 | cosmos.setPath("m/44'/118'/0'/0/0"); 12 | const address = cosmos.getAddress(mnemonic); 13 | const privKey = cosmos.getECPairPriv(mnemonic); 14 | const pubKeyAny = cosmos.getPubKeyAny(privKey); 15 | 16 | cosmos.getAccounts(address).then(data => { 17 | // signDoc = (1)txBody + (2)authInfo 18 | // ---------------------------------- (1)txBody ---------------------------------- 19 | let cw20Contract = "juno168ctmpyppk90d34p3jjy658zf5a5l3w8wk35wht6ccqj4mr0yv8s4j5awr"; 20 | let transferBytes = new Buffer('{"transfer":{"amount":"1","recipient":"juno1cx4nq77x3unvl2xsa9fmm9drxkexzkjnzwt2y7"}}'); 21 | const msgExecuteContract = new message.cosmwasm.wasm.v1.MsgExecuteContract({ 22 | sender: address, 23 | contract: cw20Contract, 24 | msg: transferBytes, 25 | funds: [] 26 | }); 27 | 28 | const msgExecuteContractAny = new message.google.protobuf.Any({ 29 | type_url: "/cosmwasm.wasm.v1.MsgExecuteContract", 30 | value: message.cosmwasm.wasm.v1.MsgExecuteContract.encode(msgExecuteContract).finish() 31 | }); 32 | 33 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgExecuteContractAny], memo: "" }); 34 | 35 | // --------------------------------- (2)authInfo --------------------------------- 36 | const signerInfo = new message.cosmos.tx.v1beta1.SignerInfo({ 37 | public_key: pubKeyAny, 38 | mode_info: { single: { mode: message.cosmos.tx.signing.v1beta1.SignMode.SIGN_MODE_DIRECT } }, 39 | sequence: data.account.sequence 40 | }); 41 | 42 | const feeValue = new message.cosmos.tx.v1beta1.Fee({ 43 | amount: [{ denom: "ujuno", amount: String(5000) }], 44 | gas_limit: 200000 45 | }); 46 | 47 | const authInfo = new message.cosmos.tx.v1beta1.AuthInfo({ signer_infos: [signerInfo], fee: feeValue }); 48 | 49 | // -------------------------------- sign -------------------------------- 50 | const signedTxBytes = cosmos.sign(txBody, authInfo, data.account.account_number, privKey); 51 | cosmos.broadcast(signedTxBytes).then(response => console.log(response)); 52 | }); 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cosmostation/cosmosjs", 3 | "version": "0.11.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.12.13", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", 10 | "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.12.13" 14 | } 15 | }, 16 | "@babel/compat-data": { 17 | "version": "7.14.0", 18 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", 19 | "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==", 20 | "dev": true 21 | }, 22 | "@babel/core": { 23 | "version": "7.14.0", 24 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", 25 | "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", 26 | "dev": true, 27 | "requires": { 28 | "@babel/code-frame": "^7.12.13", 29 | "@babel/generator": "^7.14.0", 30 | "@babel/helper-compilation-targets": "^7.13.16", 31 | "@babel/helper-module-transforms": "^7.14.0", 32 | "@babel/helpers": "^7.14.0", 33 | "@babel/parser": "^7.14.0", 34 | "@babel/template": "^7.12.13", 35 | "@babel/traverse": "^7.14.0", 36 | "@babel/types": "^7.14.0", 37 | "convert-source-map": "^1.7.0", 38 | "debug": "^4.1.0", 39 | "gensync": "^1.0.0-beta.2", 40 | "json5": "^2.1.2", 41 | "semver": "^6.3.0", 42 | "source-map": "^0.5.0" 43 | }, 44 | "dependencies": { 45 | "@babel/generator": { 46 | "version": "7.14.1", 47 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", 48 | "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", 49 | "dev": true, 50 | "requires": { 51 | "@babel/types": "^7.14.1", 52 | "jsesc": "^2.5.1", 53 | "source-map": "^0.5.0" 54 | } 55 | }, 56 | "@babel/helper-member-expression-to-functions": { 57 | "version": "7.13.12", 58 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", 59 | "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", 60 | "dev": true, 61 | "requires": { 62 | "@babel/types": "^7.13.12" 63 | } 64 | }, 65 | "@babel/helper-module-imports": { 66 | "version": "7.13.12", 67 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", 68 | "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", 69 | "dev": true, 70 | "requires": { 71 | "@babel/types": "^7.13.12" 72 | } 73 | }, 74 | "@babel/helper-module-transforms": { 75 | "version": "7.14.0", 76 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", 77 | "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", 78 | "dev": true, 79 | "requires": { 80 | "@babel/helper-module-imports": "^7.13.12", 81 | "@babel/helper-replace-supers": "^7.13.12", 82 | "@babel/helper-simple-access": "^7.13.12", 83 | "@babel/helper-split-export-declaration": "^7.12.13", 84 | "@babel/helper-validator-identifier": "^7.14.0", 85 | "@babel/template": "^7.12.13", 86 | "@babel/traverse": "^7.14.0", 87 | "@babel/types": "^7.14.0" 88 | } 89 | }, 90 | "@babel/helper-replace-supers": { 91 | "version": "7.13.12", 92 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", 93 | "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", 94 | "dev": true, 95 | "requires": { 96 | "@babel/helper-member-expression-to-functions": "^7.13.12", 97 | "@babel/helper-optimise-call-expression": "^7.12.13", 98 | "@babel/traverse": "^7.13.0", 99 | "@babel/types": "^7.13.12" 100 | } 101 | }, 102 | "@babel/helper-simple-access": { 103 | "version": "7.13.12", 104 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", 105 | "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", 106 | "dev": true, 107 | "requires": { 108 | "@babel/types": "^7.13.12" 109 | } 110 | }, 111 | "@babel/helper-validator-identifier": { 112 | "version": "7.14.0", 113 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 114 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 115 | "dev": true 116 | }, 117 | "@babel/parser": { 118 | "version": "7.14.1", 119 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", 120 | "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==", 121 | "dev": true 122 | }, 123 | "@babel/traverse": { 124 | "version": "7.14.0", 125 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", 126 | "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", 127 | "dev": true, 128 | "requires": { 129 | "@babel/code-frame": "^7.12.13", 130 | "@babel/generator": "^7.14.0", 131 | "@babel/helper-function-name": "^7.12.13", 132 | "@babel/helper-split-export-declaration": "^7.12.13", 133 | "@babel/parser": "^7.14.0", 134 | "@babel/types": "^7.14.0", 135 | "debug": "^4.1.0", 136 | "globals": "^11.1.0" 137 | } 138 | }, 139 | "@babel/types": { 140 | "version": "7.14.1", 141 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 142 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 143 | "dev": true, 144 | "requires": { 145 | "@babel/helper-validator-identifier": "^7.14.0", 146 | "to-fast-properties": "^2.0.0" 147 | } 148 | }, 149 | "debug": { 150 | "version": "4.3.1", 151 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 152 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 153 | "dev": true, 154 | "requires": { 155 | "ms": "2.1.2" 156 | } 157 | }, 158 | "ms": { 159 | "version": "2.1.2", 160 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 161 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 162 | "dev": true 163 | }, 164 | "semver": { 165 | "version": "6.3.0", 166 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 167 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 168 | "dev": true 169 | } 170 | } 171 | }, 172 | "@babel/generator": { 173 | "version": "7.14.1", 174 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", 175 | "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", 176 | "dev": true, 177 | "requires": { 178 | "@babel/types": "^7.14.1", 179 | "jsesc": "^2.5.1", 180 | "source-map": "^0.5.0" 181 | }, 182 | "dependencies": { 183 | "@babel/helper-validator-identifier": { 184 | "version": "7.14.0", 185 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 186 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 187 | "dev": true 188 | }, 189 | "@babel/types": { 190 | "version": "7.14.1", 191 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 192 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 193 | "dev": true, 194 | "requires": { 195 | "@babel/helper-validator-identifier": "^7.14.0", 196 | "to-fast-properties": "^2.0.0" 197 | } 198 | } 199 | } 200 | }, 201 | "@babel/helper-compilation-targets": { 202 | "version": "7.13.16", 203 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", 204 | "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", 205 | "dev": true, 206 | "requires": { 207 | "@babel/compat-data": "^7.13.15", 208 | "@babel/helper-validator-option": "^7.12.17", 209 | "browserslist": "^4.14.5", 210 | "semver": "^6.3.0" 211 | }, 212 | "dependencies": { 213 | "semver": { 214 | "version": "6.3.0", 215 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 216 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 217 | "dev": true 218 | } 219 | } 220 | }, 221 | "@babel/helper-function-name": { 222 | "version": "7.12.13", 223 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", 224 | "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", 225 | "dev": true, 226 | "requires": { 227 | "@babel/helper-get-function-arity": "^7.12.13", 228 | "@babel/template": "^7.12.13", 229 | "@babel/types": "^7.12.13" 230 | } 231 | }, 232 | "@babel/helper-get-function-arity": { 233 | "version": "7.12.13", 234 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", 235 | "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", 236 | "dev": true, 237 | "requires": { 238 | "@babel/types": "^7.12.13" 239 | } 240 | }, 241 | "@babel/helper-member-expression-to-functions": { 242 | "version": "7.13.12", 243 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", 244 | "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", 245 | "dev": true, 246 | "requires": { 247 | "@babel/types": "^7.13.12" 248 | }, 249 | "dependencies": { 250 | "@babel/helper-validator-identifier": { 251 | "version": "7.14.0", 252 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 253 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 254 | "dev": true 255 | }, 256 | "@babel/types": { 257 | "version": "7.14.1", 258 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 259 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 260 | "dev": true, 261 | "requires": { 262 | "@babel/helper-validator-identifier": "^7.14.0", 263 | "to-fast-properties": "^2.0.0" 264 | } 265 | } 266 | } 267 | }, 268 | "@babel/helper-module-imports": { 269 | "version": "7.13.12", 270 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", 271 | "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", 272 | "dev": true, 273 | "requires": { 274 | "@babel/types": "^7.13.12" 275 | }, 276 | "dependencies": { 277 | "@babel/helper-validator-identifier": { 278 | "version": "7.14.0", 279 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 280 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 281 | "dev": true 282 | }, 283 | "@babel/types": { 284 | "version": "7.14.1", 285 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 286 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 287 | "dev": true, 288 | "requires": { 289 | "@babel/helper-validator-identifier": "^7.14.0", 290 | "to-fast-properties": "^2.0.0" 291 | } 292 | } 293 | } 294 | }, 295 | "@babel/helper-module-transforms": { 296 | "version": "7.14.0", 297 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", 298 | "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", 299 | "dev": true, 300 | "requires": { 301 | "@babel/helper-module-imports": "^7.13.12", 302 | "@babel/helper-replace-supers": "^7.13.12", 303 | "@babel/helper-simple-access": "^7.13.12", 304 | "@babel/helper-split-export-declaration": "^7.12.13", 305 | "@babel/helper-validator-identifier": "^7.14.0", 306 | "@babel/template": "^7.12.13", 307 | "@babel/traverse": "^7.14.0", 308 | "@babel/types": "^7.14.0" 309 | }, 310 | "dependencies": { 311 | "@babel/helper-simple-access": { 312 | "version": "7.13.12", 313 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", 314 | "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", 315 | "dev": true, 316 | "requires": { 317 | "@babel/types": "^7.13.12" 318 | } 319 | }, 320 | "@babel/helper-validator-identifier": { 321 | "version": "7.14.0", 322 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 323 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 324 | "dev": true 325 | }, 326 | "@babel/types": { 327 | "version": "7.14.1", 328 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 329 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 330 | "dev": true, 331 | "requires": { 332 | "@babel/helper-validator-identifier": "^7.14.0", 333 | "to-fast-properties": "^2.0.0" 334 | } 335 | } 336 | } 337 | }, 338 | "@babel/helper-optimise-call-expression": { 339 | "version": "7.12.13", 340 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", 341 | "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", 342 | "dev": true, 343 | "requires": { 344 | "@babel/types": "^7.12.13" 345 | } 346 | }, 347 | "@babel/helper-plugin-utils": { 348 | "version": "7.13.0", 349 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", 350 | "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", 351 | "dev": true 352 | }, 353 | "@babel/helper-replace-supers": { 354 | "version": "7.13.12", 355 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", 356 | "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", 357 | "dev": true, 358 | "requires": { 359 | "@babel/helper-member-expression-to-functions": "^7.13.12", 360 | "@babel/helper-optimise-call-expression": "^7.12.13", 361 | "@babel/traverse": "^7.13.0", 362 | "@babel/types": "^7.13.12" 363 | }, 364 | "dependencies": { 365 | "@babel/helper-validator-identifier": { 366 | "version": "7.14.0", 367 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 368 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 369 | "dev": true 370 | }, 371 | "@babel/types": { 372 | "version": "7.14.1", 373 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 374 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 375 | "dev": true, 376 | "requires": { 377 | "@babel/helper-validator-identifier": "^7.14.0", 378 | "to-fast-properties": "^2.0.0" 379 | } 380 | } 381 | } 382 | }, 383 | "@babel/helper-simple-access": { 384 | "version": "7.12.13", 385 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", 386 | "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", 387 | "dev": true, 388 | "requires": { 389 | "@babel/types": "^7.12.13" 390 | } 391 | }, 392 | "@babel/helper-split-export-declaration": { 393 | "version": "7.12.13", 394 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", 395 | "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", 396 | "dev": true, 397 | "requires": { 398 | "@babel/types": "^7.12.13" 399 | } 400 | }, 401 | "@babel/helper-validator-identifier": { 402 | "version": "7.12.11", 403 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", 404 | "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", 405 | "dev": true 406 | }, 407 | "@babel/helper-validator-option": { 408 | "version": "7.12.17", 409 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", 410 | "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", 411 | "dev": true 412 | }, 413 | "@babel/helpers": { 414 | "version": "7.14.0", 415 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", 416 | "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", 417 | "dev": true, 418 | "requires": { 419 | "@babel/template": "^7.12.13", 420 | "@babel/traverse": "^7.14.0", 421 | "@babel/types": "^7.14.0" 422 | }, 423 | "dependencies": { 424 | "@babel/generator": { 425 | "version": "7.14.1", 426 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", 427 | "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", 428 | "dev": true, 429 | "requires": { 430 | "@babel/types": "^7.14.1", 431 | "jsesc": "^2.5.1", 432 | "source-map": "^0.5.0" 433 | } 434 | }, 435 | "@babel/helper-validator-identifier": { 436 | "version": "7.14.0", 437 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 438 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 439 | "dev": true 440 | }, 441 | "@babel/parser": { 442 | "version": "7.14.1", 443 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", 444 | "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==", 445 | "dev": true 446 | }, 447 | "@babel/traverse": { 448 | "version": "7.14.0", 449 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", 450 | "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", 451 | "dev": true, 452 | "requires": { 453 | "@babel/code-frame": "^7.12.13", 454 | "@babel/generator": "^7.14.0", 455 | "@babel/helper-function-name": "^7.12.13", 456 | "@babel/helper-split-export-declaration": "^7.12.13", 457 | "@babel/parser": "^7.14.0", 458 | "@babel/types": "^7.14.0", 459 | "debug": "^4.1.0", 460 | "globals": "^11.1.0" 461 | } 462 | }, 463 | "@babel/types": { 464 | "version": "7.14.1", 465 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 466 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 467 | "dev": true, 468 | "requires": { 469 | "@babel/helper-validator-identifier": "^7.14.0", 470 | "to-fast-properties": "^2.0.0" 471 | } 472 | }, 473 | "debug": { 474 | "version": "4.3.1", 475 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 476 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 477 | "dev": true, 478 | "requires": { 479 | "ms": "2.1.2" 480 | } 481 | }, 482 | "ms": { 483 | "version": "2.1.2", 484 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 485 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 486 | "dev": true 487 | } 488 | } 489 | }, 490 | "@babel/highlight": { 491 | "version": "7.13.10", 492 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", 493 | "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", 494 | "dev": true, 495 | "requires": { 496 | "@babel/helper-validator-identifier": "^7.12.11", 497 | "chalk": "^2.0.0", 498 | "js-tokens": "^4.0.0" 499 | } 500 | }, 501 | "@babel/parser": { 502 | "version": "7.13.11", 503 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", 504 | "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", 505 | "dev": true 506 | }, 507 | "@babel/plugin-syntax-async-generators": { 508 | "version": "7.8.4", 509 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", 510 | "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", 511 | "dev": true, 512 | "requires": { 513 | "@babel/helper-plugin-utils": "^7.8.0" 514 | } 515 | }, 516 | "@babel/plugin-syntax-dynamic-import": { 517 | "version": "7.8.3", 518 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", 519 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", 520 | "dev": true, 521 | "requires": { 522 | "@babel/helper-plugin-utils": "^7.8.0" 523 | } 524 | }, 525 | "@babel/plugin-syntax-object-rest-spread": { 526 | "version": "7.8.3", 527 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", 528 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", 529 | "dev": true, 530 | "requires": { 531 | "@babel/helper-plugin-utils": "^7.8.0" 532 | } 533 | }, 534 | "@babel/plugin-transform-modules-commonjs": { 535 | "version": "7.13.8", 536 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", 537 | "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", 538 | "dev": true, 539 | "requires": { 540 | "@babel/helper-module-transforms": "^7.13.0", 541 | "@babel/helper-plugin-utils": "^7.13.0", 542 | "@babel/helper-simple-access": "^7.12.13", 543 | "babel-plugin-dynamic-import-node": "^2.3.3" 544 | } 545 | }, 546 | "@babel/template": { 547 | "version": "7.12.13", 548 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", 549 | "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", 550 | "dev": true, 551 | "requires": { 552 | "@babel/code-frame": "^7.12.13", 553 | "@babel/parser": "^7.12.13", 554 | "@babel/types": "^7.12.13" 555 | } 556 | }, 557 | "@babel/traverse": { 558 | "version": "7.14.0", 559 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", 560 | "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", 561 | "dev": true, 562 | "requires": { 563 | "@babel/code-frame": "^7.12.13", 564 | "@babel/generator": "^7.14.0", 565 | "@babel/helper-function-name": "^7.12.13", 566 | "@babel/helper-split-export-declaration": "^7.12.13", 567 | "@babel/parser": "^7.14.0", 568 | "@babel/types": "^7.14.0", 569 | "debug": "^4.1.0", 570 | "globals": "^11.1.0" 571 | }, 572 | "dependencies": { 573 | "@babel/helper-validator-identifier": { 574 | "version": "7.14.0", 575 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 576 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 577 | "dev": true 578 | }, 579 | "@babel/parser": { 580 | "version": "7.14.1", 581 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", 582 | "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==", 583 | "dev": true 584 | }, 585 | "@babel/types": { 586 | "version": "7.14.1", 587 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 588 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 589 | "dev": true, 590 | "requires": { 591 | "@babel/helper-validator-identifier": "^7.14.0", 592 | "to-fast-properties": "^2.0.0" 593 | } 594 | }, 595 | "debug": { 596 | "version": "4.3.1", 597 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 598 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 599 | "dev": true, 600 | "requires": { 601 | "ms": "2.1.2" 602 | } 603 | }, 604 | "ms": { 605 | "version": "2.1.2", 606 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 607 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 608 | "dev": true 609 | } 610 | } 611 | }, 612 | "@babel/types": { 613 | "version": "7.14.1", 614 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", 615 | "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", 616 | "dev": true, 617 | "requires": { 618 | "@babel/helper-validator-identifier": "^7.14.0", 619 | "to-fast-properties": "^2.0.0" 620 | }, 621 | "dependencies": { 622 | "@babel/helper-validator-identifier": { 623 | "version": "7.14.0", 624 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", 625 | "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", 626 | "dev": true 627 | } 628 | } 629 | }, 630 | "@protobufjs/aspromise": { 631 | "version": "1.1.2", 632 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 633 | "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" 634 | }, 635 | "@protobufjs/base64": { 636 | "version": "1.1.2", 637 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 638 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 639 | }, 640 | "@protobufjs/codegen": { 641 | "version": "2.0.4", 642 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 643 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 644 | }, 645 | "@protobufjs/eventemitter": { 646 | "version": "1.1.0", 647 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 648 | "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" 649 | }, 650 | "@protobufjs/fetch": { 651 | "version": "1.1.0", 652 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 653 | "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", 654 | "requires": { 655 | "@protobufjs/aspromise": "^1.1.1", 656 | "@protobufjs/inquire": "^1.1.0" 657 | } 658 | }, 659 | "@protobufjs/float": { 660 | "version": "1.0.2", 661 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 662 | "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" 663 | }, 664 | "@protobufjs/inquire": { 665 | "version": "1.1.0", 666 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 667 | "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" 668 | }, 669 | "@protobufjs/path": { 670 | "version": "1.1.2", 671 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 672 | "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" 673 | }, 674 | "@protobufjs/pool": { 675 | "version": "1.1.0", 676 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 677 | "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" 678 | }, 679 | "@protobufjs/utf8": { 680 | "version": "1.1.0", 681 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 682 | "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" 683 | }, 684 | "@types/long": { 685 | "version": "4.0.1", 686 | "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", 687 | "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" 688 | }, 689 | "@types/node": { 690 | "version": "10.12.18", 691 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", 692 | "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" 693 | }, 694 | "ajv": { 695 | "version": "6.12.6", 696 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 697 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 698 | "requires": { 699 | "fast-deep-equal": "^3.1.1", 700 | "fast-json-stable-stringify": "^2.0.0", 701 | "json-schema-traverse": "^0.4.1", 702 | "uri-js": "^4.2.2" 703 | } 704 | }, 705 | "ansi-colors": { 706 | "version": "3.2.3", 707 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", 708 | "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", 709 | "dev": true 710 | }, 711 | "ansi-regex": { 712 | "version": "5.0.1", 713 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 714 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 715 | }, 716 | "ansi-styles": { 717 | "version": "3.2.1", 718 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 719 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 720 | "dev": true, 721 | "requires": { 722 | "color-convert": "^1.9.0" 723 | } 724 | }, 725 | "anymatch": { 726 | "version": "3.1.2", 727 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 728 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 729 | "dev": true, 730 | "requires": { 731 | "normalize-path": "^3.0.0", 732 | "picomatch": "^2.0.4" 733 | } 734 | }, 735 | "argparse": { 736 | "version": "1.0.10", 737 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 738 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 739 | "dev": true, 740 | "requires": { 741 | "sprintf-js": "~1.0.2" 742 | } 743 | }, 744 | "asn1": { 745 | "version": "0.2.4", 746 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 747 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 748 | "requires": { 749 | "safer-buffer": "~2.1.0" 750 | } 751 | }, 752 | "assert-plus": { 753 | "version": "1.0.0", 754 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 755 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 756 | }, 757 | "asynckit": { 758 | "version": "0.4.0", 759 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 760 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 761 | }, 762 | "aws-sign2": { 763 | "version": "0.7.0", 764 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 765 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 766 | }, 767 | "aws4": { 768 | "version": "1.11.0", 769 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 770 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" 771 | }, 772 | "babel-code-frame": { 773 | "version": "6.26.0", 774 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 775 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 776 | "dev": true, 777 | "requires": { 778 | "chalk": "^1.1.3", 779 | "esutils": "^2.0.2", 780 | "js-tokens": "^3.0.2" 781 | }, 782 | "dependencies": { 783 | "ansi-regex": { 784 | "version": "2.1.1", 785 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 786 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 787 | "dev": true 788 | }, 789 | "ansi-styles": { 790 | "version": "2.2.1", 791 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 792 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 793 | "dev": true 794 | }, 795 | "chalk": { 796 | "version": "1.1.3", 797 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 798 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 799 | "dev": true, 800 | "requires": { 801 | "ansi-styles": "^2.2.1", 802 | "escape-string-regexp": "^1.0.2", 803 | "has-ansi": "^2.0.0", 804 | "strip-ansi": "^3.0.0", 805 | "supports-color": "^2.0.0" 806 | } 807 | }, 808 | "js-tokens": { 809 | "version": "3.0.2", 810 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 811 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 812 | "dev": true 813 | }, 814 | "strip-ansi": { 815 | "version": "3.0.1", 816 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 817 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 818 | "dev": true, 819 | "requires": { 820 | "ansi-regex": "^2.0.0" 821 | } 822 | }, 823 | "supports-color": { 824 | "version": "2.0.0", 825 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 826 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 827 | "dev": true 828 | } 829 | } 830 | }, 831 | "babel-messages": { 832 | "version": "6.23.0", 833 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 834 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 835 | "dev": true, 836 | "requires": { 837 | "babel-runtime": "^6.22.0" 838 | } 839 | }, 840 | "babel-plugin-dynamic-import-node": { 841 | "version": "2.3.3", 842 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", 843 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", 844 | "dev": true, 845 | "requires": { 846 | "object.assign": "^4.1.0" 847 | } 848 | }, 849 | "babel-plugin-import-to-require": { 850 | "version": "1.0.0", 851 | "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", 852 | "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", 853 | "dev": true, 854 | "requires": { 855 | "babel-template": "^6.26.0" 856 | } 857 | }, 858 | "babel-runtime": { 859 | "version": "6.26.0", 860 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 861 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 862 | "dev": true, 863 | "requires": { 864 | "core-js": "^2.4.0", 865 | "regenerator-runtime": "^0.11.0" 866 | } 867 | }, 868 | "babel-template": { 869 | "version": "6.26.0", 870 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 871 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 872 | "dev": true, 873 | "requires": { 874 | "babel-runtime": "^6.26.0", 875 | "babel-traverse": "^6.26.0", 876 | "babel-types": "^6.26.0", 877 | "babylon": "^6.18.0", 878 | "lodash": "^4.17.4" 879 | } 880 | }, 881 | "babel-traverse": { 882 | "version": "6.26.0", 883 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 884 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 885 | "dev": true, 886 | "requires": { 887 | "babel-code-frame": "^6.26.0", 888 | "babel-messages": "^6.23.0", 889 | "babel-runtime": "^6.26.0", 890 | "babel-types": "^6.26.0", 891 | "babylon": "^6.18.0", 892 | "debug": "^2.6.8", 893 | "globals": "^9.18.0", 894 | "invariant": "^2.2.2", 895 | "lodash": "^4.17.4" 896 | }, 897 | "dependencies": { 898 | "debug": { 899 | "version": "2.6.9", 900 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 901 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 902 | "dev": true, 903 | "requires": { 904 | "ms": "2.0.0" 905 | } 906 | }, 907 | "globals": { 908 | "version": "9.18.0", 909 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 910 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 911 | "dev": true 912 | }, 913 | "ms": { 914 | "version": "2.0.0", 915 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 916 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 917 | "dev": true 918 | } 919 | } 920 | }, 921 | "babel-types": { 922 | "version": "6.26.0", 923 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 924 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 925 | "dev": true, 926 | "requires": { 927 | "babel-runtime": "^6.26.0", 928 | "esutils": "^2.0.2", 929 | "lodash": "^4.17.4", 930 | "to-fast-properties": "^1.0.3" 931 | }, 932 | "dependencies": { 933 | "to-fast-properties": { 934 | "version": "1.0.3", 935 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 936 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 937 | "dev": true 938 | } 939 | } 940 | }, 941 | "babelify": { 942 | "version": "10.0.0", 943 | "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", 944 | "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", 945 | "dev": true 946 | }, 947 | "babylon": { 948 | "version": "6.18.0", 949 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 950 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 951 | "dev": true 952 | }, 953 | "balanced-match": { 954 | "version": "1.0.2", 955 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 956 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 957 | "dev": true 958 | }, 959 | "base-x": { 960 | "version": "3.0.7", 961 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.7.tgz", 962 | "integrity": "sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw==", 963 | "requires": { 964 | "safe-buffer": "^5.0.1" 965 | } 966 | }, 967 | "bcrypt-pbkdf": { 968 | "version": "1.0.2", 969 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 970 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 971 | "requires": { 972 | "tweetnacl": "^0.14.3" 973 | } 974 | }, 975 | "bech32": { 976 | "version": "1.1.3", 977 | "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", 978 | "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" 979 | }, 980 | "binary-extensions": { 981 | "version": "2.2.0", 982 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 983 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 984 | "dev": true 985 | }, 986 | "bindings": { 987 | "version": "1.5.0", 988 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 989 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 990 | "requires": { 991 | "file-uri-to-path": "1.0.0" 992 | } 993 | }, 994 | "bip32": { 995 | "version": "2.0.6", 996 | "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", 997 | "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", 998 | "requires": { 999 | "@types/node": "10.12.18", 1000 | "bs58check": "^2.1.1", 1001 | "create-hash": "^1.2.0", 1002 | "create-hmac": "^1.1.7", 1003 | "tiny-secp256k1": "^1.1.3", 1004 | "typeforce": "^1.11.5", 1005 | "wif": "^2.0.6" 1006 | } 1007 | }, 1008 | "bip39": { 1009 | "version": "2.6.0", 1010 | "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", 1011 | "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", 1012 | "requires": { 1013 | "create-hash": "^1.1.0", 1014 | "pbkdf2": "^3.0.9", 1015 | "randombytes": "^2.0.1", 1016 | "safe-buffer": "^5.0.1", 1017 | "unorm": "^1.3.3" 1018 | } 1019 | }, 1020 | "bip66": { 1021 | "version": "1.1.5", 1022 | "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", 1023 | "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", 1024 | "requires": { 1025 | "safe-buffer": "^5.0.1" 1026 | } 1027 | }, 1028 | "bitcoin-ops": { 1029 | "version": "1.4.1", 1030 | "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", 1031 | "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" 1032 | }, 1033 | "bitcoinjs-lib": { 1034 | "version": "4.0.5", 1035 | "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-4.0.5.tgz", 1036 | "integrity": "sha512-gYs7K2hiY4Xb96J8AIF+Rx+hqbwjVlp5Zt6L6AnHOdzfe/2tODdmDxsEytnaxVCdhOUg0JnsGpl+KowBpGLxtA==", 1037 | "requires": { 1038 | "bech32": "^1.1.2", 1039 | "bip32": "^1.0.4", 1040 | "bip66": "^1.1.0", 1041 | "bitcoin-ops": "^1.4.0", 1042 | "bs58check": "^2.0.0", 1043 | "create-hash": "^1.1.0", 1044 | "create-hmac": "^1.1.3", 1045 | "merkle-lib": "^2.0.10", 1046 | "pushdata-bitcoin": "^1.0.1", 1047 | "randombytes": "^2.0.1", 1048 | "safe-buffer": "^5.1.1", 1049 | "tiny-secp256k1": "^1.0.0", 1050 | "typeforce": "^1.11.3", 1051 | "varuint-bitcoin": "^1.0.4", 1052 | "wif": "^2.0.1" 1053 | }, 1054 | "dependencies": { 1055 | "bip32": { 1056 | "version": "1.0.4", 1057 | "resolved": "https://registry.npmjs.org/bip32/-/bip32-1.0.4.tgz", 1058 | "integrity": "sha512-8T21eLWylZETolyqCPgia+MNp+kY37zFr7PTFDTPObHeNi9JlfG4qGIh8WzerIJidtwoK+NsWq2I5i66YfHoIw==", 1059 | "requires": { 1060 | "bs58check": "^2.1.1", 1061 | "create-hash": "^1.2.0", 1062 | "create-hmac": "^1.1.7", 1063 | "tiny-secp256k1": "^1.0.0", 1064 | "typeforce": "^1.11.5", 1065 | "wif": "^2.0.6" 1066 | } 1067 | } 1068 | } 1069 | }, 1070 | "bn.js": { 1071 | "version": "4.11.8", 1072 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 1073 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" 1074 | }, 1075 | "brace-expansion": { 1076 | "version": "1.1.11", 1077 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1078 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1079 | "dev": true, 1080 | "requires": { 1081 | "balanced-match": "^1.0.0", 1082 | "concat-map": "0.0.1" 1083 | } 1084 | }, 1085 | "braces": { 1086 | "version": "3.0.2", 1087 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1088 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1089 | "dev": true, 1090 | "requires": { 1091 | "fill-range": "^7.0.1" 1092 | } 1093 | }, 1094 | "brorand": { 1095 | "version": "1.1.0", 1096 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 1097 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" 1098 | }, 1099 | "browser-resolve": { 1100 | "version": "2.0.0", 1101 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", 1102 | "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", 1103 | "dev": true, 1104 | "requires": { 1105 | "resolve": "^1.17.0" 1106 | } 1107 | }, 1108 | "browser-stdout": { 1109 | "version": "1.3.1", 1110 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", 1111 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", 1112 | "dev": true 1113 | }, 1114 | "browserify-aes": { 1115 | "version": "1.2.0", 1116 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 1117 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 1118 | "requires": { 1119 | "buffer-xor": "^1.0.3", 1120 | "cipher-base": "^1.0.0", 1121 | "create-hash": "^1.1.0", 1122 | "evp_bytestokey": "^1.0.3", 1123 | "inherits": "^2.0.1", 1124 | "safe-buffer": "^5.0.1" 1125 | } 1126 | }, 1127 | "browserslist": { 1128 | "version": "4.16.6", 1129 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", 1130 | "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", 1131 | "dev": true, 1132 | "requires": { 1133 | "caniuse-lite": "^1.0.30001219", 1134 | "colorette": "^1.2.2", 1135 | "electron-to-chromium": "^1.3.723", 1136 | "escalade": "^3.1.1", 1137 | "node-releases": "^1.1.71" 1138 | } 1139 | }, 1140 | "bs58": { 1141 | "version": "4.0.1", 1142 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", 1143 | "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", 1144 | "requires": { 1145 | "base-x": "^3.0.2" 1146 | } 1147 | }, 1148 | "bs58check": { 1149 | "version": "2.1.2", 1150 | "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", 1151 | "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", 1152 | "requires": { 1153 | "bs58": "^4.0.0", 1154 | "create-hash": "^1.1.0", 1155 | "safe-buffer": "^5.1.2" 1156 | } 1157 | }, 1158 | "buffer-from": { 1159 | "version": "1.1.1", 1160 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 1161 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 1162 | "dev": true 1163 | }, 1164 | "buffer-xor": { 1165 | "version": "1.0.3", 1166 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 1167 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" 1168 | }, 1169 | "cached-path-relative": { 1170 | "version": "1.1.0", 1171 | "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", 1172 | "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", 1173 | "dev": true 1174 | }, 1175 | "call-bind": { 1176 | "version": "1.0.2", 1177 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1178 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1179 | "dev": true, 1180 | "requires": { 1181 | "function-bind": "^1.1.1", 1182 | "get-intrinsic": "^1.0.2" 1183 | } 1184 | }, 1185 | "camelcase": { 1186 | "version": "5.3.1", 1187 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 1188 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 1189 | "dev": true 1190 | }, 1191 | "caniuse-lite": { 1192 | "version": "1.0.30001228", 1193 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz", 1194 | "integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==", 1195 | "dev": true 1196 | }, 1197 | "caseless": { 1198 | "version": "0.12.0", 1199 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 1200 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 1201 | }, 1202 | "chalk": { 1203 | "version": "2.4.2", 1204 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1205 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1206 | "dev": true, 1207 | "requires": { 1208 | "ansi-styles": "^3.2.1", 1209 | "escape-string-regexp": "^1.0.5", 1210 | "supports-color": "^5.3.0" 1211 | }, 1212 | "dependencies": { 1213 | "supports-color": { 1214 | "version": "5.5.0", 1215 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1216 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1217 | "dev": true, 1218 | "requires": { 1219 | "has-flag": "^3.0.0" 1220 | } 1221 | } 1222 | } 1223 | }, 1224 | "chokidar": { 1225 | "version": "3.3.0", 1226 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", 1227 | "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", 1228 | "dev": true, 1229 | "requires": { 1230 | "anymatch": "~3.1.1", 1231 | "braces": "~3.0.2", 1232 | "fsevents": "~2.1.1", 1233 | "glob-parent": "~5.1.0", 1234 | "is-binary-path": "~2.1.0", 1235 | "is-glob": "~4.0.1", 1236 | "normalize-path": "~3.0.0", 1237 | "readdirp": "~3.2.0" 1238 | } 1239 | }, 1240 | "cipher-base": { 1241 | "version": "1.0.4", 1242 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 1243 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 1244 | "requires": { 1245 | "inherits": "^2.0.1", 1246 | "safe-buffer": "^5.0.1" 1247 | } 1248 | }, 1249 | "cliui": { 1250 | "version": "5.0.0", 1251 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 1252 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 1253 | "dev": true, 1254 | "requires": { 1255 | "string-width": "^3.1.0", 1256 | "strip-ansi": "^5.2.0", 1257 | "wrap-ansi": "^5.1.0" 1258 | }, 1259 | "dependencies": { 1260 | "ansi-regex": { 1261 | "version": "4.1.0", 1262 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 1263 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 1264 | "dev": true 1265 | }, 1266 | "string-width": { 1267 | "version": "3.1.0", 1268 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1269 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1270 | "dev": true, 1271 | "requires": { 1272 | "emoji-regex": "^7.0.1", 1273 | "is-fullwidth-code-point": "^2.0.0", 1274 | "strip-ansi": "^5.1.0" 1275 | } 1276 | }, 1277 | "strip-ansi": { 1278 | "version": "5.2.0", 1279 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1280 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1281 | "dev": true, 1282 | "requires": { 1283 | "ansi-regex": "^4.1.0" 1284 | } 1285 | } 1286 | } 1287 | }, 1288 | "color-convert": { 1289 | "version": "1.9.3", 1290 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1291 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1292 | "dev": true, 1293 | "requires": { 1294 | "color-name": "1.1.3" 1295 | } 1296 | }, 1297 | "color-name": { 1298 | "version": "1.1.3", 1299 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1300 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1301 | "dev": true 1302 | }, 1303 | "colorette": { 1304 | "version": "1.2.2", 1305 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", 1306 | "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", 1307 | "dev": true 1308 | }, 1309 | "combined-stream": { 1310 | "version": "1.0.8", 1311 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1312 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1313 | "requires": { 1314 | "delayed-stream": "~1.0.0" 1315 | } 1316 | }, 1317 | "concat-map": { 1318 | "version": "0.0.1", 1319 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1320 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1321 | "dev": true 1322 | }, 1323 | "concat-stream": { 1324 | "version": "1.6.2", 1325 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 1326 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 1327 | "dev": true, 1328 | "requires": { 1329 | "buffer-from": "^1.0.0", 1330 | "inherits": "^2.0.3", 1331 | "readable-stream": "^2.2.2", 1332 | "typedarray": "^0.0.6" 1333 | } 1334 | }, 1335 | "convert-source-map": { 1336 | "version": "1.7.0", 1337 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 1338 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 1339 | "dev": true, 1340 | "requires": { 1341 | "safe-buffer": "~5.1.1" 1342 | } 1343 | }, 1344 | "core-js": { 1345 | "version": "2.6.12", 1346 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", 1347 | "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", 1348 | "dev": true 1349 | }, 1350 | "core-util-is": { 1351 | "version": "1.0.2", 1352 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1353 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 1354 | }, 1355 | "create-hash": { 1356 | "version": "1.2.0", 1357 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 1358 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 1359 | "requires": { 1360 | "cipher-base": "^1.0.1", 1361 | "inherits": "^2.0.1", 1362 | "md5.js": "^1.3.4", 1363 | "ripemd160": "^2.0.1", 1364 | "sha.js": "^2.4.0" 1365 | } 1366 | }, 1367 | "create-hmac": { 1368 | "version": "1.1.7", 1369 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 1370 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 1371 | "requires": { 1372 | "cipher-base": "^1.0.3", 1373 | "create-hash": "^1.1.0", 1374 | "inherits": "^2.0.1", 1375 | "ripemd160": "^2.0.0", 1376 | "safe-buffer": "^5.0.1", 1377 | "sha.js": "^2.4.8" 1378 | } 1379 | }, 1380 | "dashdash": { 1381 | "version": "1.14.1", 1382 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1383 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1384 | "requires": { 1385 | "assert-plus": "^1.0.0" 1386 | } 1387 | }, 1388 | "data-uri-to-buffer": { 1389 | "version": "4.0.0", 1390 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", 1391 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" 1392 | }, 1393 | "debug": { 1394 | "version": "3.2.6", 1395 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 1396 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 1397 | "dev": true, 1398 | "requires": { 1399 | "ms": "^2.1.1" 1400 | } 1401 | }, 1402 | "decamelize": { 1403 | "version": "1.2.0", 1404 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1405 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1406 | "dev": true 1407 | }, 1408 | "define-properties": { 1409 | "version": "1.1.3", 1410 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1411 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1412 | "dev": true, 1413 | "requires": { 1414 | "object-keys": "^1.0.12" 1415 | } 1416 | }, 1417 | "delayed-stream": { 1418 | "version": "1.0.0", 1419 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1420 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 1421 | }, 1422 | "diff": { 1423 | "version": "3.5.0", 1424 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 1425 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 1426 | "dev": true 1427 | }, 1428 | "drbg.js": { 1429 | "version": "1.0.1", 1430 | "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", 1431 | "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", 1432 | "requires": { 1433 | "browserify-aes": "^1.0.6", 1434 | "create-hash": "^1.1.2", 1435 | "create-hmac": "^1.1.4" 1436 | } 1437 | }, 1438 | "duplexer2": { 1439 | "version": "0.1.4", 1440 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 1441 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", 1442 | "dev": true, 1443 | "requires": { 1444 | "readable-stream": "^2.0.2" 1445 | } 1446 | }, 1447 | "ecc-jsbn": { 1448 | "version": "0.1.2", 1449 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 1450 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 1451 | "requires": { 1452 | "jsbn": "~0.1.0", 1453 | "safer-buffer": "^2.1.0" 1454 | } 1455 | }, 1456 | "electron-to-chromium": { 1457 | "version": "1.3.727", 1458 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz", 1459 | "integrity": "sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg==", 1460 | "dev": true 1461 | }, 1462 | "elliptic": { 1463 | "version": "6.5.4", 1464 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", 1465 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", 1466 | "requires": { 1467 | "bn.js": "^4.11.9", 1468 | "brorand": "^1.1.0", 1469 | "hash.js": "^1.0.0", 1470 | "hmac-drbg": "^1.0.1", 1471 | "inherits": "^2.0.4", 1472 | "minimalistic-assert": "^1.0.1", 1473 | "minimalistic-crypto-utils": "^1.0.1" 1474 | }, 1475 | "dependencies": { 1476 | "bn.js": { 1477 | "version": "4.12.0", 1478 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 1479 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" 1480 | }, 1481 | "inherits": { 1482 | "version": "2.0.4", 1483 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1484 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1485 | } 1486 | } 1487 | }, 1488 | "emoji-regex": { 1489 | "version": "7.0.3", 1490 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 1491 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 1492 | "dev": true 1493 | }, 1494 | "es-abstract": { 1495 | "version": "1.18.0", 1496 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", 1497 | "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", 1498 | "dev": true, 1499 | "requires": { 1500 | "call-bind": "^1.0.2", 1501 | "es-to-primitive": "^1.2.1", 1502 | "function-bind": "^1.1.1", 1503 | "get-intrinsic": "^1.1.1", 1504 | "has": "^1.0.3", 1505 | "has-symbols": "^1.0.2", 1506 | "is-callable": "^1.2.3", 1507 | "is-negative-zero": "^2.0.1", 1508 | "is-regex": "^1.1.2", 1509 | "is-string": "^1.0.5", 1510 | "object-inspect": "^1.9.0", 1511 | "object-keys": "^1.1.1", 1512 | "object.assign": "^4.1.2", 1513 | "string.prototype.trimend": "^1.0.4", 1514 | "string.prototype.trimstart": "^1.0.4", 1515 | "unbox-primitive": "^1.0.0" 1516 | }, 1517 | "dependencies": { 1518 | "has-symbols": { 1519 | "version": "1.0.2", 1520 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 1521 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 1522 | "dev": true 1523 | }, 1524 | "object.assign": { 1525 | "version": "4.1.2", 1526 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 1527 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 1528 | "dev": true, 1529 | "requires": { 1530 | "call-bind": "^1.0.0", 1531 | "define-properties": "^1.1.3", 1532 | "has-symbols": "^1.0.1", 1533 | "object-keys": "^1.1.1" 1534 | } 1535 | } 1536 | } 1537 | }, 1538 | "es-to-primitive": { 1539 | "version": "1.2.1", 1540 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1541 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1542 | "dev": true, 1543 | "requires": { 1544 | "is-callable": "^1.1.4", 1545 | "is-date-object": "^1.0.1", 1546 | "is-symbol": "^1.0.2" 1547 | } 1548 | }, 1549 | "escalade": { 1550 | "version": "3.1.1", 1551 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1552 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1553 | "dev": true 1554 | }, 1555 | "escape-string-regexp": { 1556 | "version": "1.0.5", 1557 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1558 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1559 | "dev": true 1560 | }, 1561 | "esmify": { 1562 | "version": "2.1.1", 1563 | "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", 1564 | "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", 1565 | "dev": true, 1566 | "requires": { 1567 | "@babel/core": "^7.2.2", 1568 | "@babel/plugin-syntax-async-generators": "^7.2.0", 1569 | "@babel/plugin-syntax-dynamic-import": "^7.2.0", 1570 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0", 1571 | "@babel/plugin-transform-modules-commonjs": "^7.2.0", 1572 | "babel-plugin-import-to-require": "^1.0.0", 1573 | "cached-path-relative": "^1.1.0", 1574 | "concat-stream": "^1.6.2", 1575 | "duplexer2": "^0.1.4", 1576 | "through2": "^2.0.5" 1577 | } 1578 | }, 1579 | "esprima": { 1580 | "version": "4.0.1", 1581 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 1582 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 1583 | "dev": true 1584 | }, 1585 | "esutils": { 1586 | "version": "2.0.3", 1587 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1588 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1589 | "dev": true 1590 | }, 1591 | "evp_bytestokey": { 1592 | "version": "1.0.3", 1593 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 1594 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 1595 | "requires": { 1596 | "md5.js": "^1.3.4", 1597 | "safe-buffer": "^5.1.1" 1598 | } 1599 | }, 1600 | "extend": { 1601 | "version": "3.0.2", 1602 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1603 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 1604 | }, 1605 | "extsprintf": { 1606 | "version": "1.3.0", 1607 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1608 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 1609 | }, 1610 | "fast-deep-equal": { 1611 | "version": "3.1.3", 1612 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1613 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 1614 | }, 1615 | "fast-json-stable-stringify": { 1616 | "version": "2.1.0", 1617 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1618 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 1619 | }, 1620 | "fetch-blob": { 1621 | "version": "3.1.4", 1622 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", 1623 | "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", 1624 | "requires": { 1625 | "node-domexception": "^1.0.0", 1626 | "web-streams-polyfill": "^3.0.3" 1627 | } 1628 | }, 1629 | "file-uri-to-path": { 1630 | "version": "1.0.0", 1631 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1632 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 1633 | }, 1634 | "fill-range": { 1635 | "version": "7.0.1", 1636 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1637 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1638 | "dev": true, 1639 | "requires": { 1640 | "to-regex-range": "^5.0.1" 1641 | } 1642 | }, 1643 | "find-up": { 1644 | "version": "3.0.0", 1645 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1646 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1647 | "dev": true, 1648 | "requires": { 1649 | "locate-path": "^3.0.0" 1650 | } 1651 | }, 1652 | "flat": { 1653 | "version": "4.1.1", 1654 | "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", 1655 | "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", 1656 | "dev": true, 1657 | "requires": { 1658 | "is-buffer": "~2.0.3" 1659 | } 1660 | }, 1661 | "forever-agent": { 1662 | "version": "0.6.1", 1663 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1664 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 1665 | }, 1666 | "form-data": { 1667 | "version": "2.3.3", 1668 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1669 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1670 | "requires": { 1671 | "asynckit": "^0.4.0", 1672 | "combined-stream": "^1.0.6", 1673 | "mime-types": "^2.1.12" 1674 | } 1675 | }, 1676 | "formdata-polyfill": { 1677 | "version": "4.0.10", 1678 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 1679 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 1680 | "requires": { 1681 | "fetch-blob": "^3.1.2" 1682 | } 1683 | }, 1684 | "fs.realpath": { 1685 | "version": "1.0.0", 1686 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1687 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1688 | "dev": true 1689 | }, 1690 | "fsevents": { 1691 | "version": "2.1.3", 1692 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", 1693 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", 1694 | "dev": true, 1695 | "optional": true 1696 | }, 1697 | "function-bind": { 1698 | "version": "1.1.1", 1699 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1700 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1701 | "dev": true 1702 | }, 1703 | "gensync": { 1704 | "version": "1.0.0-beta.2", 1705 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1706 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1707 | "dev": true 1708 | }, 1709 | "get-caller-file": { 1710 | "version": "2.0.5", 1711 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1712 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 1713 | "dev": true 1714 | }, 1715 | "get-intrinsic": { 1716 | "version": "1.1.1", 1717 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 1718 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 1719 | "dev": true, 1720 | "requires": { 1721 | "function-bind": "^1.1.1", 1722 | "has": "^1.0.3", 1723 | "has-symbols": "^1.0.1" 1724 | } 1725 | }, 1726 | "getpass": { 1727 | "version": "0.1.7", 1728 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1729 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1730 | "requires": { 1731 | "assert-plus": "^1.0.0" 1732 | } 1733 | }, 1734 | "glob": { 1735 | "version": "7.1.3", 1736 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 1737 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 1738 | "dev": true, 1739 | "requires": { 1740 | "fs.realpath": "^1.0.0", 1741 | "inflight": "^1.0.4", 1742 | "inherits": "2", 1743 | "minimatch": "^3.0.4", 1744 | "once": "^1.3.0", 1745 | "path-is-absolute": "^1.0.0" 1746 | } 1747 | }, 1748 | "glob-parent": { 1749 | "version": "5.1.2", 1750 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1751 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1752 | "dev": true, 1753 | "requires": { 1754 | "is-glob": "^4.0.1" 1755 | } 1756 | }, 1757 | "globals": { 1758 | "version": "11.12.0", 1759 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1760 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1761 | "dev": true 1762 | }, 1763 | "google-protobuf": { 1764 | "version": "3.14.0", 1765 | "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.14.0.tgz", 1766 | "integrity": "sha512-bwa8dBuMpOxg7COyqkW6muQuvNnWgVN8TX/epDRGW5m0jcrmq2QJyCyiV8ZE2/6LaIIqJtiv9bYokFhfpy/o6w==" 1767 | }, 1768 | "growl": { 1769 | "version": "1.10.5", 1770 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", 1771 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", 1772 | "dev": true 1773 | }, 1774 | "har-schema": { 1775 | "version": "2.0.0", 1776 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1777 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 1778 | }, 1779 | "har-validator": { 1780 | "version": "5.1.5", 1781 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 1782 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 1783 | "requires": { 1784 | "ajv": "^6.12.3", 1785 | "har-schema": "^2.0.0" 1786 | } 1787 | }, 1788 | "has": { 1789 | "version": "1.0.3", 1790 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1791 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1792 | "dev": true, 1793 | "requires": { 1794 | "function-bind": "^1.1.1" 1795 | } 1796 | }, 1797 | "has-ansi": { 1798 | "version": "2.0.0", 1799 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1800 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1801 | "dev": true, 1802 | "requires": { 1803 | "ansi-regex": "^2.0.0" 1804 | }, 1805 | "dependencies": { 1806 | "ansi-regex": { 1807 | "version": "2.1.1", 1808 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 1809 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 1810 | "dev": true 1811 | } 1812 | } 1813 | }, 1814 | "has-bigints": { 1815 | "version": "1.0.1", 1816 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", 1817 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", 1818 | "dev": true 1819 | }, 1820 | "has-flag": { 1821 | "version": "3.0.0", 1822 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1823 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1824 | "dev": true 1825 | }, 1826 | "has-symbols": { 1827 | "version": "1.0.1", 1828 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 1829 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 1830 | "dev": true 1831 | }, 1832 | "hash-base": { 1833 | "version": "3.0.4", 1834 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 1835 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 1836 | "requires": { 1837 | "inherits": "^2.0.1", 1838 | "safe-buffer": "^5.0.1" 1839 | } 1840 | }, 1841 | "hash.js": { 1842 | "version": "1.1.7", 1843 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 1844 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 1845 | "requires": { 1846 | "inherits": "^2.0.3", 1847 | "minimalistic-assert": "^1.0.1" 1848 | } 1849 | }, 1850 | "he": { 1851 | "version": "1.2.0", 1852 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1853 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 1854 | "dev": true 1855 | }, 1856 | "hmac-drbg": { 1857 | "version": "1.0.1", 1858 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 1859 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 1860 | "requires": { 1861 | "hash.js": "^1.0.3", 1862 | "minimalistic-assert": "^1.0.0", 1863 | "minimalistic-crypto-utils": "^1.0.1" 1864 | } 1865 | }, 1866 | "http-signature": { 1867 | "version": "1.2.0", 1868 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1869 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1870 | "requires": { 1871 | "assert-plus": "^1.0.0", 1872 | "jsprim": "^1.2.2", 1873 | "sshpk": "^1.7.0" 1874 | } 1875 | }, 1876 | "inflight": { 1877 | "version": "1.0.6", 1878 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1879 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1880 | "dev": true, 1881 | "requires": { 1882 | "once": "^1.3.0", 1883 | "wrappy": "1" 1884 | } 1885 | }, 1886 | "inherits": { 1887 | "version": "2.0.3", 1888 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1889 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1890 | }, 1891 | "invariant": { 1892 | "version": "2.2.4", 1893 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 1894 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 1895 | "dev": true, 1896 | "requires": { 1897 | "loose-envify": "^1.0.0" 1898 | } 1899 | }, 1900 | "is-bigint": { 1901 | "version": "1.0.2", 1902 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", 1903 | "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", 1904 | "dev": true 1905 | }, 1906 | "is-binary-path": { 1907 | "version": "2.1.0", 1908 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1909 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1910 | "dev": true, 1911 | "requires": { 1912 | "binary-extensions": "^2.0.0" 1913 | } 1914 | }, 1915 | "is-boolean-object": { 1916 | "version": "1.1.1", 1917 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", 1918 | "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", 1919 | "dev": true, 1920 | "requires": { 1921 | "call-bind": "^1.0.2" 1922 | } 1923 | }, 1924 | "is-buffer": { 1925 | "version": "2.0.5", 1926 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", 1927 | "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", 1928 | "dev": true 1929 | }, 1930 | "is-callable": { 1931 | "version": "1.2.3", 1932 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", 1933 | "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", 1934 | "dev": true 1935 | }, 1936 | "is-core-module": { 1937 | "version": "2.2.0", 1938 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 1939 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 1940 | "dev": true, 1941 | "requires": { 1942 | "has": "^1.0.3" 1943 | } 1944 | }, 1945 | "is-date-object": { 1946 | "version": "1.0.4", 1947 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", 1948 | "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", 1949 | "dev": true 1950 | }, 1951 | "is-extglob": { 1952 | "version": "2.1.1", 1953 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1954 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1955 | "dev": true 1956 | }, 1957 | "is-fullwidth-code-point": { 1958 | "version": "2.0.0", 1959 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1960 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1961 | "dev": true 1962 | }, 1963 | "is-glob": { 1964 | "version": "4.0.1", 1965 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1966 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1967 | "dev": true, 1968 | "requires": { 1969 | "is-extglob": "^2.1.1" 1970 | } 1971 | }, 1972 | "is-negative-zero": { 1973 | "version": "2.0.1", 1974 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", 1975 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", 1976 | "dev": true 1977 | }, 1978 | "is-number": { 1979 | "version": "7.0.0", 1980 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1981 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1982 | "dev": true 1983 | }, 1984 | "is-number-object": { 1985 | "version": "1.0.5", 1986 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", 1987 | "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", 1988 | "dev": true 1989 | }, 1990 | "is-regex": { 1991 | "version": "1.1.3", 1992 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", 1993 | "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", 1994 | "dev": true, 1995 | "requires": { 1996 | "call-bind": "^1.0.2", 1997 | "has-symbols": "^1.0.2" 1998 | }, 1999 | "dependencies": { 2000 | "has-symbols": { 2001 | "version": "1.0.2", 2002 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 2003 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 2004 | "dev": true 2005 | } 2006 | } 2007 | }, 2008 | "is-string": { 2009 | "version": "1.0.6", 2010 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", 2011 | "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", 2012 | "dev": true 2013 | }, 2014 | "is-symbol": { 2015 | "version": "1.0.4", 2016 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 2017 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 2018 | "dev": true, 2019 | "requires": { 2020 | "has-symbols": "^1.0.2" 2021 | }, 2022 | "dependencies": { 2023 | "has-symbols": { 2024 | "version": "1.0.2", 2025 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 2026 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 2027 | "dev": true 2028 | } 2029 | } 2030 | }, 2031 | "is-typedarray": { 2032 | "version": "1.0.0", 2033 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2034 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 2035 | }, 2036 | "isarray": { 2037 | "version": "1.0.0", 2038 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2039 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2040 | "dev": true 2041 | }, 2042 | "isexe": { 2043 | "version": "2.0.0", 2044 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2045 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2046 | "dev": true 2047 | }, 2048 | "isstream": { 2049 | "version": "0.1.2", 2050 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2051 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 2052 | }, 2053 | "js-tokens": { 2054 | "version": "4.0.0", 2055 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2056 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2057 | "dev": true 2058 | }, 2059 | "js-yaml": { 2060 | "version": "3.13.1", 2061 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 2062 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 2063 | "dev": true, 2064 | "requires": { 2065 | "argparse": "^1.0.7", 2066 | "esprima": "^4.0.0" 2067 | } 2068 | }, 2069 | "jsbn": { 2070 | "version": "0.1.1", 2071 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 2072 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 2073 | }, 2074 | "jsesc": { 2075 | "version": "2.5.2", 2076 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2077 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 2078 | "dev": true 2079 | }, 2080 | "json-schema": { 2081 | "version": "0.2.3", 2082 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 2083 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 2084 | }, 2085 | "json-schema-traverse": { 2086 | "version": "0.4.1", 2087 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2088 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 2089 | }, 2090 | "json-stringify-safe": { 2091 | "version": "5.0.1", 2092 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 2093 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 2094 | }, 2095 | "json5": { 2096 | "version": "2.2.0", 2097 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", 2098 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", 2099 | "dev": true, 2100 | "requires": { 2101 | "minimist": "^1.2.5" 2102 | } 2103 | }, 2104 | "jsprim": { 2105 | "version": "1.4.1", 2106 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 2107 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 2108 | "requires": { 2109 | "assert-plus": "1.0.0", 2110 | "extsprintf": "1.3.0", 2111 | "json-schema": "0.2.3", 2112 | "verror": "1.10.0" 2113 | } 2114 | }, 2115 | "locate-path": { 2116 | "version": "3.0.0", 2117 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 2118 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 2119 | "dev": true, 2120 | "requires": { 2121 | "p-locate": "^3.0.0", 2122 | "path-exists": "^3.0.0" 2123 | } 2124 | }, 2125 | "lodash": { 2126 | "version": "4.17.21", 2127 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 2128 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 2129 | }, 2130 | "log-symbols": { 2131 | "version": "3.0.0", 2132 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", 2133 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", 2134 | "dev": true, 2135 | "requires": { 2136 | "chalk": "^2.4.2" 2137 | } 2138 | }, 2139 | "long": { 2140 | "version": "4.0.0", 2141 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 2142 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 2143 | }, 2144 | "loose-envify": { 2145 | "version": "1.4.0", 2146 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2147 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2148 | "dev": true, 2149 | "requires": { 2150 | "js-tokens": "^3.0.0 || ^4.0.0" 2151 | } 2152 | }, 2153 | "md5.js": { 2154 | "version": "1.3.5", 2155 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 2156 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 2157 | "requires": { 2158 | "hash-base": "^3.0.0", 2159 | "inherits": "^2.0.1", 2160 | "safe-buffer": "^5.1.2" 2161 | } 2162 | }, 2163 | "merkle-lib": { 2164 | "version": "2.0.10", 2165 | "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", 2166 | "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" 2167 | }, 2168 | "mime-db": { 2169 | "version": "1.45.0", 2170 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", 2171 | "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" 2172 | }, 2173 | "mime-types": { 2174 | "version": "2.1.28", 2175 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", 2176 | "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", 2177 | "requires": { 2178 | "mime-db": "1.45.0" 2179 | } 2180 | }, 2181 | "minimalistic-assert": { 2182 | "version": "1.0.1", 2183 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 2184 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 2185 | }, 2186 | "minimalistic-crypto-utils": { 2187 | "version": "1.0.1", 2188 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2189 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" 2190 | }, 2191 | "minimatch": { 2192 | "version": "3.0.4", 2193 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2194 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2195 | "dev": true, 2196 | "requires": { 2197 | "brace-expansion": "^1.1.7" 2198 | } 2199 | }, 2200 | "minimist": { 2201 | "version": "1.2.6", 2202 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 2203 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 2204 | "dev": true 2205 | }, 2206 | "mkdirp": { 2207 | "version": "0.5.5", 2208 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 2209 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 2210 | "dev": true, 2211 | "requires": { 2212 | "minimist": "^1.2.5" 2213 | } 2214 | }, 2215 | "mocha": { 2216 | "version": "7.2.0", 2217 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", 2218 | "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", 2219 | "dev": true, 2220 | "requires": { 2221 | "ansi-colors": "3.2.3", 2222 | "browser-stdout": "1.3.1", 2223 | "chokidar": "3.3.0", 2224 | "debug": "3.2.6", 2225 | "diff": "3.5.0", 2226 | "escape-string-regexp": "1.0.5", 2227 | "find-up": "3.0.0", 2228 | "glob": "7.1.3", 2229 | "growl": "1.10.5", 2230 | "he": "1.2.0", 2231 | "js-yaml": "3.13.1", 2232 | "log-symbols": "3.0.0", 2233 | "minimatch": "3.0.4", 2234 | "mkdirp": "0.5.5", 2235 | "ms": "2.1.1", 2236 | "node-environment-flags": "1.0.6", 2237 | "object.assign": "4.1.0", 2238 | "strip-json-comments": "2.0.1", 2239 | "supports-color": "6.0.0", 2240 | "which": "1.3.1", 2241 | "wide-align": "1.1.3", 2242 | "yargs": "13.3.2", 2243 | "yargs-parser": "13.1.2", 2244 | "yargs-unparser": "1.6.0" 2245 | } 2246 | }, 2247 | "ms": { 2248 | "version": "2.1.1", 2249 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 2250 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 2251 | "dev": true 2252 | }, 2253 | "nan": { 2254 | "version": "2.14.2", 2255 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", 2256 | "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" 2257 | }, 2258 | "node-domexception": { 2259 | "version": "1.0.0", 2260 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 2261 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" 2262 | }, 2263 | "node-environment-flags": { 2264 | "version": "1.0.6", 2265 | "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", 2266 | "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", 2267 | "dev": true, 2268 | "requires": { 2269 | "object.getownpropertydescriptors": "^2.0.3", 2270 | "semver": "^5.7.0" 2271 | } 2272 | }, 2273 | "node-fetch": { 2274 | "version": "3.1.1", 2275 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz", 2276 | "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==", 2277 | "requires": { 2278 | "data-uri-to-buffer": "^4.0.0", 2279 | "fetch-blob": "^3.1.3", 2280 | "formdata-polyfill": "^4.0.10" 2281 | } 2282 | }, 2283 | "node-releases": { 2284 | "version": "1.1.71", 2285 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", 2286 | "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", 2287 | "dev": true 2288 | }, 2289 | "normalize-path": { 2290 | "version": "3.0.0", 2291 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2292 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2293 | "dev": true 2294 | }, 2295 | "oauth-sign": { 2296 | "version": "0.9.0", 2297 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 2298 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 2299 | }, 2300 | "object-inspect": { 2301 | "version": "1.10.3", 2302 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", 2303 | "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", 2304 | "dev": true 2305 | }, 2306 | "object-keys": { 2307 | "version": "1.1.1", 2308 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 2309 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 2310 | "dev": true 2311 | }, 2312 | "object.assign": { 2313 | "version": "4.1.0", 2314 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 2315 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 2316 | "dev": true, 2317 | "requires": { 2318 | "define-properties": "^1.1.2", 2319 | "function-bind": "^1.1.1", 2320 | "has-symbols": "^1.0.0", 2321 | "object-keys": "^1.0.11" 2322 | } 2323 | }, 2324 | "object.getownpropertydescriptors": { 2325 | "version": "2.1.2", 2326 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", 2327 | "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", 2328 | "dev": true, 2329 | "requires": { 2330 | "call-bind": "^1.0.2", 2331 | "define-properties": "^1.1.3", 2332 | "es-abstract": "^1.18.0-next.2" 2333 | } 2334 | }, 2335 | "once": { 2336 | "version": "1.4.0", 2337 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2338 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2339 | "dev": true, 2340 | "requires": { 2341 | "wrappy": "1" 2342 | } 2343 | }, 2344 | "p-limit": { 2345 | "version": "2.3.0", 2346 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 2347 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 2348 | "dev": true, 2349 | "requires": { 2350 | "p-try": "^2.0.0" 2351 | } 2352 | }, 2353 | "p-locate": { 2354 | "version": "3.0.0", 2355 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 2356 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 2357 | "dev": true, 2358 | "requires": { 2359 | "p-limit": "^2.0.0" 2360 | } 2361 | }, 2362 | "p-try": { 2363 | "version": "2.2.0", 2364 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2365 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2366 | "dev": true 2367 | }, 2368 | "path-exists": { 2369 | "version": "3.0.0", 2370 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 2371 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2372 | "dev": true 2373 | }, 2374 | "path-is-absolute": { 2375 | "version": "1.0.1", 2376 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2377 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2378 | "dev": true 2379 | }, 2380 | "path-parse": { 2381 | "version": "1.0.7", 2382 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2383 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2384 | "dev": true 2385 | }, 2386 | "pbkdf2": { 2387 | "version": "3.1.1", 2388 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", 2389 | "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", 2390 | "requires": { 2391 | "create-hash": "^1.1.2", 2392 | "create-hmac": "^1.1.4", 2393 | "ripemd160": "^2.0.1", 2394 | "safe-buffer": "^5.0.1", 2395 | "sha.js": "^2.4.8" 2396 | } 2397 | }, 2398 | "performance-now": { 2399 | "version": "2.1.0", 2400 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 2401 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 2402 | }, 2403 | "picomatch": { 2404 | "version": "2.2.3", 2405 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", 2406 | "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", 2407 | "dev": true 2408 | }, 2409 | "process-nextick-args": { 2410 | "version": "2.0.1", 2411 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 2412 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 2413 | "dev": true 2414 | }, 2415 | "protobufjs": { 2416 | "version": "6.10.2", 2417 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", 2418 | "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", 2419 | "requires": { 2420 | "@protobufjs/aspromise": "^1.1.2", 2421 | "@protobufjs/base64": "^1.1.2", 2422 | "@protobufjs/codegen": "^2.0.4", 2423 | "@protobufjs/eventemitter": "^1.1.0", 2424 | "@protobufjs/fetch": "^1.1.0", 2425 | "@protobufjs/float": "^1.0.2", 2426 | "@protobufjs/inquire": "^1.1.0", 2427 | "@protobufjs/path": "^1.1.2", 2428 | "@protobufjs/pool": "^1.1.0", 2429 | "@protobufjs/utf8": "^1.1.0", 2430 | "@types/long": "^4.0.1", 2431 | "@types/node": "^13.7.0", 2432 | "long": "^4.0.0" 2433 | }, 2434 | "dependencies": { 2435 | "@types/node": { 2436 | "version": "13.13.41", 2437 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.41.tgz", 2438 | "integrity": "sha512-qLT9IvHiXJfdrje9VmsLzun7cQ65obsBTmtU3EOnCSLFOoSHx1hpiRHoBnpdbyFqnzqdUUIv81JcEJQCB8un9g==" 2439 | } 2440 | } 2441 | }, 2442 | "psl": { 2443 | "version": "1.8.0", 2444 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 2445 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" 2446 | }, 2447 | "punycode": { 2448 | "version": "2.1.1", 2449 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2450 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 2451 | }, 2452 | "pushdata-bitcoin": { 2453 | "version": "1.0.1", 2454 | "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", 2455 | "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", 2456 | "requires": { 2457 | "bitcoin-ops": "^1.3.0" 2458 | } 2459 | }, 2460 | "qs": { 2461 | "version": "6.5.2", 2462 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 2463 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 2464 | }, 2465 | "randombytes": { 2466 | "version": "2.1.0", 2467 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 2468 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 2469 | "requires": { 2470 | "safe-buffer": "^5.1.0" 2471 | } 2472 | }, 2473 | "readable-stream": { 2474 | "version": "2.3.7", 2475 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2476 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2477 | "dev": true, 2478 | "requires": { 2479 | "core-util-is": "~1.0.0", 2480 | "inherits": "~2.0.3", 2481 | "isarray": "~1.0.0", 2482 | "process-nextick-args": "~2.0.0", 2483 | "safe-buffer": "~5.1.1", 2484 | "string_decoder": "~1.1.1", 2485 | "util-deprecate": "~1.0.1" 2486 | } 2487 | }, 2488 | "readdirp": { 2489 | "version": "3.2.0", 2490 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", 2491 | "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", 2492 | "dev": true, 2493 | "requires": { 2494 | "picomatch": "^2.0.4" 2495 | } 2496 | }, 2497 | "regenerator-runtime": { 2498 | "version": "0.11.1", 2499 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 2500 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 2501 | "dev": true 2502 | }, 2503 | "request": { 2504 | "version": "2.88.2", 2505 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 2506 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 2507 | "requires": { 2508 | "aws-sign2": "~0.7.0", 2509 | "aws4": "^1.8.0", 2510 | "caseless": "~0.12.0", 2511 | "combined-stream": "~1.0.6", 2512 | "extend": "~3.0.2", 2513 | "forever-agent": "~0.6.1", 2514 | "form-data": "~2.3.2", 2515 | "har-validator": "~5.1.3", 2516 | "http-signature": "~1.2.0", 2517 | "is-typedarray": "~1.0.0", 2518 | "isstream": "~0.1.2", 2519 | "json-stringify-safe": "~5.0.1", 2520 | "mime-types": "~2.1.19", 2521 | "oauth-sign": "~0.9.0", 2522 | "performance-now": "^2.1.0", 2523 | "qs": "~6.5.2", 2524 | "safe-buffer": "^5.1.2", 2525 | "tough-cookie": "~2.5.0", 2526 | "tunnel-agent": "^0.6.0", 2527 | "uuid": "^3.3.2" 2528 | } 2529 | }, 2530 | "require-directory": { 2531 | "version": "2.1.1", 2532 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2533 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2534 | "dev": true 2535 | }, 2536 | "require-main-filename": { 2537 | "version": "2.0.0", 2538 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 2539 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 2540 | "dev": true 2541 | }, 2542 | "resolve": { 2543 | "version": "1.20.0", 2544 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 2545 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 2546 | "dev": true, 2547 | "requires": { 2548 | "is-core-module": "^2.2.0", 2549 | "path-parse": "^1.0.6" 2550 | } 2551 | }, 2552 | "ripemd160": { 2553 | "version": "2.0.2", 2554 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 2555 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 2556 | "requires": { 2557 | "hash-base": "^3.0.0", 2558 | "inherits": "^2.0.1" 2559 | } 2560 | }, 2561 | "safe-buffer": { 2562 | "version": "5.1.2", 2563 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2564 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2565 | }, 2566 | "safer-buffer": { 2567 | "version": "2.1.2", 2568 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2569 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2570 | }, 2571 | "secp256k1": { 2572 | "version": "3.8.0", 2573 | "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", 2574 | "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", 2575 | "requires": { 2576 | "bindings": "^1.5.0", 2577 | "bip66": "^1.1.5", 2578 | "bn.js": "^4.11.8", 2579 | "create-hash": "^1.2.0", 2580 | "drbg.js": "^1.0.1", 2581 | "elliptic": "^6.5.2", 2582 | "nan": "^2.14.0", 2583 | "safe-buffer": "^5.1.2" 2584 | } 2585 | }, 2586 | "semver": { 2587 | "version": "5.7.1", 2588 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2589 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 2590 | "dev": true 2591 | }, 2592 | "set-blocking": { 2593 | "version": "2.0.0", 2594 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2595 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2596 | "dev": true 2597 | }, 2598 | "sha.js": { 2599 | "version": "2.4.11", 2600 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 2601 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 2602 | "requires": { 2603 | "inherits": "^2.0.1", 2604 | "safe-buffer": "^5.0.1" 2605 | } 2606 | }, 2607 | "source-map": { 2608 | "version": "0.5.7", 2609 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2610 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2611 | "dev": true 2612 | }, 2613 | "sprintf-js": { 2614 | "version": "1.0.3", 2615 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2616 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2617 | "dev": true 2618 | }, 2619 | "sshpk": { 2620 | "version": "1.16.1", 2621 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 2622 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 2623 | "requires": { 2624 | "asn1": "~0.2.3", 2625 | "assert-plus": "^1.0.0", 2626 | "bcrypt-pbkdf": "^1.0.0", 2627 | "dashdash": "^1.12.0", 2628 | "ecc-jsbn": "~0.1.1", 2629 | "getpass": "^0.1.1", 2630 | "jsbn": "~0.1.0", 2631 | "safer-buffer": "^2.0.2", 2632 | "tweetnacl": "~0.14.0" 2633 | } 2634 | }, 2635 | "string-width": { 2636 | "version": "2.1.1", 2637 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2638 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2639 | "dev": true, 2640 | "requires": { 2641 | "is-fullwidth-code-point": "^2.0.0", 2642 | "strip-ansi": "^4.0.0" 2643 | } 2644 | }, 2645 | "string.prototype.trimend": { 2646 | "version": "1.0.4", 2647 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", 2648 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", 2649 | "dev": true, 2650 | "requires": { 2651 | "call-bind": "^1.0.2", 2652 | "define-properties": "^1.1.3" 2653 | } 2654 | }, 2655 | "string.prototype.trimstart": { 2656 | "version": "1.0.4", 2657 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", 2658 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", 2659 | "dev": true, 2660 | "requires": { 2661 | "call-bind": "^1.0.2", 2662 | "define-properties": "^1.1.3" 2663 | } 2664 | }, 2665 | "string_decoder": { 2666 | "version": "1.1.1", 2667 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2668 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2669 | "dev": true, 2670 | "requires": { 2671 | "safe-buffer": "~5.1.0" 2672 | } 2673 | }, 2674 | "strip-ansi": { 2675 | "version": "4.0.0", 2676 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2677 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2678 | "dev": true, 2679 | "requires": { 2680 | "ansi-regex": "^3.0.0" 2681 | }, 2682 | "dependencies": { 2683 | "ansi-regex": { 2684 | "version": "3.0.0", 2685 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 2686 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 2687 | "dev": true 2688 | } 2689 | } 2690 | }, 2691 | "strip-json-comments": { 2692 | "version": "2.0.1", 2693 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2694 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 2695 | "dev": true 2696 | }, 2697 | "supports-color": { 2698 | "version": "6.0.0", 2699 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", 2700 | "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", 2701 | "dev": true, 2702 | "requires": { 2703 | "has-flag": "^3.0.0" 2704 | } 2705 | }, 2706 | "through2": { 2707 | "version": "2.0.5", 2708 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 2709 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 2710 | "dev": true, 2711 | "requires": { 2712 | "readable-stream": "~2.3.6", 2713 | "xtend": "~4.0.1" 2714 | } 2715 | }, 2716 | "tiny-secp256k1": { 2717 | "version": "1.1.6", 2718 | "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", 2719 | "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", 2720 | "requires": { 2721 | "bindings": "^1.3.0", 2722 | "bn.js": "^4.11.8", 2723 | "create-hmac": "^1.1.7", 2724 | "elliptic": "^6.4.0", 2725 | "nan": "^2.13.2" 2726 | }, 2727 | "dependencies": { 2728 | "nan": { 2729 | "version": "2.14.2", 2730 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", 2731 | "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" 2732 | } 2733 | } 2734 | }, 2735 | "to-fast-properties": { 2736 | "version": "2.0.0", 2737 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2738 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 2739 | "dev": true 2740 | }, 2741 | "to-regex-range": { 2742 | "version": "5.0.1", 2743 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2744 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2745 | "dev": true, 2746 | "requires": { 2747 | "is-number": "^7.0.0" 2748 | } 2749 | }, 2750 | "tough-cookie": { 2751 | "version": "2.5.0", 2752 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 2753 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 2754 | "requires": { 2755 | "psl": "^1.1.28", 2756 | "punycode": "^2.1.1" 2757 | } 2758 | }, 2759 | "tunnel-agent": { 2760 | "version": "0.6.0", 2761 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2762 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2763 | "requires": { 2764 | "safe-buffer": "^5.0.1" 2765 | } 2766 | }, 2767 | "tweetnacl": { 2768 | "version": "0.14.5", 2769 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2770 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 2771 | }, 2772 | "typedarray": { 2773 | "version": "0.0.6", 2774 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2775 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 2776 | "dev": true 2777 | }, 2778 | "typeforce": { 2779 | "version": "1.18.0", 2780 | "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", 2781 | "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" 2782 | }, 2783 | "unbox-primitive": { 2784 | "version": "1.0.1", 2785 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", 2786 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", 2787 | "dev": true, 2788 | "requires": { 2789 | "function-bind": "^1.1.1", 2790 | "has-bigints": "^1.0.1", 2791 | "has-symbols": "^1.0.2", 2792 | "which-boxed-primitive": "^1.0.2" 2793 | }, 2794 | "dependencies": { 2795 | "has-symbols": { 2796 | "version": "1.0.2", 2797 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", 2798 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", 2799 | "dev": true 2800 | } 2801 | } 2802 | }, 2803 | "unorm": { 2804 | "version": "1.6.0", 2805 | "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", 2806 | "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==" 2807 | }, 2808 | "uri-js": { 2809 | "version": "4.4.1", 2810 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2811 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2812 | "requires": { 2813 | "punycode": "^2.1.0" 2814 | } 2815 | }, 2816 | "util-deprecate": { 2817 | "version": "1.0.2", 2818 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2819 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2820 | "dev": true 2821 | }, 2822 | "uuid": { 2823 | "version": "3.4.0", 2824 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 2825 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" 2826 | }, 2827 | "varuint-bitcoin": { 2828 | "version": "1.1.2", 2829 | "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", 2830 | "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", 2831 | "requires": { 2832 | "safe-buffer": "^5.1.1" 2833 | } 2834 | }, 2835 | "verror": { 2836 | "version": "1.10.0", 2837 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2838 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2839 | "requires": { 2840 | "assert-plus": "^1.0.0", 2841 | "core-util-is": "1.0.2", 2842 | "extsprintf": "^1.2.0" 2843 | } 2844 | }, 2845 | "web-streams-polyfill": { 2846 | "version": "3.2.0", 2847 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", 2848 | "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" 2849 | }, 2850 | "which": { 2851 | "version": "1.3.1", 2852 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2853 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2854 | "dev": true, 2855 | "requires": { 2856 | "isexe": "^2.0.0" 2857 | } 2858 | }, 2859 | "which-boxed-primitive": { 2860 | "version": "1.0.2", 2861 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 2862 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 2863 | "dev": true, 2864 | "requires": { 2865 | "is-bigint": "^1.0.1", 2866 | "is-boolean-object": "^1.1.0", 2867 | "is-number-object": "^1.0.4", 2868 | "is-string": "^1.0.5", 2869 | "is-symbol": "^1.0.3" 2870 | } 2871 | }, 2872 | "which-module": { 2873 | "version": "2.0.0", 2874 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 2875 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 2876 | "dev": true 2877 | }, 2878 | "wide-align": { 2879 | "version": "1.1.3", 2880 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 2881 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 2882 | "dev": true, 2883 | "requires": { 2884 | "string-width": "^1.0.2 || 2" 2885 | } 2886 | }, 2887 | "wif": { 2888 | "version": "2.0.6", 2889 | "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", 2890 | "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", 2891 | "requires": { 2892 | "bs58check": "<3.0.0" 2893 | } 2894 | }, 2895 | "wrap-ansi": { 2896 | "version": "5.1.0", 2897 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 2898 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 2899 | "dev": true, 2900 | "requires": { 2901 | "ansi-styles": "^3.2.0", 2902 | "string-width": "^3.0.0", 2903 | "strip-ansi": "^5.0.0" 2904 | }, 2905 | "dependencies": { 2906 | "ansi-regex": { 2907 | "version": "4.1.0", 2908 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 2909 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 2910 | "dev": true 2911 | }, 2912 | "string-width": { 2913 | "version": "3.1.0", 2914 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 2915 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 2916 | "dev": true, 2917 | "requires": { 2918 | "emoji-regex": "^7.0.1", 2919 | "is-fullwidth-code-point": "^2.0.0", 2920 | "strip-ansi": "^5.1.0" 2921 | } 2922 | }, 2923 | "strip-ansi": { 2924 | "version": "5.2.0", 2925 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2926 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2927 | "dev": true, 2928 | "requires": { 2929 | "ansi-regex": "^4.1.0" 2930 | } 2931 | } 2932 | } 2933 | }, 2934 | "wrappy": { 2935 | "version": "1.0.2", 2936 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2937 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2938 | "dev": true 2939 | }, 2940 | "xtend": { 2941 | "version": "4.0.2", 2942 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 2943 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 2944 | "dev": true 2945 | }, 2946 | "y18n": { 2947 | "version": "4.0.3", 2948 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", 2949 | "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", 2950 | "dev": true 2951 | }, 2952 | "yargs": { 2953 | "version": "13.3.2", 2954 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", 2955 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", 2956 | "dev": true, 2957 | "requires": { 2958 | "cliui": "^5.0.0", 2959 | "find-up": "^3.0.0", 2960 | "get-caller-file": "^2.0.1", 2961 | "require-directory": "^2.1.1", 2962 | "require-main-filename": "^2.0.0", 2963 | "set-blocking": "^2.0.0", 2964 | "string-width": "^3.0.0", 2965 | "which-module": "^2.0.0", 2966 | "y18n": "^4.0.0", 2967 | "yargs-parser": "^13.1.2" 2968 | }, 2969 | "dependencies": { 2970 | "ansi-regex": { 2971 | "version": "4.1.0", 2972 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 2973 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 2974 | "dev": true 2975 | }, 2976 | "string-width": { 2977 | "version": "3.1.0", 2978 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 2979 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 2980 | "dev": true, 2981 | "requires": { 2982 | "emoji-regex": "^7.0.1", 2983 | "is-fullwidth-code-point": "^2.0.0", 2984 | "strip-ansi": "^5.1.0" 2985 | } 2986 | }, 2987 | "strip-ansi": { 2988 | "version": "5.2.0", 2989 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2990 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2991 | "dev": true, 2992 | "requires": { 2993 | "ansi-regex": "^4.1.0" 2994 | } 2995 | } 2996 | } 2997 | }, 2998 | "yargs-parser": { 2999 | "version": "13.1.2", 3000 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", 3001 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", 3002 | "dev": true, 3003 | "requires": { 3004 | "camelcase": "^5.0.0", 3005 | "decamelize": "^1.2.0" 3006 | } 3007 | }, 3008 | "yargs-unparser": { 3009 | "version": "1.6.0", 3010 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", 3011 | "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", 3012 | "dev": true, 3013 | "requires": { 3014 | "flat": "^4.1.0", 3015 | "lodash": "^4.17.15", 3016 | "yargs": "^13.3.0" 3017 | } 3018 | } 3019 | } 3020 | } 3021 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@cosmostation/cosmosjs", 3 | "version": "0.11.2", 4 | "description": "A JavasSript Open Source Library for Cosmos(ATOM).", 5 | "main": "src/index.js", 6 | "type": "module", 7 | "engines": { 8 | "node": ">=14.0.0" 9 | }, 10 | "keywords": [ 11 | "cosmosjs", 12 | "cosmos", 13 | "tendermint", 14 | "javascript", 15 | "atom", 16 | "cosmostation", 17 | "iris", 18 | "iov", 19 | "starname", 20 | "secret", 21 | "scrt", 22 | "akash", 23 | "akt", 24 | "stargate", 25 | "cryptoorg", 26 | "juno" 27 | ], 28 | "scripts": { 29 | "start": "node --es-module-specifier-resolution=node example/cosmoshub.js", 30 | "test": "mocha --es-module-specifier-resolution=node" 31 | }, 32 | "author": "Cosmostation", 33 | "license": "MIT", 34 | "dependencies": { 35 | "ansi-regex": "^5.0.1", 36 | "bech32": "^1.1.3", 37 | "bip32": "^2.0.5", 38 | "bip39": "^2.5.0", 39 | "bitcoinjs-lib": "^4.0.2", 40 | "google-protobuf": "^3.14.0", 41 | "lodash": "^4.17.21", 42 | "node-fetch": "^3.1.1", 43 | "protobufjs": "^6.10.2", 44 | "request": "^2.88.2", 45 | "secp256k1": "^3.8.0" 46 | }, 47 | "devDependencies": { 48 | "@babel/core": "^7.14.0", 49 | "@babel/helper-module-transforms": "^7.14.0", 50 | "@babel/types": "^7.14.1", 51 | "babelify": "^10.0.0", 52 | "browser-resolve": "^2.0.0", 53 | "esmify": "^2.1.1", 54 | "mocha": "^7.2.0" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/google/protobuf/any.proto: -------------------------------------------------------------------------------- 1 | // Protocol Buffers - Google's data interchange format 2 | // Copyright 2008 Google Inc. All rights reserved. 3 | // https://developers.google.com/protocol-buffers/ 4 | // 5 | // Redistribution and use in source and binary forms, with or without 6 | // modification, are permitted provided that the following conditions are 7 | // met: 8 | // 9 | // * Redistributions of source code must retain the above copyright 10 | // notice, this list of conditions and the following disclaimer. 11 | // * Redistributions in binary form must reproduce the above 12 | // copyright notice, this list of conditions and the following disclaimer 13 | // in the documentation and/or other materials provided with the 14 | // distribution. 15 | // * Neither the name of Google Inc. nor the names of its 16 | // contributors may be used to endorse or promote products derived from 17 | // this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | syntax = "proto3"; 32 | 33 | package google.protobuf; 34 | 35 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 36 | option go_package = "google.golang.org/protobuf/types/known/anypb"; 37 | option java_package = "com.google.protobuf"; 38 | option java_outer_classname = "AnyProto"; 39 | option java_multiple_files = true; 40 | option objc_class_prefix = "GPB"; 41 | 42 | // `Any` contains an arbitrary serialized protocol buffer message along with a 43 | // URL that describes the type of the serialized message. 44 | // 45 | // Protobuf library provides support to pack/unpack Any values in the form 46 | // of utility functions or additional generated methods of the Any type. 47 | // 48 | // Example 1: Pack and unpack a message in C++. 49 | // 50 | // Foo foo = ...; 51 | // Any any; 52 | // any.PackFrom(foo); 53 | // ... 54 | // if (any.UnpackTo(&foo)) { 55 | // ... 56 | // } 57 | // 58 | // Example 2: Pack and unpack a message in Java. 59 | // 60 | // Foo foo = ...; 61 | // Any any = Any.pack(foo); 62 | // ... 63 | // if (any.is(Foo.class)) { 64 | // foo = any.unpack(Foo.class); 65 | // } 66 | // 67 | // Example 3: Pack and unpack a message in Python. 68 | // 69 | // foo = Foo(...) 70 | // any = Any() 71 | // any.Pack(foo) 72 | // ... 73 | // if any.Is(Foo.DESCRIPTOR): 74 | // any.Unpack(foo) 75 | // ... 76 | // 77 | // Example 4: Pack and unpack a message in Go 78 | // 79 | // foo := &pb.Foo{...} 80 | // any, err := anypb.New(foo) 81 | // if err != nil { 82 | // ... 83 | // } 84 | // ... 85 | // foo := &pb.Foo{} 86 | // if err := any.UnmarshalTo(foo); err != nil { 87 | // ... 88 | // } 89 | // 90 | // The pack methods provided by protobuf library will by default use 91 | // 'type.googleapis.com/full.type.name' as the type URL and the unpack 92 | // methods only use the fully qualified type name after the last '/' 93 | // in the type URL, for example "foo.bar.com/x/y.z" will yield type 94 | // name "y.z". 95 | // 96 | // 97 | // JSON 98 | // ==== 99 | // The JSON representation of an `Any` value uses the regular 100 | // representation of the deserialized, embedded message, with an 101 | // additional field `@type` which contains the type URL. Example: 102 | // 103 | // package google.profile; 104 | // message Person { 105 | // string first_name = 1; 106 | // string last_name = 2; 107 | // } 108 | // 109 | // { 110 | // "@type": "type.googleapis.com/google.profile.Person", 111 | // "firstName": , 112 | // "lastName": 113 | // } 114 | // 115 | // If the embedded message type is well-known and has a custom JSON 116 | // representation, that representation will be embedded adding a field 117 | // `value` which holds the custom JSON in addition to the `@type` 118 | // field. Example (for message [google.protobuf.Duration][]): 119 | // 120 | // { 121 | // "@type": "type.googleapis.com/google.protobuf.Duration", 122 | // "value": "1.212s" 123 | // } 124 | // 125 | message Any { 126 | // A URL/resource name that uniquely identifies the type of the serialized 127 | // protocol buffer message. This string must contain at least 128 | // one "/" character. The last segment of the URL's path must represent 129 | // the fully qualified name of the type (as in 130 | // `path/google.protobuf.Duration`). The name should be in a canonical form 131 | // (e.g., leading "." is not accepted). 132 | // 133 | // In practice, teams usually precompile into the binary all types that they 134 | // expect it to use in the context of Any. However, for URLs which use the 135 | // scheme `http`, `https`, or no scheme, one can optionally set up a type 136 | // server that maps type URLs to message definitions as follows: 137 | // 138 | // * If no scheme is provided, `https` is assumed. 139 | // * An HTTP GET on the URL must yield a [google.protobuf.Type][] 140 | // value in binary format, or produce an error. 141 | // * Applications are allowed to cache lookup results based on the 142 | // URL, or have them precompiled into a binary to avoid any 143 | // lookup. Therefore, binary compatibility needs to be preserved 144 | // on changes to types. (Use versioned type names to manage 145 | // breaking changes.) 146 | // 147 | // Note: this functionality is not currently available in the official 148 | // protobuf release, and it is not used for type URLs beginning with 149 | // type.googleapis.com. 150 | // 151 | // Schemes other than `http`, `https` (or the empty scheme) might be 152 | // used with implementation specific semantics. 153 | // 154 | string type_url = 1; 155 | 156 | // Must be a valid serialized protocol buffer of the above specified type. 157 | bytes value = 2; 158 | } -------------------------------------------------------------------------------- /src/google/protobuf/any_pb.js: -------------------------------------------------------------------------------- 1 | // source: any.proto 2 | /** 3 | * @fileoverview 4 | * @enhanceable 5 | * @suppress {messageConventions} JS Compiler reports an error if a variable or 6 | * field starts with 'MSG_' and isn't a translatable message. 7 | * @public 8 | */ 9 | // GENERATED CODE -- DO NOT EDIT! 10 | /* eslint-disable */ 11 | // @ts-nocheck 12 | 13 | var jspb = require('google-protobuf'); 14 | var goog = jspb; 15 | var global = Function('return this')(); 16 | 17 | goog.exportSymbol('proto.google.protobuf.Any', null, global); 18 | /** 19 | * Generated by JsPbCodeGenerator. 20 | * @param {Array=} opt_data Optional initial data array, typically from a 21 | * server response, or constructed directly in Javascript. The array is used 22 | * in place and becomes part of the constructed object. It is not cloned. 23 | * If no data is provided, the constructed object will be empty, but still 24 | * valid. 25 | * @extends {jspb.Message} 26 | * @constructor 27 | */ 28 | proto.google.protobuf.Any = function(opt_data) { 29 | jspb.Message.initialize(this, opt_data, 0, -1, null, null); 30 | }; 31 | goog.inherits(proto.google.protobuf.Any, jspb.Message); 32 | if (goog.DEBUG && !COMPILED) { 33 | /** 34 | * @public 35 | * @override 36 | */ 37 | proto.google.protobuf.Any.displayName = 'proto.google.protobuf.Any'; 38 | } 39 | 40 | 41 | 42 | if (jspb.Message.GENERATE_TO_OBJECT) { 43 | /** 44 | * Creates an object representation of this proto. 45 | * Field names that are reserved in JavaScript and will be renamed to pb_name. 46 | * Optional fields that are not set will be set to undefined. 47 | * To access a reserved field use, foo.pb_, eg, foo.pb_default. 48 | * For the list of reserved names please see: 49 | * net/proto2/compiler/js/internal/generator.cc#kKeyword. 50 | * @param {boolean=} opt_includeInstance Deprecated. whether to include the 51 | * JSPB instance for transitional soy proto support: 52 | * http://goto/soy-param-migration 53 | * @return {!Object} 54 | */ 55 | proto.google.protobuf.Any.prototype.toObject = function(opt_includeInstance) { 56 | return proto.google.protobuf.Any.toObject(opt_includeInstance, this); 57 | }; 58 | 59 | 60 | /** 61 | * Static version of the {@see toObject} method. 62 | * @param {boolean|undefined} includeInstance Deprecated. Whether to include 63 | * the JSPB instance for transitional soy proto support: 64 | * http://goto/soy-param-migration 65 | * @param {!proto.google.protobuf.Any} msg The msg instance to transform. 66 | * @return {!Object} 67 | * @suppress {unusedLocalVariables} f is only used for nested messages 68 | */ 69 | proto.google.protobuf.Any.toObject = function(includeInstance, msg) { 70 | var f, obj = { 71 | typeUrl: jspb.Message.getFieldWithDefault(msg, 1, ""), 72 | value: msg.getValue_asB64() 73 | }; 74 | 75 | if (includeInstance) { 76 | obj.$jspbMessageInstance = msg; 77 | } 78 | return obj; 79 | }; 80 | } 81 | 82 | 83 | /** 84 | * Deserializes binary data (in protobuf wire format). 85 | * @param {jspb.ByteSource} bytes The bytes to deserialize. 86 | * @return {!proto.google.protobuf.Any} 87 | */ 88 | proto.google.protobuf.Any.deserializeBinary = function(bytes) { 89 | var reader = new jspb.BinaryReader(bytes); 90 | var msg = new proto.google.protobuf.Any; 91 | return proto.google.protobuf.Any.deserializeBinaryFromReader(msg, reader); 92 | }; 93 | 94 | 95 | /** 96 | * Deserializes binary data (in protobuf wire format) from the 97 | * given reader into the given message object. 98 | * @param {!proto.google.protobuf.Any} msg The message object to deserialize into. 99 | * @param {!jspb.BinaryReader} reader The BinaryReader to use. 100 | * @return {!proto.google.protobuf.Any} 101 | */ 102 | proto.google.protobuf.Any.deserializeBinaryFromReader = function(msg, reader) { 103 | while (reader.nextField()) { 104 | if (reader.isEndGroup()) { 105 | break; 106 | } 107 | var field = reader.getFieldNumber(); 108 | switch (field) { 109 | case 1: 110 | var value = /** @type {string} */ (reader.readString()); 111 | msg.setTypeUrl(value); 112 | break; 113 | case 2: 114 | var value = /** @type {!Uint8Array} */ (reader.readBytes()); 115 | msg.setValue(value); 116 | break; 117 | default: 118 | reader.skipField(); 119 | break; 120 | } 121 | } 122 | return msg; 123 | }; 124 | 125 | 126 | /** 127 | * Serializes the message to binary data (in protobuf wire format). 128 | * @return {!Uint8Array} 129 | */ 130 | proto.google.protobuf.Any.prototype.serializeBinary = function() { 131 | var writer = new jspb.BinaryWriter(); 132 | proto.google.protobuf.Any.serializeBinaryToWriter(this, writer); 133 | return writer.getResultBuffer(); 134 | }; 135 | 136 | 137 | /** 138 | * Serializes the given message to binary data (in protobuf wire 139 | * format), writing to the given BinaryWriter. 140 | * @param {!proto.google.protobuf.Any} message 141 | * @param {!jspb.BinaryWriter} writer 142 | * @suppress {unusedLocalVariables} f is only used for nested messages 143 | */ 144 | proto.google.protobuf.Any.serializeBinaryToWriter = function(message, writer) { 145 | var f = undefined; 146 | f = message.getTypeUrl(); 147 | if (f.length > 0) { 148 | writer.writeString( 149 | 1, 150 | f 151 | ); 152 | } 153 | f = message.getValue_asU8(); 154 | if (f.length > 0) { 155 | writer.writeBytes( 156 | 2, 157 | f 158 | ); 159 | } 160 | }; 161 | 162 | 163 | /** 164 | * optional string type_url = 1; 165 | * @return {string} 166 | */ 167 | proto.google.protobuf.Any.prototype.getTypeUrl = function() { 168 | return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); 169 | }; 170 | 171 | 172 | /** 173 | * @param {string} value 174 | * @return {!proto.google.protobuf.Any} returns this 175 | */ 176 | proto.google.protobuf.Any.prototype.setTypeUrl = function(value) { 177 | return jspb.Message.setProto3StringField(this, 1, value); 178 | }; 179 | 180 | 181 | /** 182 | * optional bytes value = 2; 183 | * @return {!(string|Uint8Array)} 184 | */ 185 | proto.google.protobuf.Any.prototype.getValue = function() { 186 | return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); 187 | }; 188 | 189 | 190 | /** 191 | * optional bytes value = 2; 192 | * This is a type-conversion wrapper around `getValue()` 193 | * @return {string} 194 | */ 195 | proto.google.protobuf.Any.prototype.getValue_asB64 = function() { 196 | return /** @type {string} */ (jspb.Message.bytesAsB64( 197 | this.getValue())); 198 | }; 199 | 200 | 201 | /** 202 | * optional bytes value = 2; 203 | * Note that Uint8Array is not supported on all browsers. 204 | * @see http://caniuse.com/Uint8Array 205 | * This is a type-conversion wrapper around `getValue()` 206 | * @return {!Uint8Array} 207 | */ 208 | proto.google.protobuf.Any.prototype.getValue_asU8 = function() { 209 | return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( 210 | this.getValue())); 211 | }; 212 | 213 | 214 | /** 215 | * @param {!(string|Uint8Array)} value 216 | * @return {!proto.google.protobuf.Any} returns this 217 | */ 218 | proto.google.protobuf.Any.prototype.setValue = function(value) { 219 | return jspb.Message.setProto3BytesField(this, 2, value); 220 | }; 221 | 222 | 223 | goog.object.extend(exports, proto.google.protobuf); 224 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import * as bech32 from "bech32"; 2 | import * as bip32 from "bip32"; 3 | import * as bip39 from "bip39"; 4 | 5 | import bitcoinjs from "bitcoinjs-lib"; 6 | import crypto from "crypto"; 7 | /* 8 | Developed / Developing by Cosmostation 9 | [WARNING] CosmosJS is under ACTIVE DEVELOPMENT and should be treated as alpha version. We will remove this warning when we have a release that is stable, secure, and propoerly tested. 10 | */ 11 | import fetch from 'node-fetch'; 12 | import message from "./messages/proto"; 13 | import request from "request"; 14 | import secp256k1 from "secp256k1"; 15 | 16 | export class Cosmos { 17 | constructor(url, chainId) { 18 | this.url = url; 19 | this.chainId = chainId; 20 | this.path = "m/44'/118'/0'/0/0"; 21 | this.bech32MainPrefix = "cosmos"; 22 | } 23 | 24 | // strength(128): 12 words, strength(256): 24 words 25 | getRandomMnemonic(strength = 256) { 26 | return bip39.generateMnemonic(strength); 27 | } 28 | 29 | setBech32MainPrefix(prefix) { 30 | this.bech32MainPrefix = prefix; 31 | if (!this.bech32MainPrefix) throw new Error("bech32MainPrefix object was not set or invalid"); 32 | } 33 | 34 | setPath(value) { 35 | this.path = value; 36 | if (!this.path) throw new Error("path object was not set or invalid"); 37 | } 38 | 39 | getAddress(mnemonic, checkSum = true) { 40 | if (typeof mnemonic !== "string") { 41 | throw new Error("mnemonic expects a string") 42 | } 43 | if (checkSum) { 44 | if (!bip39.validateMnemonic(mnemonic)) throw new Error("mnemonic phrases have invalid checksums"); 45 | } 46 | const seed = bip39.mnemonicToSeed(mnemonic); 47 | const node = bip32.fromSeed(seed) 48 | const child = node.derivePath(this.path) 49 | const words = bech32.toWords(child.identifier); 50 | return bech32.encode(this.bech32MainPrefix, words); 51 | } 52 | 53 | changeAddress(prefix, address) { 54 | try { 55 | const decode = bech32.decode(address); 56 | return bech32.encode(prefix, decode.words); 57 | } catch (e) { 58 | throw new Error("cannot change address") 59 | return ""; 60 | } 61 | } 62 | 63 | getECPairPriv(mnemonic) { 64 | if (typeof mnemonic !== "string") { 65 | throw new Error("mnemonic expects a string") 66 | } 67 | const seed = bip39.mnemonicToSeed(mnemonic); 68 | const node = bip32.fromSeed(seed); 69 | const child = node.derivePath(this.path); 70 | return child.privateKey; 71 | } 72 | 73 | getPubKey(privKey) { 74 | const pubKeyByte = secp256k1.publicKeyCreate(privKey); 75 | return pubKeyByte; 76 | } 77 | 78 | getPubKeyAny(privKey) { 79 | const pubKeyByte = secp256k1.publicKeyCreate(privKey); 80 | var buf1 = new Buffer.from([10]); 81 | var buf2 = new Buffer.from([pubKeyByte.length]); 82 | var buf3 = new Buffer.from(pubKeyByte); 83 | const pubKey = Buffer.concat([buf1, buf2, buf3]); 84 | const pubKeyAny = new message.google.protobuf.Any({ 85 | type_url: "/cosmos.crypto.secp256k1.PubKey", 86 | value: pubKey 87 | }); 88 | return pubKeyAny; 89 | } 90 | 91 | wasmQuery(contractAddress, query) { 92 | let smartQueryApi = "/wasm/contract/" + contractAddress + "/smart/" + toHex(query) + "?encoding=UTF-8"; 93 | return fetch(this.url + smartQueryApi).then(response => response.json()) 94 | } 95 | 96 | getAccounts(address) { 97 | let accountsApi = "/cosmos/auth/v1beta1/accounts/"; 98 | return fetch(this.url + accountsApi + address).then(response => response.json()) 99 | } 100 | 101 | sign(txBody, authInfo, accountNumber, privKey) { 102 | const bodyBytes = message.cosmos.tx.v1beta1.TxBody.encode(txBody).finish(); 103 | const authInfoBytes = message.cosmos.tx.v1beta1.AuthInfo.encode(authInfo).finish(); 104 | const signDoc = new message.cosmos.tx.v1beta1.SignDoc({ 105 | body_bytes: bodyBytes, 106 | auth_info_bytes: authInfoBytes, 107 | chain_id: this.chainId, 108 | account_number: Number(accountNumber) 109 | }); 110 | let signMessage = message.cosmos.tx.v1beta1.SignDoc.encode(signDoc).finish(); 111 | const hash = crypto.createHash("sha256").update(signMessage).digest(); 112 | const sig = secp256k1.sign(hash, Buffer.from(privKey)); 113 | const txRaw = new message.cosmos.tx.v1beta1.TxRaw({ 114 | body_bytes: bodyBytes, 115 | auth_info_bytes: authInfoBytes, 116 | signatures: [sig.signature], 117 | }); 118 | const txBytes = message.cosmos.tx.v1beta1.TxRaw.encode(txRaw).finish(); 119 | const txBytesBase64 = Buffer.from(txBytes, 'binary').toString('base64'); 120 | return txBytes; 121 | } 122 | 123 | // "BROADCAST_MODE_UNSPECIFIED", "BROADCAST_MODE_BLOCK", "BROADCAST_MODE_SYNC", "BROADCAST_MODE_ASYNC" 124 | broadcast(signedTxBytes, broadCastMode = "BROADCAST_MODE_SYNC") { 125 | const txBytesBase64 = Buffer.from(signedTxBytes, 'binary').toString('base64'); 126 | 127 | var options = { 128 | method: 'POST', 129 | url: this.url + '/cosmos/tx/v1beta1/txs', 130 | headers: 131 | { 'Content-Type': 'application/json' }, 132 | body: { tx_bytes: txBytesBase64, mode: broadCastMode }, 133 | json: true 134 | }; 135 | 136 | return new Promise(function(resolve, reject){ 137 | request(options, function (error, response, body) { 138 | if (error) return reject(error); 139 | try { 140 | resolve(body); 141 | } catch(e) { 142 | reject(e); 143 | } 144 | }); 145 | }); 146 | } 147 | } 148 | 149 | function toHex(str,hex){ 150 | try { 151 | hex = unescape(encodeURIComponent(str)).split('').map(function(v) { 152 | return v.charCodeAt(0).toString(16) 153 | }).join('') 154 | } catch(e) { 155 | hex = str 156 | console.log('invalid text input: ' + str) 157 | } 158 | return hex 159 | } 160 | -------------------------------------------------------------------------------- /src/messages/.npmignore: -------------------------------------------------------------------------------- 1 | # empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm -------------------------------------------------------------------------------- /src/messages/.openapi-generator-ignore: -------------------------------------------------------------------------------- 1 | # OpenAPI Generator Ignore 2 | # Generated by openapi-generator https://github.com/openapitools/openapi-generator 3 | 4 | # Use this file to prevent files from being overwritten by the generator. 5 | # The patterns follow closely to .gitignore or .dockerignore. 6 | 7 | # As an example, the C# client generator defines ApiClient.cs. 8 | # You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: 9 | #ApiClient.cs 10 | 11 | # You can match any string of characters against a directory, file or extension with a single asterisk (*): 12 | #foo/*/qux 13 | # The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux 14 | 15 | # You can recursively match patterns against a directory, file or extension with a double asterisk (**): 16 | #foo/**/qux 17 | # This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux 18 | 19 | # You can also negate patterns with an exclamation (!). 20 | # For example, you can ignore all files in a docs folder with the file extension .md: 21 | #docs/*.md 22 | # Then explicitly reverse the ignore rule for a single file: 23 | #!docs/README.md 24 | -------------------------------------------------------------------------------- /src/messages/.openapi-generator/FILES: -------------------------------------------------------------------------------- 1 | .gitignore 2 | .npmignore 3 | .openapi-generator-ignore 4 | api.ts 5 | base.ts 6 | configuration.ts 7 | git_push.sh 8 | index.ts 9 | -------------------------------------------------------------------------------- /src/messages/.openapi-generator/VERSION: -------------------------------------------------------------------------------- 1 | 5.0.1-SNAPSHOT -------------------------------------------------------------------------------- /test/test.spec.js: -------------------------------------------------------------------------------- 1 | import assert from "assert"; 2 | import crypto from "crypto"; 3 | import secp256k1 from "secp256k1"; 4 | import { Cosmos } from "../src/index.js"; 5 | import message from "../src/messages/proto"; 6 | 7 | const mnemonic = "swear buyer security impulse public stereo peasant correct cross tornado bid discover anchor float venture deal patch property cool wreck eight dwarf december surface"; 8 | 9 | describe("cosmoshub", function() { 10 | const chainId = "cosmoshub-4"; 11 | const cosmos = new Cosmos("https://api.cosmos.network", chainId); 12 | describe("getAddress", function () { 13 | 14 | it("gets a cosmos address from mnemonic", function () { 15 | const address = cosmos.getAddress(mnemonic); 16 | assert.strictEqual(address, "cosmos1fnk3lxlks7tdg6x55ynv6vggtnd73ycqsq89sl"); 17 | }); 18 | }); 19 | 20 | describe("sign", function () { 21 | it("creates a deterministic signature", function () { 22 | const address = cosmos.getAddress(mnemonic); 23 | const privKey = cosmos.getECPairPriv(mnemonic); 24 | const pubKeyAny = cosmos.getPubKeyAny(privKey); 25 | 26 | const msgSend = new message.cosmos.bank.v1beta1.MsgSend({ 27 | from_address: address, 28 | to_address: "cosmos1jf874x5vr6wkza6ahvamck4sy4w76aq4w9c4s5", 29 | amount: [{ denom: "uatom", amount: String(193285) }] // 6 decimal places (1000000 uatom = 1 ATOM) 30 | }); 31 | 32 | const msgSendAny = new message.google.protobuf.Any({ 33 | type_url: "/cosmos.bank.v1beta1.MsgSend", 34 | value: message.cosmos.bank.v1beta1.MsgSend.encode(msgSend).finish() 35 | }); 36 | 37 | const txBody = new message.cosmos.tx.v1beta1.TxBody({ messages: [msgSendAny], memo: "" }); 38 | 39 | // --------------------------------- (2)authInfo --------------------------------- 40 | const signerInfo = new message.cosmos.tx.v1beta1.SignerInfo({ 41 | public_key: pubKeyAny, 42 | mode_info: { single: { mode: message.cosmos.tx.signing.v1beta1.SignMode.SIGN_MODE_DIRECT } }, 43 | sequence: 5 44 | }); 45 | 46 | const feeValue = new message.cosmos.tx.v1beta1.Fee({ 47 | amount: [{ denom: "uatom", amount: String(5000) }], 48 | gas_limit: 200000 49 | }); 50 | 51 | const authInfo = new message.cosmos.tx.v1beta1.AuthInfo({ signer_infos: [signerInfo], fee: feeValue }); 52 | 53 | // sign 54 | const bodyBytes = message.cosmos.tx.v1beta1.TxBody.encode(txBody).finish(); 55 | const authInfoBytes = message.cosmos.tx.v1beta1.AuthInfo.encode(authInfo).finish(); 56 | const signDoc = new message.cosmos.tx.v1beta1.SignDoc({ 57 | body_bytes: bodyBytes, 58 | auth_info_bytes: authInfoBytes, 59 | chain_id: chainId, 60 | account_number: 45 61 | }); 62 | 63 | let signMessage = message.cosmos.tx.v1beta1.SignDoc.encode(signDoc).finish(); 64 | const hash = crypto.createHash("sha256").update(signMessage).digest(); 65 | const sig = secp256k1.sign(hash, Buffer.from(privKey)); 66 | var signatureBase64 = Buffer.from(sig.signature, 'binary').toString('base64'); 67 | 68 | assert.strictEqual(signatureBase64, "7mOp5XNuOY1VwbgkgKCuTMPN4g0uxvHeiJXP1FIwsOhny/FUVg7Qm51klO7i9U39RBCtSMVCmS9uaO0jKMJ2kg=="); 69 | }); 70 | }); 71 | }); 72 | 73 | --------------------------------------------------------------------------------