docs: fixes (#484)

* docs: fixes

* multisig
This commit is contained in:
Federico Kunze Küllmer 2021-08-23 20:39:10 -04:00 committed by GitHub
parent 49b5ecfc76
commit 0d888f3033
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 431 additions and 139 deletions

View File

@ -35,7 +35,7 @@ There are 3 main types of HRP for the `Addresses`/`PubKeys` available by default
| | Address bech32 Prefix | Pubkey bech32 Prefix | Curve | Address byte length | Pubkey byte length | | | Address bech32 Prefix | Pubkey bech32 Prefix | Curve | Address byte length | Pubkey byte length |
|--------------------|-----------------------|----------------------|-----------------|---------------------|--------------------| |--------------------|-----------------------|----------------------|-----------------|---------------------|--------------------|
| Accounts | `ethm` | `ethpub` | `eth_secp256k1` | `20` | `33` (compressed) | | Accounts | `ethm` | `ethmpub` | `eth_secp256k1` | `20` | `33` (compressed) |
| Validator Operator | `ethmvaloper` | `ethmvaloperpub` | `eth_secp256k1` | `20` | `33` (compressed) | | Validator Operator | `ethmvaloper` | `ethmvaloperpub` | `eth_secp256k1` | `20` | `33` (compressed) |
| Consensus Nodes | `ethmvalcons` | `ethmvalconspub` | `ed25519` | `20` | `32` | | Consensus Nodes | `ethmvalcons` | `ethmvalconspub` | `ed25519` | `20` | `32` |
@ -47,30 +47,41 @@ The Bech32 format is the default format for Cosmos-SDK queries and transactions
clients. The hex format on the other hand, is the Ethereum `common.Address` representation of a clients. The hex format on the other hand, is the Ethereum `common.Address` representation of a
Cosmos `sdk.AccAddress`. Cosmos `sdk.AccAddress`.
- **Address (Bech32)**: `ethm14au322k9munkmx5wrchz9q30juf5wjgz2cfqku` - **Address (Bech32)**: `ethm1j800cll9vq7l4rxfke2u74mjgkdlzrr0r5mu97`
- **Address ([EIP55](https://eips.ethereum.org/EIPS/eip-55) Hex)**: `0xAF79152AC5dF276D9A8e1E2E22822f9713474902` - **Address ([EIP55](https://eips.ethereum.org/EIPS/eip-55) Hex)**: `0x91defC7fE5603DFA8CC9B655cF5772459BF10c6f`
- **Compressed Public Key**: `{"@type":"/ethermint.crypto.v1beta1.ethsecp256k1.PubKey","key":"ApNNebT58zlZxO2yjHiRTJ7a7ufjIzeq5HhLrbmtg9Y/"}` - **Compressed Public Key**: `{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"Aq9WtHGKtvX523b2ptvimGVfp3hZ1GDxVdINYWBM9+Gy"}`
### Address conversion ### Address conversion
The `ethermintd debug addr <address>` can be used to convert an address between hex and bech32 formats. For example: The `ethermintd debug addr <address>` can be used to convert an address between hex and bech32 formats. For example:
:::: tabs
::: tab Bech32
```bash ```bash
ethermintd debug addr ethm10jmp6sgh4cc6zt3e8gw05wavvejgr5pw2unfju ethermintd debug addr ethm10jmp6sgh4cc6zt3e8gw05wavvejgr5pwtu750w
Address bytes: [124 182 29 65 23 174 49 161 46 57 58 28 250 59 172 102 100 129 208 46] Address bytes: [124 182 29 65 23 174 49 161 46 57 58 28 250 59 172 102 100 129 208 46]
Address (hex): 7CB61D4117AE31A12E393A1CFA3BAC666481D02E Address (hex): 7CB61D4117AE31A12E393A1CFA3BAC666481D02E
Address (EIP-55): 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E Address (EIP-55): 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E
Bech32 Acc: ethm10jmp6sgh4cc6zt3e8gw05wavvejgr5pw2unfju Bech32 Acc: ethm10jmp6sgh4cc6zt3e8gw05wavvejgr5pwtu750w
Bech32 Val: ethvaloper10jmp6sgh4cc6zt3e8gw05wavvejgr5pw5wdauz Bech32 Val: ethmvaloper10jmp6sgh4cc6zt3e8gw05wavvejgr5pwyv5chn
```
:::
::: tab Hex
```bash
ethermintd debug addr 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E ethermintd debug addr 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E
Address bytes: [124 182 29 65 23 174 49 161 46 57 58 28 250 59 172 102 100 129 208 46] Address bytes: [124 182 29 65 23 174 49 161 46 57 58 28 250 59 172 102 100 129 208 46]
Address (hex): 7CB61D4117AE31A12E393A1CFA3BAC666481D02E Address (hex): 7CB61D4117AE31A12E393A1CFA3BAC666481D02E
Address (EIP-55): 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E Address (EIP-55): 0x7cB61D4117AE31a12E393a1Cfa3BaC666481D02E
Bech32 Acc: ethm10jmp6sgh4cc6zt3e8gw05wavvejgr5pw2unfju Bech32 Acc: ethm10jmp6sgh4cc6zt3e8gw05wavvejgr5pwtu750w
Bech32 Val: ethvaloper10jmp6sgh4cc6zt3e8gw05wavvejgr5pw5wdauz Bech32 Val: ethmvaloper10jmp6sgh4cc6zt3e8gw05wavvejgr5pwyv5chn
``` ```
:::
::::
### Key output ### Key output
::: tip ::: tip
@ -80,6 +91,9 @@ The Cosmos SDK Keyring output (i.e `ethermintd keys`) only supports addresses an
We can use the `keys show` command of `ethermintd` with the flag `--bech <type> (acc|val|cons)` to We can use the `keys show` command of `ethermintd` with the flag `--bech <type> (acc|val|cons)` to
obtain the addresses and keys as mentioned above, obtain the addresses and keys as mentioned above,
:::: tabs
::: tab Account
```bash ```bash
ethermintd keys show mykey --bech acc ethermintd keys show mykey --bech acc
- name: mykey - name: mykey
@ -87,22 +101,35 @@ ethermintd keys show mykey --bech acc
address: ethm1qsklxwt77qrxur494uvw07zjynu03dq9alwh37 address: ethm1qsklxwt77qrxur494uvw07zjynu03dq9alwh37
pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A8nbJ3eW9oAb2RNZoS8L71jFMfjk6zVa1UISYgKK9HPm"}' pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A8nbJ3eW9oAb2RNZoS8L71jFMfjk6zVa1UISYgKK9HPm"}'
mnemonic: "" mnemonic: ""
```
:::
::: tab Validator
```bash
ethermintd keys show test --bech val ethermintd keys show test --bech val
- name: mykey - name: mykey
type: local type: local
address: ethvaloper1qsklxwt77qrxur494uvw07zjynu03dq9rdsrlq address: ethmvaloper1qsklxwt77qrxur494uvw07zjynu03dq9rdsrlq
pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A8nbJ3eW9oAb2RNZoS8L71jFMfjk6zVa1UISYgKK9HPm"}'
mnemonic: ""
ethermintd keys show test --bech cons
- name: mykey
type: local
address: ethvalcons1qsklxwt77qrxur494uvw07zjynu03dq9h7rlnp
pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A8nbJ3eW9oAb2RNZoS8L71jFMfjk6zVa1UISYgKK9HPm"}' pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A8nbJ3eW9oAb2RNZoS8L71jFMfjk6zVa1UISYgKK9HPm"}'
mnemonic: "" mnemonic: ""
``` ```
:::
::: tab Consensus
```bash
ethermintd keys show test --bech cons
- name: mykey
type: local
address: ethmvalcons1qsklxwt77qrxur494uvw07zjynu03dq9h7rlnp
pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A8nbJ3eW9oAb2RNZoS8L71jFMfjk6zVa1UISYgKK9HPm"}'
mnemonic: ""
```
:::
::::
## Querying an Account ## Querying an Account
You can query an account address using the CLI, gRPC or You can query an account address using the CLI, gRPC or

View File

@ -36,13 +36,13 @@ different nodes.
### JSON-RPC Calls on Pending Transactions ### JSON-RPC Calls on Pending Transactions
- [`eth_getBalance`](./../basics/json_rpc.md#eth_getbalance) - [`eth_getBalance`](./../api/json-rpc/endpoints.md#eth_getbalance)
- [`eth_getTransactionCount`](./../basics/json_rpc.md#eth-gettransactioncount) - [`eth_getTransactionCount`](./../api/json-rpc/endpoints.md#eth-gettransactioncount)
- [`eth_getBlockTransactionCountByNumber`](./../basics/json_rpc.md#eth-getblocktransactioncountbynumber) - [`eth_getBlockTransactionCountByNumber`](./../api/json-rpc/endpoints.md#eth-getblocktransactioncountbynumber)
- [`eth_getBlockByNumber`](./../basics/json_rpc.md#eth-getblockbynumber) - [`eth_getBlockByNumber`](./../api/json-rpc/endpoints.md#eth-getblockbynumber)
- [`eth_getTransactionByHash`](./../basics/json_rpc.md#eth-gettransactionbyhash) - [`eth_getTransactionByHash`](./../api/json-rpc/endpoints.md#eth-gettransactionbyhash)
- [`eth_getTransactionByBlockNumberAndIndex`](./../basics/json_rpc.html#eth-gettransactionbyblockhashandindex) - [`eth_getTransactionByBlockNumberAndIndex`](./../api/json-rpc/endpoints.html#eth-gettransactionbyblockhashandindex)
- [`eth_sendTransaction`](./../basics/json_rpc.md#eth-sendtransaction) - [`eth_sendTransaction`](./../api/json-rpc/endpoints.md#eth-sendtransaction)
## Next {hide} ## Next {hide}

View File

@ -0,0 +1,271 @@
<!--
order: 3
-->
# Multisig
Learn how to generate, sign and broadcast a transaction using the keyring multisig {synopsis}
A **multisig account** is a Ethermint account with a special key that can require more than one signatures to sign transactions. This can be useful for increasing the security of the account or for requiring the consent of multiple parties to make transactions. Multisig accounts can be created by specifying:
- threshold number of signatures required
- the public keys involved in signing
To sign with a multisig account, the transaction must be signed individually by the different keys specified for the account. Then, the signatures will be combined into a multisignature which can be used to sign the transaction. If fewer than the threshold number of signatures needed are present, the resultant multisignature is considered invalid.
## Generate a Multisig key
```bash
ethermintd keys add --multisig=name1,name2,name3[...] --multisig-threshold=K new_key_name
```
`K` is the minimum number of private keys that must have signed the transactions that carry the public key's address as signer.
The `--multisig` flag must contain the name of public keys that will be combined into a public key that will be generated and stored as `new_key_name` in the local database. All names supplied through `--multisig` must already exist in the local database.
Unless the flag `--nosort` is set, the order in which the keys are supplied on the command line does not matter, i.e. the following commands generate two identical keys:
```bash
ethermintd keys add --multisig=p1,p2,p3 --multisig-threshold=2 multisig_address
ethermintd keys add --multisig=p2,p3,p1 --multisig-threshold=2 multisig_address
```
Multisig addresses can also be generated on-the-fly and printed through the which command:
```bash
ethermintd keys show --multisig-threshold=K name1 name2 name3 [...]
```
## Signing a transaction
### Step 1: Create the multisig key
Let's assume that you have `test1` and `test2` want to make a multisig account with `test3`.
First import the public keys of `test3` into your keyring.
```sh
ethermintd keys add \
test3 \
--pubkey=ethmpub1addwnpepqgcxazmq6wgt2j4rdfumsfwla0zfk8e5sws3p3zg5dkm9007hmfysxas0u2
```
Generate the multisig key with 2/3 threshold.
```sh
ethermintd keys add \
multi \
--multisig=test1,test2,test3 \
--multisig-threshold=2
```
You can see its address and details:
```sh
ethermintd keys show multi
- name: multi
type: multi
address: ethm1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m
pubkey: ethmpub1ytql0csgqgfzd666axrjzq3mxw59ys6yqcd3ydjvhgs0uzs6kdk5fp4t73gmkl8t6y02yfq7tvfzd666axrjzq3sd69kp5usk492x6nehqjal67ynv0nfqapzrzy3gmdk27la0kjfqfzd666axrjzq6utqt639ka2j3xkncgk65dup06t297ccljmxhvhu3rmk92u3afjuyz9dg9
mnemonic: ""
threshold: 0
pubkeys: []
```
Let's add 10 PHOTON to the multisig wallet:
```bash
ethermintd tx send \
test1 \
ethm1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m \
10000000000000000000aphoton \
--chain-id=ethermint_9000-1 \
--gas=auto \
--fees=1000000aphoton \
--broadcast-mode=block
```
### Step 2: Create the multisig transaction
We want to send 5 PHOTON from our multisig account to `ethm1rgjxswhuxhcrhmyxlval0qa70vxwvqn2e0srft`.
```bash
ethermintd tx send \
ethm1rgjxswhuxhcrhmyxlval0qa70vxwvqn2e0srft \
ethm157g6rn6t6k5rl0dl57zha2wx72t633axqyvvwq \
5000000000000000000aphoton \
--gas=200000 \
--fees=1000000aphoton \
--chain-id=ethermint_9000-1 \
--generate-only > unsignedTx.json
```
The file `unsignedTx.json` contains the unsigned transaction encoded in JSON.
```json
{
"body": {
"messages": [
{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "ethm1rgjxswhuxhcrhmyxlval0qa70vxwvqn2e0srft",
"to_address": "ethm157g6rn6t6k5rl0dl57zha2wx72t633axqyvvwq",
"amount": [
{
"denom": "aphoton",
"amount": "5000000000000000000"
}
]
}
],
"memo": "",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [],
"fee": {
"amount": [
{
"denom": "aphoton",
"amount": "1000000"
}
],
"gas_limit": "200000",
"payer": "",
"granter": ""
}
},
"signatures": []
}
```
### Step 3: Sign individually
Sign with `test1` and `test2` and create individual signatures.
```sh
ethermintd tx sign \
unsignedTx.json \
--multisig=ethm1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m \
--from=test1 \
--output-document=test1sig.json \
--chain-id=ethermint_9000-1
```
```sh
ethermintd tx sign \
unsignedTx.json \
--multisig=ethm1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m \
--from=test2 \
--output-document=test2sig.json \
--chain-id=ethermint_9000-1
```
### Step 4: Create multisignature
Combine signatures to sign transaction.
```sh
ethermintd tx multisign \
unsignedTx.json \
multi \
test1sig.json test2sig.json \
--output-document=signedTx.json \
--chain-id=ethermint_9000-1
```
The TX is now signed:
```json
{
"body": {
"messages": [
{
"@type": "/cosmos.bank.v1beta1.MsgSend",
"from_address": "ethm1rgjxswhuxhcrhmyxlval0qa70vxwvqn2e0srft",
"to_address": "ethm157g6rn6t6k5rl0dl57zha2wx72t633axqyvvwq",
"amount": [
{
"denom": "aphoton",
"amount": "5000000000000000000"
}
]
}
],
"memo": "",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [
{
"public_key": {
"@type": "/cosmos.crypto.multisig.LegacyAminoPubKey",
"threshold": 2,
"public_keys": [
{
"@type": "/cosmos.crypto.secp256k1.PubKey",
"key": "ApCzSG8k7Tr4aM6e4OJRExN7cNtvH21L9azbh+uRrvt4"
},
{
"@type": "/cosmos.crypto.secp256k1.PubKey",
"key": "Ah91erz8ChNanqLe9ea948rvAiXMCRlR5Ka7EE/c0xUK"
},
{
"@type": "/cosmos.crypto.secp256k1.PubKey",
"key": "A0OjtIUCFJM3AobJ9HJTWKP9RZV2+WPcwVjLgsAidrZ/"
}
]
},
"mode_info": {
"multi": {
"bitarray": {
"extra_bits_stored": 3,
"elems": "wA=="
},
"mode_infos": [
{
"single": {
"mode": "SIGN_MODE_LEGACY_AMINO_JSON"
}
},
{
"single": {
"mode": "SIGN_MODE_LEGACY_AMINO_JSON"
}
}
]
}
},
"sequence": "1"
}
],
"fee": {
"amount": [
{
"denom": "aphoton",
"amount": "1000000"
}
],
"gas_limit": "200000",
"payer": "",
"granter": ""
}
},
"signatures": [
"CkCEeIbeGc+I1ipZuhp/0KhVNnWAv2tTlvgo5x61lzk1KHmLPV38m/YFurrFt5cm5+fqIXrn+FlOjrJuzBhw8ogYCkCawm9mpXsBHk0CFsE5618fVnvScEkfrzW0c2jCcjqV8EPuj3ut74UWzZyQkwtJGxUWtro9EgnGsB7Di1Gzizst"
]
}
```
### Step 5: Broadcast transaction
```sh
ethermintd tx broadcast signedTx.json \
--chain-id=ethermint_9000-1 \
--broadcast-mode=block
```

View File

@ -16197,6 +16197,7 @@
"resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz", "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz",
"integrity": "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==", "integrity": "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==",
"requires": { "requires": {
"@babel/core": "^7.11.0",
"@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-compilation-targets": "^7.9.6",
"@babel/helper-module-imports": "^7.8.3", "@babel/helper-module-imports": "^7.8.3",
"@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3",
@ -16209,6 +16210,7 @@
"@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-preset-jsx": "^1.2.4", "@vue/babel-preset-jsx": "^1.2.4",
"babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-dynamic-import-node": "^2.3.3",
"core-js": "^3.6.5",
"core-js-compat": "^3.6.5", "core-js-compat": "^3.6.5",
"semver": "^6.1.0" "semver": "^6.1.0"
} }

View File

@ -28,7 +28,7 @@ Check that the binaries have been successfully installed:
ethermintd version ethermintd version
``` ```
## Docker ### Docker
You can build Ethermint using Docker by running: You can build Ethermint using Docker by running:
@ -43,18 +43,10 @@ successfully installed:
ethermintd version ethermintd version
``` ```
## Releases ### Releases
::: warning
Ethermint is under VERY ACTIVE DEVELOPMENT and should be treated as pre-alpha software. This means it is not meant to be run in production, its APIs are subject to change without warning and should not be relied upon, and it should not be used to hold any value. We will remove this warning when we have a release that is stable, secure, and properly tested.
:::
You can also download a specific release available on the Ethermint [repository](https://github.com/tharsis/ethermint/releases) or via command line: You can also download a specific release available on the Ethermint [repository](https://github.com/tharsis/ethermint/releases) or via command line:
```bash ```bash
go install github.com/tharsis/ethermint@latest go install github.com/tharsis/ethermint@latest
``` ```
## Next {hide}
Learn how to [run a node](./.run_node.md) {hide}

View File

@ -2,109 +2,109 @@
# yarn lockfile v1 # yarn lockfile v1
"@algolia/cache-browser-local-storage@4.10.3": "@algolia/cache-browser-local-storage@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.3.tgz#3bf81e0f66a4a1079a75914a987eb1ef432c7c68" resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.4.tgz#d6799fef0f107ac8e99a991a846b851ef7b0f8ad"
integrity sha512-TD1N7zg5lb56/PLjjD4bBl2eccEvVHhC7yfgFu2r9k5tf+gvbGxEZ3NhRZVKu2MObUIcEy2VR4LVLxOQu45Hlg== integrity sha512-oNCRQWI9cTYqNkyt+lelkqF5Z3sQNSJ2OT9tK5w0587IJNWqkzZzqipJyWHZv2sWyBbOboDrwZfZUcik3y0Qrg==
dependencies: dependencies:
"@algolia/cache-common" "4.10.3" "@algolia/cache-common" "4.10.4"
"@algolia/cache-common@4.10.3": "@algolia/cache-common@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.3.tgz#311b2b5ae06d55300f4230944c99bc39ad15847d" resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.4.tgz#c4976256bd1373e849caf310dd2bc3d7c413f03e"
integrity sha512-q13cPPUmtf8a2suBC4kySSr97EyulSXuxUkn7l1tZUCX/k1y5KNheMp8npBy8Kc8gPPmHpacxddRSfOncjiKFw== integrity sha512-R2Sbg8zvVMsxFDKWQYAZD1cQIEO6J00dZFjFfYDMTH+r/t2CCOZal2EFGnHl7FcgTIEUsSrNJUzLefL8NM8/iA==
"@algolia/cache-in-memory@4.10.3": "@algolia/cache-in-memory@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.3.tgz#697e4994538426272ea29ccf2b32b46ea4c48862" resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.4.tgz#eacadfee2ad8961c84d3fc9bf94db341a9f24504"
integrity sha512-JhPajhOXAjUP+TZrZTh6KJpF5VKTKyWK2aR1cD8NtrcVHwfGS7fTyfXfVm5BqBqkD9U0gVvufUt/mVyI80aZww== integrity sha512-ReQnhekfAvYFRu2odShmMxPM2OcRjSK1Atncam2HSu7Zt/51gtQp6WJMm7K+Mb3y+mT+ckBbOTamv/uTREcu2A==
dependencies: dependencies:
"@algolia/cache-common" "4.10.3" "@algolia/cache-common" "4.10.4"
"@algolia/client-account@4.10.3": "@algolia/client-account@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.3.tgz#f2cbefb1abce74c341115607d6af199df1b056ae" resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.4.tgz#b9730a2c067380419f5b23d0b77b6c4e2d081cca"
integrity sha512-S/IsJB4s+e1xYctdpW3nAbwrR2y3pjSo9X21fJGoiGeIpTRdvQG7nydgsLkhnhcgAdLnmqBapYyAqMGmlcyOkg== integrity sha512-Wtr91lXidDh5niXL0LPWxCluRdKA2CDpE2O/RKc9uMNDYCzCOkAxF2CcUuIpEW0IceO0D3d8n/TLuuKOIk2mww==
dependencies: dependencies:
"@algolia/client-common" "4.10.3" "@algolia/client-common" "4.10.4"
"@algolia/client-search" "4.10.3" "@algolia/client-search" "4.10.4"
"@algolia/transporter" "4.10.3" "@algolia/transporter" "4.10.4"
"@algolia/client-analytics@4.10.3": "@algolia/client-analytics@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.3.tgz#43d934ef8df0cf551c78e6b2e9f2452e7fb27d93" resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.4.tgz#830e17f87e878863294e438690c64e4c2520938f"
integrity sha512-vlHTbBqJktRgclh3v7bPQLfZvFIqY4erNFIZA5C7nisCj9oLeTgzefoUrr+R90+I+XjfoLxnmoeigS1Z1yg1vw== integrity sha512-CNOqWwq735i2kDh4DWk9Y4AN4mPIYOOec83xeWRnlSTfoL6DbLWVZTNBHi7Mi97h3prKVpr/Zm4f46RPrTYSsA==
dependencies: dependencies:
"@algolia/client-common" "4.10.3" "@algolia/client-common" "4.10.4"
"@algolia/client-search" "4.10.3" "@algolia/client-search" "4.10.4"
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/transporter" "4.10.3" "@algolia/transporter" "4.10.4"
"@algolia/client-common@4.10.3": "@algolia/client-common@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.3.tgz#c4257dd5c57c5c8ec4bd48a7b1897573e372d403" resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.4.tgz#a3b6874d4873249c10e4ca10e3a2a453b36df7ae"
integrity sha512-uFyP2Z14jG2hsFRbAoavna6oJf4NTXaSDAZgouZUZlHlBp5elM38sjNeA5HR9/D9J/GjwaB1SgB7iUiIWYBB4w== integrity sha512-O5GcD/7JW7eLlLPc2AUGUHmWP95JZthivpiOmwloAVR1DFvgKZL3+1e3/e1wederPA3ETvz80++aL+6yPRhb8w==
dependencies: dependencies:
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/transporter" "4.10.3" "@algolia/transporter" "4.10.4"
"@algolia/client-personalization@4.10.3": "@algolia/client-personalization@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.3.tgz#58c800f90ab8ab4aa29abdf29a97e89e6bda419e" resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.4.tgz#047909c626266803ddd0b1c08033f4429c1efb55"
integrity sha512-NS7Nx8EJ/nduGXT8CFo5z7kLF0jnFehTP3eC+z+GOEESH3rrs7uR12IZHxv5QhQswZa9vl925zCOZDcDVoENCg== integrity sha512-n5lb4DXLhk0rbCBSE2TgjKko+NCX0/lNBCSTszdanznkdA8NaHnOdy0/LvDoXh2ZYAMJx2etZvfWLYcSLO8cGQ==
dependencies: dependencies:
"@algolia/client-common" "4.10.3" "@algolia/client-common" "4.10.4"
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/transporter" "4.10.3" "@algolia/transporter" "4.10.4"
"@algolia/client-search@4.10.3": "@algolia/client-search@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.3.tgz#aa6b02c2d528cb264830f276739b7f68b58988ef" resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.4.tgz#d14f9ded350cf2b5807561e10105d377f86223b5"
integrity sha512-Zwnp2G94IrNFKWCG/k7epI5UswRkPvL9FCt7/slXe2bkjP2y/HA37gzRn+9tXoLVRwd7gBzrtOA4jFKIyjrtVw== integrity sha512-qqSKogn85YTub8g01N4tcctsowbxq+QJzzzHSQA0+j4Pw93CguinDpX6mU/WbLIZIu2eaTeAQ7pORual3Li0yA==
dependencies: dependencies:
"@algolia/client-common" "4.10.3" "@algolia/client-common" "4.10.4"
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/transporter" "4.10.3" "@algolia/transporter" "4.10.4"
"@algolia/logger-common@4.10.3": "@algolia/logger-common@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.3.tgz#6773d2e38581bf9ac57e2dda02f0c4f1bc72ce94" resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.4.tgz#72c42a2b4a4335e0049108481fa0e9b9fd84cfa2"
integrity sha512-M6xi+qov2bkgg1H9e1Qtvq/E/eKsGcgz8RBbXNzqPIYoDGZNkv+b3b8YMo3dxd4Wd6M24HU1iqF3kmr1LaXndg== integrity sha512-B4D6HqS2TDcf6S8YEr9cFm8S7eswIniojC8IFoCtlfMxhCj2OM70rH1eqfY2VQy/KPY1txYPdMPk8AG8685fHg==
"@algolia/logger-console@4.10.3": "@algolia/logger-console@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.3.tgz#bd8bdc1f9dba89db37be25d673ac1f2e68de7913" resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.4.tgz#61565ca5eca3ff978d165e78054dd5340c0c2a2d"
integrity sha512-vVgRI7b4PHjgBdRkv/cRz490twvkLoGdpC4VYzIouSrKj8SIVLRhey3qgXk7oQXi3xoxVAv6NrklHfpO8Bpx0w== integrity sha512-217KiWZ66BcQ5begHhD+h8mNTjOHvTmUYV203pXteExOgfAm/gzQ4GzzAwXVAhCID2tzRDObfDq8M3BCMp8NPA==
dependencies: dependencies:
"@algolia/logger-common" "4.10.3" "@algolia/logger-common" "4.10.4"
"@algolia/requester-browser-xhr@4.10.3": "@algolia/requester-browser-xhr@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.3.tgz#81ae8f6caf562a28f96102f03da7f4b19bba568c" resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.4.tgz#e6873b354e15c8e4676e3086e2b8eec95d973f7f"
integrity sha512-4WIk1zreFbc1EF6+gsfBTQvwSNjWc20zJAAExRWql/Jq5yfVHmwOqi/CajA53/cXKFBqo80DAMRvOiwP+hOLYw== integrity sha512-a8sEt9WQeolA/ZCSfhd2ImH+8v7o45359Omn2iBXzB3+UD/fo1jOFcDgyX35AusXw8pNtDI/Jd4n0vBYJvtSWg==
dependencies: dependencies:
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/requester-common@4.10.3": "@algolia/requester-common@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.3.tgz#c3112393cff97be79863bc28de76f9c69b2f5a95" resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.4.tgz#93c042d201287b1623db3d6d4b0e91dfb64a5971"
integrity sha512-PNfLHmg0Hujugs3rx55uz/ifv7b9HVdSFQDb2hj0O5xZaBEuQCNOXC6COrXR8+9VEfqp2swpg7zwgtqFxh+BtQ== integrity sha512-RkAxkX/z8DAHUGg0vtZkY/lZXBPc/aEUf/DmWPp2dspAiCp1ekYlyf+qLNwOwEHMu+Q6nm+meStpAUl0BpsNVg==
"@algolia/requester-node-http@4.10.3": "@algolia/requester-node-http@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.3.tgz#75ea7805ac0ba25a1124989d8632ef39c31441c1" resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.4.tgz#413701d24b87220f78645ae7caadc429af8a8217"
integrity sha512-A9ZcGfEvgqf0luJApdNcIhsRh6MShn2zn2tbjwjGG1joF81w+HUY+BWuLZn56vGwAA9ZB9n00IoJJpxibbfofg== integrity sha512-iixy8GOrj0A4sIQX2Q0GChc1z3iM6LF8fJNXVXG629hbXlssEECAl8wO3+6bqAOgbCLiYeY9Aj3QsJyA6vJ4Iw==
dependencies: dependencies:
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/transporter@4.10.3": "@algolia/transporter@4.10.4":
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.3.tgz#0aeee752923957cffe63e4cf1c7a22ca48d96dde" resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.4.tgz#aec3bb3b87569ceec331861fe2c6ca6698a48d19"
integrity sha512-n1lRyKDbrckbMEgm7QXtj3nEWUuzA3aKLzVQ43/F/RCFib15j4IwtmYhXR6OIBRSc7+T0Hm48S0J6F+HeYCQkw== integrity sha512-I60q9+4mYo3D9qIsUYaxU8ZukJVG/DWn1FBAeB5bW9c6/+chmppYJ5CJd/ZvKYEWd7ESwaRrrceYev94O4VrWw==
dependencies: dependencies:
"@algolia/cache-common" "4.10.3" "@algolia/cache-common" "4.10.4"
"@algolia/logger-common" "4.10.3" "@algolia/logger-common" "4.10.4"
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@babel/code-frame@^7.14.5": "@babel/code-frame@^7.14.5":
version "7.14.5" version "7.14.5"
@ -1629,24 +1629,24 @@ algoliasearch@^3.24.5:
tunnel-agent "^0.6.0" tunnel-agent "^0.6.0"
algoliasearch@^4.1.0, algoliasearch@^4.2.0: algoliasearch@^4.1.0, algoliasearch@^4.2.0:
version "4.10.3" version "4.10.4"
resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.3.tgz#22df4bb02fbf13a765b18b85df8745ee9c04f00a" resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.4.tgz#500e66db668b0b7cedb36e9135a4fa719f236e59"
integrity sha512-OLY0AWlPKGLbSaw14ivMB7BT5fPdp8VdzY4L8FtzZnqmLKsyes24cltGlf7/X96ACkYEcT390SReCDt/9SUIRg== integrity sha512-noZ59PZYyYJVsm78YEo6EXH5DgaU0jSKf17xxJ3q9WtpBkmiaNk5b53mSJFsAI3c5gMOWgXM4+4o1EEaCbXXGg==
dependencies: dependencies:
"@algolia/cache-browser-local-storage" "4.10.3" "@algolia/cache-browser-local-storage" "4.10.4"
"@algolia/cache-common" "4.10.3" "@algolia/cache-common" "4.10.4"
"@algolia/cache-in-memory" "4.10.3" "@algolia/cache-in-memory" "4.10.4"
"@algolia/client-account" "4.10.3" "@algolia/client-account" "4.10.4"
"@algolia/client-analytics" "4.10.3" "@algolia/client-analytics" "4.10.4"
"@algolia/client-common" "4.10.3" "@algolia/client-common" "4.10.4"
"@algolia/client-personalization" "4.10.3" "@algolia/client-personalization" "4.10.4"
"@algolia/client-search" "4.10.3" "@algolia/client-search" "4.10.4"
"@algolia/logger-common" "4.10.3" "@algolia/logger-common" "4.10.4"
"@algolia/logger-console" "4.10.3" "@algolia/logger-console" "4.10.4"
"@algolia/requester-browser-xhr" "4.10.3" "@algolia/requester-browser-xhr" "4.10.4"
"@algolia/requester-common" "4.10.3" "@algolia/requester-common" "4.10.4"
"@algolia/requester-node-http" "4.10.3" "@algolia/requester-node-http" "4.10.4"
"@algolia/transporter" "4.10.3" "@algolia/transporter" "4.10.4"
alphanum-sort@^1.0.0: alphanum-sort@^1.0.0:
version "1.0.2" version "1.0.2"
@ -3479,9 +3479,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.723, electron-to-chromium@^1.3.811: electron-to-chromium@^1.3.723, electron-to-chromium@^1.3.811:
version "1.3.814" version "1.3.815"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.814.tgz#418fad80c3276a46103ca72a21a8290620d83c4a" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.815.tgz#2372090c909cb52cb0afe1642cffa91cbe08b721"
integrity sha512-0mH03cyjh6OzMlmjauGg0TLd87ErIJqWiYxMcOLKf5w6p0YEOl7DJAj7BDlXEFmCguY5CQaKVOiMjAMODO2XDw== integrity sha512-2QaE8L5l3BDf82ZXcm0TpWOPoCVUwrp3lKiYzgUbdhRAO2sW60ZdKS5T8yq4r7y1ZeiKJXnf5u8n9u3ldnj5Bw==
elliptic@^6.5.3: elliptic@^6.5.3:
version "6.5.4" version "6.5.4"