├── .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 | [](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 |
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 | [](https://www.npmjs.com/package/@cosmostation/cosmosjs)
23 | [](https://www.npmjs.com/package/@cosmostation/cosmosjs)
24 | [](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 |
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 |
--------------------------------------------------------------------------------