docs: first update (#188)
* docs: update * update + * txs * update docs * more docs * spec update * doc fixes
This commit is contained in:
parent
2bd107ee79
commit
f7bcc8d12e
@ -11,8 +11,7 @@ This repository contains reference documentation on the basic concepts of Etherm
|
|||||||
1. [Accounts](./accounts.md)
|
1. [Accounts](./accounts.md)
|
||||||
2. [Gas and Fees](./gas.md)
|
2. [Gas and Fees](./gas.md)
|
||||||
3. [Lifecycle of a transaction](./transactions.md)
|
3. [Lifecycle of a transaction](./transactions.md)
|
||||||
4. [Photon](./photon.md)
|
4. [Tokens](./tokens.md)
|
||||||
5. [JSON-RPC Server](./json_rpc.md)
|
5. [JSON-RPC Server](./json_rpc.md)
|
||||||
6. [Hard Spoon](./hard_spoon.md)
|
|
||||||
|
|
||||||
After reading the basics, head on to the [Core Reference](../core/README.md) for more advanced material.
|
After reading the basics, head on to the [Core Reference](../core/README.md) for more advanced material.
|
||||||
|
@ -17,7 +17,7 @@ Ethermint defines its own custom `Account` type that uses Ethereum's ECDSA secp2
|
|||||||
satisfies the [EIP84](https://github.com/ethereum/EIPs/issues/84) for full [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) paths.
|
satisfies the [EIP84](https://github.com/ethereum/EIPs/issues/84) for full [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) paths.
|
||||||
The root HD path for Ethermint-based accounts is `m/44'/60'/0'/0`.
|
The root HD path for Ethermint-based accounts is `m/44'/60'/0'/0`.
|
||||||
|
|
||||||
+++ https://github.com/tharsis/ethermint/blob/v0.1.0/types/account.go#L31-L36
|
+++ https://github.com/tharsis/ethermint/blob/main/types/account.pb.go#L28-L33
|
||||||
|
|
||||||
## Addresses and Public Keys
|
## Addresses and Public Keys
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ You can query an account address using the Cosmos CLI or REST clients:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# NOTE: the --output (-o) flag will define the output format in JSON or YAML (text)
|
# NOTE: the --output (-o) flag will define the output format in JSON or YAML (text)
|
||||||
ethermintcli q auth account $(ethermintcli keys show <MYKEY> -a) -o text
|
ethermintd q auth account $(ethermintd keys show <MYKEY> -a) -o text
|
||||||
|
|
|
|
||||||
address: eth1f8rqrfwut7ngkxwth0gt99h0lxnxsp09ngvzwl
|
address: eth1f8rqrfwut7ngkxwth0gt99h0lxnxsp09ngvzwl
|
||||||
eth_address: 0x49c601A5DC5FA68b19CBbbd0b296eFF9a66805e5
|
eth_address: 0x49c601A5DC5FA68b19CBbbd0b296eFF9a66805e5
|
||||||
@ -70,7 +70,7 @@ curl -X GET "<NODE_IP>/auth/accounts/eth1f8rqrfwut7ngkxwth0gt99h0lxnxsp09ngvzwl"
|
|||||||
```
|
```
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
The Cosmos SDK Keyring output (i.e `ethermintcli keys`) only supports addresses and public keys in Bech32 format.
|
The Cosmos SDK Keyring output (i.e `ethermintd keys`) only supports addresses and public keys in Bech32 format.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
To retrieve the Ethereum hex address using Web3, use the JSON-RPC [`eth_accounts`](./json_rpc.md#eth-accounts) endpoint:
|
To retrieve the Ethereum hex address using Web3, use the JSON-RPC [`eth_accounts`](./json_rpc.md#eth-accounts) endpoint:
|
||||||
|
@ -44,14 +44,13 @@ More information regarding gas in Cosmos SDK can be found [here](https://docs.co
|
|||||||
## Matching EVM Gas consumption
|
## Matching EVM Gas consumption
|
||||||
|
|
||||||
Ethermint is an EVM-compatible chain that supports Ethereum Web3 tooling. For this reason, gas
|
Ethermint is an EVM-compatible chain that supports Ethereum Web3 tooling. For this reason, gas
|
||||||
consumption must be equitable in order to accurately calculate the state transition hashes and exact
|
consumption must be equitable with other EVMs, most importantly Ethereum.
|
||||||
the behaviour that would be seen on the main Ethereum network (main net).
|
|
||||||
|
|
||||||
In Cosmos, there are types of operations that are not triggered by transactions that can also result in state transitions. Concrete examples are the `BeginBlock` and `EndBlock` operations and the `AnteHandler` checks, which might also read and write to the store before running the state transition from a transaction.
|
The main difference between EVM and Cosmos state transitions, is that the EVM uses a [gas table](https://github.com/ethereum/go-ethereum/blob/master/params/protocol_params.go) for each OPCODE, whereas Cosmos uses a `GasConfig` that charges gas for each CRUD operation by setting a flat and per-byte cost for accessing the database.
|
||||||
|
|
||||||
### `BeginBlock` and `EndBlock`
|
+++ https://github.com/cosmos/cosmos-sdk/blob/3fd376bd5659f076a4dc79b644573299fd1ec1bf/store/types/gas.go#L187-L196
|
||||||
|
|
||||||
These operations are defined by the Tendermint Core's Application Blockchain Interface (ABCI) and are defined by each Cosmos SDK module. As their name suggest, they are executed at the beginning and at the end of each block processing respectively (i.e pre and post transaction execution). Since these operations are not reflected on Ethereum, to match the the gas consumption we reset the main `GasMeter` to 0 on Ethermint's EVM module.
|
In order to match the the gas consumed by the EVM, the gas consumption logic from the SDK is ignored, and instead the gas consumed is calculated by subtracting the state transition leftover gas from the gas limit defined on the message.
|
||||||
|
|
||||||
### `AnteHandler`
|
### `AnteHandler`
|
||||||
|
|
||||||
@ -59,36 +58,28 @@ The Cosmos SDK [`AnteHandler`](https://docs.cosmos.network/master/basics/gas-fee
|
|||||||
performs basic checks prior to transaction execution. These checks are usually signature
|
performs basic checks prior to transaction execution. These checks are usually signature
|
||||||
verification, transaction field validation, transaction fees, etc.
|
verification, transaction field validation, transaction fees, etc.
|
||||||
|
|
||||||
Because the gas calculated in Ethermint is done by the `IntrinsicGas` method from go-ethereum, a
|
Regarding gas consumption and fees, the `AnteHandler` checks that the user has enough balance to
|
||||||
special `AnteHandler` that is customized for EVM transaction fee verification is required. This
|
cover for the tx cost (amount plus fees) as well as checking that the gas limit defined in the
|
||||||
allows Ethermint to generate the expected gas costs for operations done in the network and scale the
|
message is greater or equal than the computed intrinsic gas for the message.
|
||||||
gas costs as it would in the Ethereum network.
|
|
||||||
|
|
||||||
## Gas Refunds
|
## Gas Refunds
|
||||||
|
|
||||||
In Ethereum, gas can be specified prior to execution and the remaining gas will be refunded back to
|
In The EVM, gas can be specified prior to execution and the remaining gas will be refunded back to
|
||||||
the user if any gas is left over - should fail with out of gas if not enough gas was provided. In
|
the user if any gas is left over. The same logic applies to Ethermint, where the gas refunded will be capped to a fraction of the used gas depending on the fork/version being used.
|
||||||
Ethermint, the concept of gas refunds does not exist and the fees paid is not refunded in part back
|
|
||||||
to the user. The fees exacted on a transaction will be collected by the validator and no refunds are
|
|
||||||
issued. Thus, it is extremely important to use the correct gas.
|
|
||||||
|
|
||||||
To prevent overspending on fees, providing the `--gas-adjustment` flag for a cosmos transactions
|
|
||||||
will determine the fees automatically. Also the `eth_estimateGas` rpc call can be used to manually
|
|
||||||
get the correct gas costs for a transaction.
|
|
||||||
|
|
||||||
## 0 Fee Transactions
|
## 0 Fee Transactions
|
||||||
|
|
||||||
In Cosmos, a minimum gas price is not enforced by the `AnteHandler` as the `min-gas-prices` is
|
In Cosmos, a minimum gas price is not enforced by the `AnteHandler` as the `min-gas-prices` is
|
||||||
checked against the local node/validator. In other words, the minimum fees accepted are determined
|
checked against the local node/validator. In other words, the minimum fees accepted are determined
|
||||||
by the validators of the network, and each validator can specify a different value for their fees.
|
by the validators of the network, and each validator can specify a different minimum value for their fees.
|
||||||
This potentially allows end users to submit 0 fee transactions if there is at least one single
|
This potentially allows end users to submit 0 fee transactions if there is at least one single
|
||||||
validator that is willing to include transactions with `0` gas price in their blocks proposed.
|
validator that is willing to include transactions with `0` gas price in their blocks proposed.
|
||||||
|
|
||||||
For this same reason, in Ethermint it is possible to send transactions with `0` fees for transaction
|
For this same reason, in Ethermint it is possible to send transactions with `0` fees for transaction
|
||||||
types other than the ones defined by the `evm` module. EVM module transactions cannot have `0` fees
|
types other than the ones defined by the `evm` module. EVM module transactions cannot have `0` fees
|
||||||
as gas is required inherently by Ethereum. This check is done by the evm transactions
|
as gas is required inherently by the EVM. This check is done by the EVM transactions stateless validation
|
||||||
`ValidateBasic` function as well as on the custom `AnteHandler` defined by Ethermint.
|
(i.e `ValidateBasic`) function as well as on the custom `AnteHandler` defined by Ethermint.
|
||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
Learn about the [Photon](./photon.md) token {hide}
|
Learn about the different types of [tokens](./tokens.md) available {hide}
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
<!--
|
|
||||||
order: 6
|
|
||||||
-->
|
|
||||||
|
|
||||||
# Hard Spoon
|
|
||||||
|
|
||||||
Learn about Ethermint's Hard Spoon functionality. {synopsis}
|
|
||||||
|
|
||||||
## Hard Spoon on Ethermint
|
|
||||||
|
|
||||||
A [hard spoon](https://blog.cosmos.network/introducing-the-hard-spoon-4a9288d3f0df) is the migration of the snapshot of a target blockchain's state into a new chain. The state of a network can be imported (or "scooped") onto a separate chain to accurately replicate the account balances and other information from the state.
|
|
||||||
|
|
||||||
Ethermint's Hard Spoon tool (currently under specification) is targeted to import the state of the Ethereum mainnet to replicate the state for the given accounts. This will allow anyone on the Ethereum network to import their contracts into Ethermint.
|
|
||||||
|
|
||||||
## Next {hide}
|
|
||||||
|
|
||||||
Learn about the [encoding](./../core/encoding.md) formats used on Ethermint {hide}
|
|
@ -1,33 +0,0 @@
|
|||||||
<!--
|
|
||||||
order: 4
|
|
||||||
-->
|
|
||||||
|
|
||||||
# Photon
|
|
||||||
|
|
||||||
Learn about the Photon, Ethermint's staking token. {synopsis}
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
::: tip
|
|
||||||
The photon's initial distribution and supply is still TBD and will be announced in the future.
|
|
||||||
:::
|
|
||||||
|
|
||||||
The photon is the staking token used in Ethermint.
|
|
||||||
|
|
||||||
## Base Denomination
|
|
||||||
|
|
||||||
Ethermint uses [Atto](https://en.wikipedia.org/wiki/Atto-) Photon as the base denomination to maintain parity with Ethereum.
|
|
||||||
|
|
||||||
```
|
|
||||||
1 photon = 1×10⁻¹⁸ aphoton
|
|
||||||
```
|
|
||||||
|
|
||||||
This matches Ethereum denomination of:
|
|
||||||
|
|
||||||
```
|
|
||||||
1 ETH = 1x10⁻¹⁸ wei
|
|
||||||
```
|
|
||||||
|
|
||||||
## Next {hide}
|
|
||||||
|
|
||||||
Learn about the supported [JSON-RPC](./json_rpc.md) methods on Ethermint {hide}
|
|
40
docs/basics/tokens.md
Normal file
40
docs/basics/tokens.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<!--
|
||||||
|
order: 4
|
||||||
|
-->
|
||||||
|
|
||||||
|
# Tokens
|
||||||
|
|
||||||
|
Learn about the the different types of tokens available in Ethermint. {synopsis}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Ethermint is a Cosmos SDK-based chain with full EVM support. Because of this architecture, tokens and assets in the network may come from different independent sources: the `bank` module and the `evm` module.
|
||||||
|
|
||||||
|
## Cosmos Coins
|
||||||
|
|
||||||
|
Accounts can own SDK coins in their balance, which are used for operations with other Cosmos modules and transactions. Examples of these are using the coins for staking, IBC transfers, governance deposits and EVM
|
||||||
|
|
||||||
|
### Photon
|
||||||
|
|
||||||
|
The denomination used for staking, governance and gas consumption on the EVM is the Photon. The Photon provides the utility of: securing the Proof-of-Stake chain, token used for governance proposals, fee distribution and as a mean of gas for running smart contracts on the EVM.
|
||||||
|
|
||||||
|
Ethermint uses [Atto](https://en.wikipedia.org/wiki/Atto-) Photon as the base denomination to maintain parity with Ethereum.
|
||||||
|
|
||||||
|
```
|
||||||
|
1 photon = 1×10⁻¹⁸ aphoton
|
||||||
|
```
|
||||||
|
|
||||||
|
This matches Ethereum denomination of:
|
||||||
|
|
||||||
|
```
|
||||||
|
1 ETH = 1x10⁻¹⁸ wei
|
||||||
|
```
|
||||||
|
|
||||||
|
### EVM Tokens
|
||||||
|
|
||||||
|
Ethermint is compatible with ERC20 tokens and other non-fungible token standards (EIP721, EIP1155)
|
||||||
|
that are natively supported by the EVM. One important remark is that these tokens don't interact with the Cosmos modules and other Cosmos SDK coins.
|
||||||
|
|
||||||
|
## Next {hide}
|
||||||
|
|
||||||
|
Learn about the supported [JSON-RPC](./json_rpc.md) methods on Ethermint {hide}
|
@ -7,12 +7,11 @@ order: 2
|
|||||||
## Routing
|
## Routing
|
||||||
|
|
||||||
Ethermint needs to parse and handle transactions routed for both the EVM and for the Cosmos hub. We
|
Ethermint needs to parse and handle transactions routed for both the EVM and for the Cosmos hub. We
|
||||||
attempt to achieve this by mimicking [Geth's](https://github.com/ethereum/go-ethereum) `Transaction`
|
attempt to achieve this by mimicking [geth's](https://github.com/ethereum/go-ethereum) `Transaction`
|
||||||
structure and treat it as a unique Cosmos SDK message type. An Ethereum transaction is a single
|
structure and treat it as a unique Cosmos SDK message type. An Ethereum transaction is a single
|
||||||
[`sdk.Msg`](https://godoc.org/github.com/cosmos/cosmos-sdk/types#Msg) contained in an
|
[`sdk.Msg`](https://godoc.org/github.com/cosmos/cosmos-sdk/types#Msg). All relevant Ethereum
|
||||||
[`auth.StdTx`](https://godoc.org/github.com/cosmos/cosmos-sdk/x/auth#StdTx). All relevant Ethereum
|
|
||||||
transaction information is contained in this message. This includes the signature, gas, payload,
|
transaction information is contained in this message. This includes the signature, gas, payload,
|
||||||
etc.
|
amount, etc.
|
||||||
|
|
||||||
Being that Ethermint implements the Tendermint ABCI application interface, as transactions are
|
Being that Ethermint implements the Tendermint ABCI application interface, as transactions are
|
||||||
consumed, they are passed through a series of handlers. Once such handler, the `AnteHandler`, is
|
consumed, they are passed through a series of handlers. Once such handler, the `AnteHandler`, is
|
||||||
@ -20,25 +19,18 @@ responsible for performing preliminary message execution business logic such as
|
|||||||
signature verification, etc. This is particular to Cosmos SDK routed transactions. Ethereum routed
|
signature verification, etc. This is particular to Cosmos SDK routed transactions. Ethereum routed
|
||||||
transactions will bypass this as the EVM handles the same business logic.
|
transactions will bypass this as the EVM handles the same business logic.
|
||||||
|
|
||||||
Ethereum routed transactions coming from a Web3 source are expected to be [RLP](./../core/encoding.md#rlp) encoded, however all
|
All EVM transactions are [RLP](./../core/encoding.md#rlp) encoded using a custom tx encoder.
|
||||||
internal interaction between Ethermint and Tendermint will utilize one of the supported encoding
|
|
||||||
formats: [Protobuf](./../core/encoding.md#protocol-buffers) and [Amino](./../core/encoding.md#amino).
|
|
||||||
|
|
||||||
## Transaction formats
|
## Signers
|
||||||
|
|
||||||
<!-- TODO: -->
|
The signature processing and verification in Ethereum is performed by the `Signer` interface. The
|
||||||
|
protocol supports different signer types based on the chain configuration params and the block number.
|
||||||
|
|
||||||
- Cosmos transactions
|
+++ https://github.com/ethereum/go-ethereum/blob/v1.10.3/core/types/transaction_signing.go#L145-L166
|
||||||
- Ethereum transaction
|
|
||||||
|
|
||||||
## Signatures
|
Ethermint supports all Ethereum `Signer`s up to the latest go-ethereum version (London, Berlin,
|
||||||
|
EIP155, Homestead and Frontier). The chain will generate the latest `Signer` type depending on the
|
||||||
Ethermint supports [EIP-155](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md)
|
`ChainConfig`.
|
||||||
signatures. A `Transaction` is expected to have a single signature for Ethereum routed transactions.
|
|
||||||
However, just as in Cosmos, Ethermint will support multiple signers for non-Ethereum transactions.
|
|
||||||
Signatures over the `Transaction` type are identical to Ethereum and the signatures will not be
|
|
||||||
duplicated in the embedding
|
|
||||||
[`auth.StdTx`](https://godoc.org/github.com/cosmos/cosmos-sdk/x/auth#StdTx).
|
|
||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
|
@ -10,5 +10,6 @@ This repository contains reference documentation on the core concepts of Ethermi
|
|||||||
|
|
||||||
1. [Encoding](./encoding.md)
|
1. [Encoding](./encoding.md)
|
||||||
2. [Pending State](./pending_state.md)
|
2. [Pending State](./pending_state.md)
|
||||||
|
3. [Protobuf Docs](./proto-docs.md)
|
||||||
|
|
||||||
After reading the core concepts, head on to the [guides](../guides/README.md) to learn how to use Ethereum tooling with Ethermint.
|
After reading the core concepts, head on to the [guides](../guides/README.md) to learn how to use Ethereum tooling with Ethermint.
|
||||||
|
@ -17,14 +17,14 @@ Learn about the encoding formats used on Ethermint. {synopsis}
|
|||||||
|
|
||||||
The Cosmos [Stargate](https://stargate.cosmos.network/) release introduces
|
The Cosmos [Stargate](https://stargate.cosmos.network/) release introduces
|
||||||
[protobuf](https://developers.google.com/protocol-buffers) as the main encoding format for both
|
[protobuf](https://developers.google.com/protocol-buffers) as the main encoding format for both
|
||||||
client and state serialization. All the EVM module structs that are used for state and clients
|
client and state serialization. All the EVM module types that are used for state and clients
|
||||||
(transaction messages, genesis, query services, etc) will be implemented as protocol buffer messages.
|
(transaction messages, genesis, query services, etc) will be implemented as protocol buffer messages.
|
||||||
|
|
||||||
### Amino
|
### Amino
|
||||||
|
|
||||||
The Cosmos SDK also supports the legacy Amino encoding format for backwards compatibility with
|
The Cosmos SDK also supports the legacy Amino encoding format for backwards compatibility with
|
||||||
previous versions, specially for client encoding. Ethermint will not support Amino in the EVM module
|
previous versions, specially for client encoding and signing with Ledger devices. Ethermint does not
|
||||||
once the migration to SDK `v0.40` is finalized.
|
support Amino in the EVM module, but it is supported for all other Cosmos SDK modules that enable it.
|
||||||
|
|
||||||
### RLP
|
### RLP
|
||||||
|
|
||||||
@ -33,9 +33,36 @@ allows for quick reconstruction of encoded data. Ethermint uses RLP to encode/de
|
|||||||
messages for JSON-RPC handling to conform messages to the proper Ethereum format. This allows
|
messages for JSON-RPC handling to conform messages to the proper Ethereum format. This allows
|
||||||
messages to be encoded and decoded in the exact format as Ethereum's.
|
messages to be encoded and decoded in the exact format as Ethereum's.
|
||||||
|
|
||||||
Each message type defined on the EVM module define the `EncodeRLP` and `DecodeRLP` methods which
|
The `x/evm` transactions (`MsgEthereumTx`) encoding is performed by casting the message to a go-ethereum's `Transaction` and then marshaling the transaction data using RLP:
|
||||||
implement the `rlp.Encoder` and `rlp.Decoder` interfaces respectively. The RLP encode method is used
|
|
||||||
to sign bytes and transactions in `RLPSignBytes` and `Sign`.
|
```go
|
||||||
|
// TxEncoder overwrites sdk.TxEncoder to support MsgEthereumTx
|
||||||
|
func (g txConfig) TxEncoder() sdk.TxEncoder {
|
||||||
|
return func(tx sdk.Tx) ([]byte, error) {
|
||||||
|
msg, ok := tx.(*evmtypes.MsgEthereumTx)
|
||||||
|
if ok {
|
||||||
|
return msg.AsTransaction().MarshalBinary()
|
||||||
|
}
|
||||||
|
return g.TxConfig.TxEncoder()(tx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TxDecoder overwrites sdk.TxDecoder to support MsgEthereumTx
|
||||||
|
func (g txConfig) TxDecoder() sdk.TxDecoder {
|
||||||
|
return func(txBytes []byte) (sdk.Tx, error) {
|
||||||
|
tx := ðtypes.Transaction{}
|
||||||
|
|
||||||
|
err := tx.UnmarshalBinary(txBytes)
|
||||||
|
if err == nil {
|
||||||
|
msg := &evmtypes.MsgEthereumTx{}
|
||||||
|
msg.FromEthereumTx(tx)
|
||||||
|
return msg, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return g.TxConfig.TxDecoder()(txBytes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
|
@ -60,11 +60,10 @@ Clone and build Ethermint in the droplet using `git`:
|
|||||||
go install https://github.com/tharsis/ethermint.git
|
go install https://github.com/tharsis/ethermint.git
|
||||||
```
|
```
|
||||||
|
|
||||||
Check that the binaries have been successfuly installed:
|
Check that the binaries have been successfully installed:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintd -h
|
ethermintd -h
|
||||||
ethermintcli -h
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Copy the Genesis File
|
### Copy the Genesis File
|
||||||
|
@ -2,25 +2,22 @@
|
|||||||
order: 5
|
order: 5
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# JoiningTestnet
|
# Joining a Testnet
|
||||||
|
|
||||||
This document outlines the steps to join the public testnet
|
This document outlines the steps to join an existing testnet
|
||||||
|
|
||||||
## Steps
|
## Steps
|
||||||
|
|
||||||
1. Install the Ethermint binaries (ethermintd & ethermint cli)
|
1. Install the Ethermint binary ethermintd
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/tharsis/ethermint
|
go install https://github.com/tharsis/ethermint
|
||||||
cd ethermint
|
|
||||||
git checkout v0.4.1
|
|
||||||
make install
|
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Create an Ethermint account
|
2. Create an Ethermint account
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli keys add <keyname>
|
ethermintd keys add <keyname>
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Copy genesis file
|
3. Copy genesis file
|
||||||
@ -42,40 +39,3 @@ This document outlines the steps to join the public testnet
|
|||||||
|
|
||||||
ethermintd start --pruning=nothing --rpc.unsafe --log_level "main:info,state:info,mempool:info" --trace
|
ethermintd start --pruning=nothing --rpc.unsafe --log_level "main:info,state:info,mempool:info" --trace
|
||||||
```
|
```
|
||||||
|
|
||||||
(we recommend running the command in the background for convenience)
|
|
||||||
|
|
||||||
6. Start the RPC server
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --unlock-key $KEY --chain-id etherminttestnet-777 --trace --rpc-api "web3,eth,net"
|
|
||||||
```
|
|
||||||
|
|
||||||
where `$KEY` is the key name that was used in step 2.
|
|
||||||
(we recommend running the command in the background for convenience)
|
|
||||||
|
|
||||||
7. Request funds from the faucet
|
|
||||||
|
|
||||||
You will need to know the Ethereum hex address, and it can be found with the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}' -H "Content-Type: application/json" http://localhost:8545
|
|
||||||
```
|
|
||||||
|
|
||||||
Using the output of the above command, you will then send the command with your valid Ethereum address
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl --header "Content-Type: application/json" --request POST --data '{"address":"0xYourEthereumHexAddress"}' 3.95.21.91:3000
|
|
||||||
```
|
|
||||||
|
|
||||||
## Public Testnet Node RPC Endpoints
|
|
||||||
|
|
||||||
- **Node0**: `54.210.246.165:8545`
|
|
||||||
- **Node1**: `3.86.104.251:8545`
|
|
||||||
- **Node2**: `18.204.206.179:8545`
|
|
||||||
|
|
||||||
example:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' -H "Content-Type: application/json" 54.210.246.165:8545
|
|
||||||
```
|
|
||||||
|
@ -21,7 +21,7 @@ You can also start a node from scratch by running `./init.sh` from the Ethermint
|
|||||||
In another tab start the REST server. Here replace `mykey` with the name of the key that you want to use and set the `chain-id` the chain identifier of your application.
|
In another tab start the REST server. Here replace `mykey` with the name of the key that you want to use and set the `chain-id` the chain identifier of your application.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --unlock-key mykey --chain-id 1
|
ethermintd rest-server --laddr "tcp://localhost:8545" --unlock-key mykey --chain-id 1
|
||||||
```
|
```
|
||||||
|
|
||||||
## Adding a custom Network for Ethermint
|
## Adding a custom Network for Ethermint
|
||||||
@ -44,7 +44,7 @@ Now you can export your private key from the terminal using the following comman
|
|||||||
to replace `mykey` with the name of the key that you want to export:
|
to replace `mykey` with the name of the key that you want to export:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli keys unsafe-export-eth-key mykey
|
ethermintd keys unsafe-export-eth-key mykey
|
||||||
```
|
```
|
||||||
|
|
||||||
Go back to the browser and select the `Private Key` option. Then paste the private key exported from
|
Go back to the browser and select the `Private Key` option. Then paste the private key exported from
|
||||||
|
@ -103,7 +103,7 @@ Open `truffle-config.js` and uncomment the `development` section in `networks`:
|
|||||||
|
|
||||||
This will allow your contract to connect to your Ethermint local node.
|
This will allow your contract to connect to your Ethermint local node.
|
||||||
|
|
||||||
## Start Node and REST server
|
## Start Node
|
||||||
|
|
||||||
Start your local node using the following command on the Terminal
|
Start your local node using the following command on the Terminal
|
||||||
|
|
||||||
@ -116,12 +116,6 @@ init.sh
|
|||||||
For further information on how to run a node, please refer to [this](./../quickstart/run_node.md) quickstart document.
|
For further information on how to run a node, please refer to [this](./../quickstart/run_node.md) quickstart document.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
In another Terminal wintdow/tab, start the [REST and JSON-RPC server](./../quickstart/clients.md#rest-and-tendermint-rpc.md):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --unlock-key mykey--chain-id 8 --trace
|
|
||||||
```
|
|
||||||
|
|
||||||
## Deploy contract
|
## Deploy contract
|
||||||
|
|
||||||
Back in the Truffle terminal, migrate the contract using
|
Back in the Truffle terminal, migrate the contract using
|
||||||
@ -130,7 +124,7 @@ Back in the Truffle terminal, migrate the contract using
|
|||||||
truffle migrate --network development
|
truffle migrate --network development
|
||||||
```
|
```
|
||||||
|
|
||||||
You should see incoming deployment logs in the Ethermint daemon Terminal tab for each transaction (one to deploy `Migrations.sol` and the oether to deploy `Counter.sol`).
|
You should see incoming deployment logs in the Ethermint daemon Terminal tab for each transaction (one to deploy `Migrations.sol` and the other to deploy `Counter.sol`).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
I[2020-07-15|17:35:59.934] Added good transaction module=mempool tx=22245B935689918D332F58E82690F02073F0453D54D5944B6D64AAF1F21974E2 res="&{CheckTx:log:\"[]\" gas_wanted:6721975 }" height=3 total=1
|
I[2020-07-15|17:35:59.934] Added good transaction module=mempool tx=22245B935689918D332F58E82690F02073F0453D54D5944B6D64AAF1F21974E2 res="&{CheckTx:log:\"[]\" gas_wanted:6721975 }" height=3 total=1
|
||||||
|
@ -6,17 +6,16 @@ order: 2
|
|||||||
|
|
||||||
Learn how Ethermint's architecture leverages the Cosmos SDK Proof-of-Stake functionality, EVM compatibility and fast-finality from Tendermint Core's BFT consensus. {synopsis}
|
Learn how Ethermint's architecture leverages the Cosmos SDK Proof-of-Stake functionality, EVM compatibility and fast-finality from Tendermint Core's BFT consensus. {synopsis}
|
||||||
|
|
||||||
## Cosmos-SDK
|
## Cosmos SDK
|
||||||
|
|
||||||
<!-- TODO: -->
|
Ethermint enables the full composability and modularity of the [Cosmos SDK](https://docs.cosmos.network/)
|
||||||
|
|
||||||
## Tendermint Core & the Application Blockchain Interface (ABCI)
|
## Tendermint Core & the Application Blockchain Interface (ABCI)
|
||||||
|
|
||||||
Tendermint consists of two chief technical components: a blockchain consensus
|
Tendermint consists of two chief technical components: a blockchain consensus
|
||||||
engine and a generic application interface. The consensus engine, called
|
engine and a generic application interface. The consensus engine, called
|
||||||
Tendermint Core, ensures that the same transactions are recorded on every machine
|
[Tendermint Core](https://docs.tendermint.com/), ensures that the same transactions are recorded on every machine
|
||||||
in the same order. The application interface, called the Application Blockchain
|
in the same order. The application interface, called the [Application Blockchain Interface (ABCI)](https://docs.tendermint.com/master/spec/abci/), enables the transactions to be processed in any programming
|
||||||
Interface (ABCI), enables the transactions to be processed in any programming
|
|
||||||
language.
|
language.
|
||||||
|
|
||||||
Tendermint has evolved to be a general purpose blockchain consensus engine that
|
Tendermint has evolved to be a general purpose blockchain consensus engine that
|
||||||
@ -31,7 +30,12 @@ simple API (ie. the ABCI) between the application process and consensus process.
|
|||||||
|
|
||||||
## EVM module
|
## EVM module
|
||||||
|
|
||||||
<!-- TODO: -->
|
Ethermint enables EVM compatibility by implementing various components that together support all the EVM state transitions while ensuring the same developer experience as Ethereum:
|
||||||
|
|
||||||
|
- Ethereum transaction format as a Cosmos SDK `Tx` and `Msg` interface
|
||||||
|
- Ethereum's `secp256k1` curve for the Cosmos Keyring
|
||||||
|
- `StateDB` interface for state updates and queries
|
||||||
|
- JSON-RPC client for interacting with the EVM
|
||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
|
@ -9,9 +9,7 @@ Learn about Ethermint and its primary features. {synopsis}
|
|||||||
## What is Ethermint
|
## What is Ethermint
|
||||||
|
|
||||||
Ethermint is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and
|
Ethermint is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and
|
||||||
interoperable with Ethereum. It's built using the [Cosmos
|
interoperable with Ethereum. It's built using the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/) which runs on top of [Tendermint Core](https://github.com/tendermint/tendermint) consensus engine.
|
||||||
SDK](https://github.com/cosmos/cosmos-sdk/) which runs on top of [Tendermint
|
|
||||||
Core](https://github.com/tendermint/tendermint) consensus engine.
|
|
||||||
|
|
||||||
Ethermint allows for running vanilla Ethereum as a [Cosmos](https://cosmos.network/)
|
Ethermint allows for running vanilla Ethereum as a [Cosmos](https://cosmos.network/)
|
||||||
application-specific blockchain. This allows developers to have all the desired features of
|
application-specific blockchain. This allows developers to have all the desired features of
|
||||||
@ -23,11 +21,10 @@ Ecosystem through the Inter Blockchain Communication Protocol (IBC).
|
|||||||
|
|
||||||
Here’s a glance at some of the key features of Ethermint:
|
Here’s a glance at some of the key features of Ethermint:
|
||||||
|
|
||||||
* Web3 compatibility
|
* Web3 and EVM compatibility
|
||||||
* High throughput via [Tendermint Core](https://github.com/tendermint/tendermint)
|
* High throughput via [Tendermint Core](https://github.com/tendermint/tendermint)
|
||||||
* Horizontal scalability via [IBC](https://cosmos.network/ibc)
|
* Horizontal scalability via [IBC](https://cosmos.network/ibc)
|
||||||
* Fast transaction finality
|
* Fast transaction finality
|
||||||
* [Hard Spoon](./../basics/hard_spoon.md)
|
|
||||||
|
|
||||||
Ethermint enables these key features by:
|
Ethermint enables these key features by:
|
||||||
|
|
||||||
|
@ -13,13 +13,11 @@ Ethermint EVM and get the benefits of a fast-finality Proof-of-Stake (PoS) chain
|
|||||||
also benefit from highly-reliable clients from testnets can be used to test and deploy their
|
also benefit from highly-reliable clients from testnets can be used to test and deploy their
|
||||||
contracts.
|
contracts.
|
||||||
|
|
||||||
Ethermint will also offer built-in interoperability functionalities with other Cosmos and BFT chains by using [IBC](https://cosmos.network/ibc). Developers can also benefit from using a bridge network (like
|
Ethermint will also offer built-in interoperability functionalities with other Cosmos and BFT chains by using [IBC](https://cosmos.network/ibc). Developers can also benefit from using a bridge network to enable interoperability between mainnet Ethereum and Ethermint.
|
||||||
[Chainbridge](https://github.com/ChainSafe/ChainBridge), or a [Peg
|
|
||||||
Zone](https://github.com/cosmos/peggy)) to enable interoperability between mainnet Ethereum and Ethermint.
|
|
||||||
|
|
||||||
## EVM module dependency
|
## EVM module dependency
|
||||||
|
|
||||||
The EVM module ([x/evm](https://github.com/tharsis/ethermint/tree/main/x/evm)) packaged inside
|
The EVM module (aka [x/evm](https://github.com/tharsis/ethermint/tree/main/x/evm)) packaged inside
|
||||||
Ethermint can be used separately as its own standalone module. This can be added as a dependency to
|
Ethermint can be used separately as its own standalone module. This can be added as a dependency to
|
||||||
any Cosmos chain, which will allow for smart contract support.
|
any Cosmos chain, which will allow for smart contract support.
|
||||||
|
|
||||||
@ -45,6 +43,12 @@ network. Utilizing the Ethermint client will defer the chain maintenance to the
|
|||||||
and allow for the participation in a more mature blockchain. The Ethermint client will also offer
|
and allow for the participation in a more mature blockchain. The Ethermint client will also offer
|
||||||
(in the near future) IBC compatibility which allows for interoperability between different network.
|
(in the near future) IBC compatibility which allows for interoperability between different network.
|
||||||
|
|
||||||
|
| | Ethermint Chain | x/evm dependency |
|
||||||
|
|-----------------------------------------|-----------------|------------------|
|
||||||
|
| Maintenance | Lower | Higher |
|
||||||
|
| Sovereignty (validator, config, params) | Lower | Higher |
|
||||||
|
| Storage requirements | Lower | Higher |
|
||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
Read the available Ethermint [resources](./resources.md) {hide}
|
Read the available Ethermint [resources](./resources.md) {hide}
|
||||||
|
@ -6,7 +6,7 @@ parent:
|
|||||||
|
|
||||||
# Quick Start
|
# Quick Start
|
||||||
|
|
||||||
This repository contains reference documentation on how to install and run an Etheremint full node.
|
This repository contains reference documentation on how to install and run an Ethermint full node.
|
||||||
|
|
||||||
1. [Installation](./installation.md)
|
1. [Installation](./installation.md)
|
||||||
2. [Run a Node](./run_node.md)
|
2. [Run a Node](./run_node.md)
|
||||||
@ -20,4 +20,4 @@ After going throught the Quick Start contents, head over to the [basics](./../ba
|
|||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
Learn how to [install](./../quickstart/intallation.md) Ethermint {hide}
|
Learn how to [install](./../quickstart/installation.md) Ethermint {hide}
|
||||||
|
@ -9,42 +9,16 @@ Learn how to connect a client to a running node. {synopsis}
|
|||||||
## Pre-requisite Readings
|
## Pre-requisite Readings
|
||||||
|
|
||||||
- [Run a Node](./run_node.md) {prereq}
|
- [Run a Node](./run_node.md) {prereq}
|
||||||
|
- [Interacting with the Node](https://docs.cosmos.network/v0.43/run-node/interact-node.html) {prereq}
|
||||||
## Client Integrations
|
|
||||||
|
|
||||||
### Command Line Interface
|
|
||||||
|
|
||||||
Ethermint is integrated with a CLI client that can be used to send transactions and query the state from each module.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# available query commands
|
|
||||||
ethermintcli query -h
|
|
||||||
|
|
||||||
# available transaction commands
|
|
||||||
ethermintcli tx -h
|
|
||||||
```
|
|
||||||
|
|
||||||
### Client Servers
|
### Client Servers
|
||||||
|
|
||||||
The Ethermint client supports both [REST endpoints](https://cosmos.network/rpc) from the SDK and Ethereum's [JSON-RPC](https://eth.wiki/json-rpc/API).
|
The Ethermint client supports both [gRPC endpoints](https://cosmos.network/rpc) from the SDK and Ethereum's [JSON-RPC](https://eth.wiki/json-rpc/API).
|
||||||
|
|
||||||
#### REST and Tendermint RPC
|
#### Cosmos gRPC and Tendermint RPC
|
||||||
|
|
||||||
Ethermint exposes REST endpoints for all the integrated Cosmos-SDK modules. This makes it easier for wallets and block explorers to interact with the proof-of-stake logic.
|
Ethermint exposes gRPC endpoints (and REST) for all the integrated Cosmos-SDK modules. This makes it easier for
|
||||||
|
wallets and block explorers to interact with the proof-of-stake logic and native Cosmos transactions and queries:
|
||||||
To run the REST Server, you need to run the Ethermint daemon (`ethermintd`) and then execute (in another
|
|
||||||
process):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --unlock-key $KEY --chain-id $CHAINID --trace
|
|
||||||
```
|
|
||||||
|
|
||||||
You should see the logs from the REST and the RPC server.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
I[2020-07-17|16:54:35.037] Starting application REST service (chain-id: "8")... module=rest-server
|
|
||||||
I[2020-07-17|16:54:35.037] Starting RPC HTTP server on 127.0.0.1:8545 module=rest-server
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Ethereum JSON-RPC server
|
#### Ethereum JSON-RPC server
|
||||||
|
|
||||||
@ -52,12 +26,10 @@ Ethermint also supports most of the standard web3 [JSON-RPC
|
|||||||
APIs](https://eth.wiki/json-rpc/API) to connect with existing web3 tooling.
|
APIs](https://eth.wiki/json-rpc/API) to connect with existing web3 tooling.
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
Some of the JSON-RPC API [namespaces](https://geth.ethereum.org/docs/rpc/server) are currently under development.
|
See the list of supported JSON-RPC API [namespaces](https://geth.ethereum.org/docs/rpc/server) and endpoints.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
To connect to the JSON-PRC server, use the `rest-server` command as shown on the section above. Then, you can point any Ethereum development tooling to `http://localhost:8545` or whatever port you choose with the listen address flag (`--laddr`).
|
To connect to the JSON-PRC server, use the `rest-server` command as shown on the section above. Then, you can point any Ethereum development tooling to `http://localhost:8545` or whatever port you choose with the listen address flag (`--evm-rpc.address`).
|
||||||
|
|
||||||
For further information JSON-RPC calls, please refer to [this](../basics/json_rpc.md) document.
|
|
||||||
|
|
||||||
## Next {hide}
|
## Next {hide}
|
||||||
|
|
||||||
|
@ -86,17 +86,17 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":[
|
|||||||
|
|
||||||
### Tendermint Websocket
|
### Tendermint Websocket
|
||||||
|
|
||||||
To start a connection with the Tendermint websocket you need to define the address with the `--node`
|
To start a connection with the Tendermint websocket you need to define the address with the `--rpc.laddr`
|
||||||
flag when initializing the REST server (default `tcp://localhost:26657`):
|
flag when starting the node (default `tcp://127.0.0.1:26657`):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --node "tcp://localhost:8080" --unlock-key <my_key> --chain-id <chain_id>
|
ethermintd start --rpc.laddr="tcp://127.0.0.1:26657"
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, start a websocket subscription with [ws](https://github.com/hashrocket/ws)
|
Then, start a websocket subscription with [ws](https://github.com/hashrocket/ws)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# connect to tendermint websocet at port 8080 as defined above
|
# connect to tendermint websocket at port 8080 as defined above
|
||||||
ws ws://localhost:8080/websocket
|
ws ws://localhost:8080/websocket
|
||||||
|
|
||||||
# subscribe to new Tendermint block headers
|
# subscribe to new Tendermint block headers
|
||||||
@ -111,11 +111,11 @@ compatibility for websockets of the [Ethereum's
|
|||||||
PubSubAPI](https://geth.ethereum.org/docs/rpc/pubsub), Ethermint needs to cast the Tendermint
|
PubSubAPI](https://geth.ethereum.org/docs/rpc/pubsub), Ethermint needs to cast the Tendermint
|
||||||
responses retreived into the Ethereum types.
|
responses retreived into the Ethereum types.
|
||||||
|
|
||||||
You can start a connection with the Ethereum websocket using the `--wsport` flag when initializing
|
You can start a connection with the Ethereum websocket using the `--evm-rpc.ws-address` flag when starting
|
||||||
the REST server (default `8546`):
|
the node (default `"0.0.0.0:8546"`):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --wsport 8546 --unlock-key <my_key> --chain-id <chain_id>
|
ethermintd start --evm-rpc.address"0.0.0.0:8545" --evm-rpc.ws-address="0.0.0.0:8546" --evm.rpc.api="eth,web3,net,txpool,debug" --evm-rpc.enable
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, start a websocket subscription with [ws](https://github.com/hashrocket/ws)
|
Then, start a websocket subscription with [ws](https://github.com/hashrocket/ws)
|
||||||
|
@ -14,11 +14,10 @@ cd ethermint
|
|||||||
make install
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
Check that the binaries have been successfuly installed:
|
Check that the binaries have been successfully installed:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintd -h
|
ethermintd -h
|
||||||
ethermintcli -h
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
@ -30,11 +29,10 @@ make docker-build
|
|||||||
```
|
```
|
||||||
|
|
||||||
This will install the binaries on the `./build` directory. Now, check that the binaries have been
|
This will install the binaries on the `./build` directory. Now, check that the binaries have been
|
||||||
successfuly installed:
|
successfully installed:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintd -h
|
ethermintd -h
|
||||||
ethermintcli -h
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Releases
|
## Releases
|
||||||
|
@ -23,12 +23,6 @@ to keep your binaries and configuration files.
|
|||||||
./init.sh
|
./init.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
In another terminal window or tab, run the Ethereum JSON-RPC server as well as the SDK REST server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ethermintcli rest-server --laddr "tcp://localhost:8545" --unlock-key mykey --chain-id 8
|
|
||||||
```
|
|
||||||
|
|
||||||
## Manual deployment
|
## Manual deployment
|
||||||
|
|
||||||
The instructions for setting up a brand new full node from scratch are the the same as running a
|
The instructions for setting up a brand new full node from scratch are the the same as running a
|
||||||
@ -39,15 +33,15 @@ The instructions for setting up a brand new full node from scratch are the the s
|
|||||||
To start your node, just type:
|
To start your node, just type:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintd start
|
ethermintd start --evm-rpc.enable=true --evm-rpc.api="eth,web3,net,txpool,debug"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Key Management
|
## Key Management
|
||||||
|
|
||||||
To run a node with the same key every time: replace `ethermintcli keys add $KEY` in `./init.sh` with:
|
To run a node with the same key every time: replace `ethermintd keys add $KEY` in `./init.sh` with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo "your mnemonic here" | ethermintcli keys add $KEY --recover
|
echo "your mnemonic here" | ethermintd keys add $KEY --recover
|
||||||
```
|
```
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
@ -57,19 +51,19 @@ Ethermint currently only supports 24 word mnemonics.
|
|||||||
You can generate a new key/mnemonic with:
|
You can generate a new key/mnemonic with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli keys add $KEY
|
ethermintd keys add $KEY
|
||||||
```
|
```
|
||||||
|
|
||||||
To export your ethermint key as an ethereum private key (for use with Metamask for example):
|
To export your ethermint key as an ethereum private key (for use with Metamask for example):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli keys unsafe-export-eth-key $KEY
|
ethermintd keys unsafe-export-eth-key $KEY
|
||||||
```
|
```
|
||||||
|
|
||||||
For more about the available key commands, use the `--help` flag
|
For more about the available key commands, use the `--help` flag
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli keys -h
|
ethermintd keys -h
|
||||||
```
|
```
|
||||||
|
|
||||||
### Keyring backend options
|
### Keyring backend options
|
||||||
@ -82,7 +76,7 @@ relevant command and the password prompt will occur through the command line. Th
|
|||||||
as a CLI config option with:
|
as a CLI config option with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli config keyring-backend file
|
ethermintd config keyring-backend file
|
||||||
```
|
```
|
||||||
|
|
||||||
## Clearing data from chain
|
## Clearing data from chain
|
||||||
@ -110,10 +104,10 @@ Your node is now in a pristine state while keeping the original `priv_validator.
|
|||||||
|
|
||||||
### Delete Data
|
### Delete Data
|
||||||
|
|
||||||
Data for the Daemon and CLI binaries should be stored at `~/.ethermintd` and `~/.ethermintcli`, respectively by default. To **delete** the existing binaries and configuration, run:
|
Data for the Daemon and CLI binaries should be stored at `~/.ethermintd`, respectively by default. To **delete** the existing binaries and configuration, run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rm -rf ~/.emint*
|
rm -rf ~/.ethermintd
|
||||||
```
|
```
|
||||||
|
|
||||||
To clear all data except key storage (if keyring backend chosen) and then you can rerun the full node installation commands from above to start the node again.
|
To clear all data except key storage (if keyring backend chosen) and then you can rerun the full node installation commands from above to start the node again.
|
||||||
|
@ -58,12 +58,12 @@ minimum-gas-prices = ""
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create a key to hold your account
|
# Create a key to hold your account
|
||||||
ethermintcli keys add $KEY
|
ethermintd keys add $KEY
|
||||||
|
|
||||||
# Add that key into the genesis.app_state.accounts array in the genesis file
|
# Add that key into the genesis.app_state.accounts array in the genesis file
|
||||||
# NOTE: this command lets you set the number of coins. Make sure this account has some coins
|
# NOTE: this command lets you set the number of coins. Make sure this account has some coins
|
||||||
# with the genesis.app_state.staking.params.bond_denom denom, the default is staking
|
# with the genesis.app_state.staking.params.bond_denom denom, the default is staking
|
||||||
ethermintd add-genesis-account $(ethermintcli keys show validator -a) 1000000000stake,10000000000aphoton
|
ethermintd add-genesis-account $(ethermintd keys show validator -a) 1000000000stake,10000000000aphoton
|
||||||
|
|
||||||
# Generate the transaction that creates your validator
|
# Generate the transaction that creates your validator
|
||||||
ethermintd gentx --name $KEY
|
ethermintd gentx --name $KEY
|
||||||
@ -141,7 +141,7 @@ calling the `ethermintd testnet` command. This outputs a handful of files in the
|
|||||||
tree -L 3 build/
|
tree -L 3 build/
|
||||||
|
|
||||||
build/
|
build/
|
||||||
├── ethermintcli
|
├── ethermintd
|
||||||
├── ethermintd
|
├── ethermintd
|
||||||
├── gentxs
|
├── gentxs
|
||||||
│ ├── node0.json
|
│ ├── node0.json
|
||||||
@ -149,7 +149,7 @@ build/
|
|||||||
│ ├── node2.json
|
│ ├── node2.json
|
||||||
│ └── node3.json
|
│ └── node3.json
|
||||||
├── node0
|
├── node0
|
||||||
│ ├── ethermintcli
|
│ ├── ethermintd
|
||||||
│ │ ├── key_seed.json
|
│ │ ├── key_seed.json
|
||||||
│ │ └── keyring-test-cosmos
|
│ │ └── keyring-test-cosmos
|
||||||
│ └── ethermintd
|
│ └── ethermintd
|
||||||
@ -157,7 +157,7 @@ build/
|
|||||||
│ ├── data
|
│ ├── data
|
||||||
│ └── ethermintd.log
|
│ └── ethermintd.log
|
||||||
├── node1
|
├── node1
|
||||||
│ ├── ethermintcli
|
│ ├── ethermintd
|
||||||
│ │ ├── key_seed.json
|
│ │ ├── key_seed.json
|
||||||
│ │ └── keyring-test-cosmos
|
│ │ └── keyring-test-cosmos
|
||||||
│ └── ethermintd
|
│ └── ethermintd
|
||||||
@ -165,7 +165,7 @@ build/
|
|||||||
│ ├── data
|
│ ├── data
|
||||||
│ └── ethermintd.log
|
│ └── ethermintd.log
|
||||||
├── node2
|
├── node2
|
||||||
│ ├── ethermintcli
|
│ ├── ethermintd
|
||||||
│ │ ├── key_seed.json
|
│ │ ├── key_seed.json
|
||||||
│ │ └── keyring-test-cosmos
|
│ │ └── keyring-test-cosmos
|
||||||
│ └── ethermintd
|
│ └── ethermintd
|
||||||
@ -173,7 +173,7 @@ build/
|
|||||||
│ ├── data
|
│ ├── data
|
||||||
│ └── ethermintd.log
|
│ └── ethermintd.log
|
||||||
└── node3
|
└── node3
|
||||||
├── ethermintcli
|
├── ethermintd
|
||||||
│ ├── key_seed.json
|
│ ├── key_seed.json
|
||||||
│ └── keyring-test-cosmos
|
│ └── keyring-test-cosmos
|
||||||
└── ethermintd
|
└── ethermintd
|
||||||
@ -193,7 +193,7 @@ In order to see the logs of a particular node you can use the following command:
|
|||||||
docker exec ethermintdnode0 tail ethermintd.log
|
docker exec ethermintdnode0 tail ethermintd.log
|
||||||
|
|
||||||
# node 0: REST & RPC logs
|
# node 0: REST & RPC logs
|
||||||
docker exec ethermintdnode0 tail ethermintcli.log
|
docker exec ethermintdnode0 tail ethermintd.log
|
||||||
```
|
```
|
||||||
|
|
||||||
The logs for the daemon will look like:
|
The logs for the daemon will look like:
|
||||||
@ -240,8 +240,8 @@ docker logs -f ethermintdnode0
|
|||||||
|
|
||||||
To interact with the testnet via WebSockets or RPC/API, you will send your request to the corresponding ports:
|
To interact with the testnet via WebSockets or RPC/API, you will send your request to the corresponding ports:
|
||||||
|
|
||||||
| Eth JSON-RPC | Eth WS |
|
| EVM JSON-RPC | Eth Websocket |
|
||||||
|--------------|--------|
|
|--------------|---------------|
|
||||||
| `8545` | `8546` |
|
| `8545` | `8546` |
|
||||||
|
|
||||||
You can send a curl command such as:
|
You can send a curl command such as:
|
||||||
@ -258,18 +258,18 @@ Additional instructions on how to interact with the WebSocket can be found on th
|
|||||||
|
|
||||||
### Keys & Accounts
|
### Keys & Accounts
|
||||||
|
|
||||||
To interact with `ethermintcli` and start querying state or creating txs, you use the
|
To interact with `ethermintd` and start querying state or creating txs, you use the
|
||||||
`ethermintcli` directory of any given node as your `home`, for example:
|
`ethermintd` directory of any given node as your `home`, for example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli keys list --home ./build/node0/ethermintcli
|
ethermintd keys list --home ./build/node0/ethermintd
|
||||||
```
|
```
|
||||||
|
|
||||||
Now that accounts exists, you may create new accounts and send those accounts
|
Now that accounts exists, you may create new accounts and send those accounts
|
||||||
funds!
|
funds!
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
**Note**: Each node's seed is located at `./build/nodeN/ethermintcli/key_seed.json` and can be restored to the CLI using the `ethermintcli keys add --restore` command
|
**Note**: Each node's seed is located at `./build/nodeN/ethermintd/key_seed.json` and can be restored to the CLI using the `ethermintd keys add --restore` command
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Special Binaries
|
### Special Binaries
|
||||||
|
@ -32,7 +32,7 @@ ethermintd tendermint show-validator
|
|||||||
To create your validator, just use the following command:
|
To create your validator, just use the following command:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli tx staking create-validator \
|
ethermintd tx staking create-validator \
|
||||||
--amount=1000000aphoton \
|
--amount=1000000aphoton \
|
||||||
--pubkey=$(ethermintd tendermint show-validator) \
|
--pubkey=$(ethermintd tendermint show-validator) \
|
||||||
--moniker=<ethermint_validator> \
|
--moniker=<ethermint_validator> \
|
||||||
@ -51,7 +51,7 @@ When specifying commission parameters, the `commission-max-change-rate` is used
|
|||||||
:::
|
:::
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
`Min-self-delegation` is a stritly positive integer that represents the minimum amount of self-delegated voting power your validator must always have. A `min-self-delegation` of 1 means your validator will never have a self-delegation lower than `1000000aphoton`
|
`Min-self-delegation` is a strictly positive integer that represents the minimum amount of self-delegated voting power your validator must always have. A `min-self-delegation` of 1 means your validator will never have a self-delegation lower than `1000000aphoton`
|
||||||
:::
|
:::
|
||||||
|
|
||||||
You can confirm that you are in the validator set by using a third party explorer.
|
You can confirm that you are in the validator set by using a third party explorer.
|
||||||
@ -69,7 +69,7 @@ A `gentx` does three things:
|
|||||||
If you want to participate in genesis as a validator, you need to justify that
|
If you want to participate in genesis as a validator, you need to justify that
|
||||||
you have some stake at genesis, create one (or multiple) transactions to bond this stake to your validator address, and include this transaction in the genesis file.
|
you have some stake at genesis, create one (or multiple) transactions to bond this stake to your validator address, and include this transaction in the genesis file.
|
||||||
|
|
||||||
Your `cosmosvalconspub`, as shown on the section above, can be used to create a validator transaction on genesis as well.
|
Your `ethvalconspub`, as shown on the section above, can be used to create a validator transaction on genesis as well.
|
||||||
|
|
||||||
Next, craft your `ethermintd gentx` command:
|
Next, craft your `ethermintd gentx` command:
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ For more on `gentx`, use the help flag: `ethermintd gentx -h`
|
|||||||
Your validator is active if the following command returns anything:
|
Your validator is active if the following command returns anything:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ethermintcli query tendermint-validator-set | grep "$(ethermintd tendermint show-validator)"
|
ethermintd query tendermint-validator-set | grep "$(ethermintd tendermint show-validator)"
|
||||||
```
|
```
|
||||||
|
|
||||||
You should now see your validator in one of the block explorers. You are looking for the `bech32`
|
You should now see your validator in one of the block explorers. You are looking for the `bech32`
|
||||||
|
542
docs/yarn.lock
542
docs/yarn.lock
@ -2,109 +2,109 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
"@algolia/cache-browser-local-storage@4.9.2":
|
"@algolia/cache-browser-local-storage@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.9.2.tgz#c618c8bc8330610649ae5860a18542f82fc58c57"
|
resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.2.tgz#9925c7c0ce94257564b8948b60fc427c4a98124c"
|
||||||
integrity sha512-R54LWoPgwvmBR7itDKdq/ZJKv5pbtu6cVHovPU9l1QrtvZM0XcSh2c2MY8beELo+uMuTDQ007sTM8dsQ4C7Www==
|
integrity sha512-B3NInwobEAim4J4Y0mgZermoi0DCXdTT/Q+4ehLamqUqxLw8To5zc9izjg7B8JaFSQsqflRdCeRmYEv2gYDY7g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/cache-common" "4.9.2"
|
"@algolia/cache-common" "4.10.2"
|
||||||
|
|
||||||
"@algolia/cache-common@4.9.2":
|
"@algolia/cache-common@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.9.2.tgz#00eddf800d42c03b339465fdcdb7fbe49a3054aa"
|
resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.2.tgz#0113419518419895118d132bed4115345a865ce3"
|
||||||
integrity sha512-50EffDYcFi08CpSvYAgRUplqj3/xaAqP4S5wuHG7Gr1ZLQpKBP7GxmPuFyjZgj7thOhsUS5DH8efVR/IpIrSBw==
|
integrity sha512-xcGbV0+6gLu2C7XoJdD+Pp6wWjROle6PNDsa6O21vS7fw1a03xb2bEnFdl1U31bs69P1z8IRy3h+8RVBouvhhw==
|
||||||
|
|
||||||
"@algolia/cache-in-memory@4.9.2":
|
"@algolia/cache-in-memory@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.9.2.tgz#9181de93e300a58722ee6c29bc33261c411f9b03"
|
resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.2.tgz#2d34d4155425b385d19ff197a8943a4b5084c790"
|
||||||
integrity sha512-RF4Z6XFOfS5G/PwtUddBoLEwTBy1HsimoXRpglnGftJH24alL9X2jCuCz9t12ND2o5eDDlbNVAqLfu8T0UQRQg==
|
integrity sha512-zPIcxHQEJXy+M35A+v9Y5u5BAQOKR2aFK0kYpAdW/OrgxYcrFHtVCxwIWB/ZhGbkDtzCW8/8tJeddcD5YsHX9Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/cache-common" "4.9.2"
|
"@algolia/cache-common" "4.10.2"
|
||||||
|
|
||||||
"@algolia/client-account@4.9.2":
|
"@algolia/client-account@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.9.2.tgz#a9ac94f951b231760f1615e5ac9409d1f7c7b89a"
|
resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.2.tgz#c53d18d4f57ab5343c21e0ed795421964ba0cbb9"
|
||||||
integrity sha512-E67xDSaHed38fIdVT/Jrnr/HzohVoRfNGhTAKJG4sTy6K5AkrqzM/7ZRJp56bU38ZG4frvdQfxC/oGCFkn6bEA==
|
integrity sha512-iuIU+xUtjgR9p4Hpujlr8mePDPSrVIk3peg+RAUhxniLBDaI+OhgHyhP6Lmh9flWk+JfRg91Rhk46xuxMLqwfA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/client-common" "4.9.2"
|
"@algolia/client-common" "4.10.2"
|
||||||
"@algolia/client-search" "4.9.2"
|
"@algolia/client-search" "4.10.2"
|
||||||
"@algolia/transporter" "4.9.2"
|
"@algolia/transporter" "4.10.2"
|
||||||
|
|
||||||
"@algolia/client-analytics@4.9.2":
|
"@algolia/client-analytics@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.9.2.tgz#d854defbfd5e1640d2b0abf4bb6d2dcd7afc09e1"
|
resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.2.tgz#93c881cfb9e5df389725d821327fa801f1baa2c6"
|
||||||
integrity sha512-zexfopj1zDgNfXHgl3e4S4ERlulKUTdnFgDvGBhsqyW/bDyqZ410HZhOuzVZE5SxJdy0qa0hCadmwVNgu1ND6A==
|
integrity sha512-u47J65NHs0fMryDrMeuLMGjXDOKt/muF9WlfbMslT2Cvdd7PZwl9KYnT7xMhnmBB8TDiDMmEQkDykhnCOnwVNw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/client-common" "4.9.2"
|
"@algolia/client-common" "4.10.2"
|
||||||
"@algolia/client-search" "4.9.2"
|
"@algolia/client-search" "4.10.2"
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
"@algolia/transporter" "4.9.2"
|
"@algolia/transporter" "4.10.2"
|
||||||
|
|
||||||
"@algolia/client-common@4.9.2":
|
"@algolia/client-common@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.9.2.tgz#c75adccdc945ea21c484bd102354c0dd5166f795"
|
resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.2.tgz#a715e8feb2a2b6ea38765f53e8ae6ffc4ed80aba"
|
||||||
integrity sha512-++2h3FiHiRApAkD+Dxk+iW6wpvHjGZ5gSkDCYz4xVPsQdiGhZgTN34i+gjq6DeR3okax5HJ7hlfJw10aCuiB8g==
|
integrity sha512-sfgZCv9ha9aHbe3ErAYb1blg2qx4XTLvQqP1jq8asU75rrH9XBTtSzQQO43GlArwhtwCHLgcWquN3WgPlLzkiQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
"@algolia/transporter" "4.9.2"
|
"@algolia/transporter" "4.10.2"
|
||||||
|
|
||||||
"@algolia/client-recommendation@4.9.2":
|
"@algolia/client-personalization@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.9.2.tgz#b7de178e1d8146da5255afe3ccbd0ff69bd687d7"
|
resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.2.tgz#89d761bcf60ce13b8565c2ae8ab644c3a3d114c8"
|
||||||
integrity sha512-BbcC+7XiPoAwPferoPgskMUIvioTd7+XoNT4n3sQsoe8YqNJ3u/ngrAxKmpcrEf13BpFT7XBhPm2FQAhlZpvug==
|
integrity sha512-2UhUNo/czfA/keOC3+vFyMnFGV/E1Zkm+ek9Fsk/9miS39UMhx2CmH5vKSIJ7jxLSin7zBaCwKt65phfYty1pg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/client-common" "4.9.2"
|
"@algolia/client-common" "4.10.2"
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
"@algolia/transporter" "4.9.2"
|
"@algolia/transporter" "4.10.2"
|
||||||
|
|
||||||
"@algolia/client-search@4.9.2":
|
"@algolia/client-search@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.9.2.tgz#2253ddacb75e768919ec3a6c969a409f2dbda2aa"
|
resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.2.tgz#ad281b04ec4e6eaff68fb5be330f0bdf965ce011"
|
||||||
integrity sha512-z+wBEcMCFBzn+7s0lhk4miFR0fm5X4QXlutPVhSXACHD+uznRoRbmu31k7ZB6CgqqjT8E8Lsjif6rWX+wwtgyA==
|
integrity sha512-ZdOh6XS6Y9bcekfG4y0VhdoIYfsTounsgXX4Bt3X2RCcmY3uotgaq2EVY58E6q6nvfgBfPHW18+AZCHKTWHAAw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/client-common" "4.9.2"
|
"@algolia/client-common" "4.10.2"
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
"@algolia/transporter" "4.9.2"
|
"@algolia/transporter" "4.10.2"
|
||||||
|
|
||||||
"@algolia/logger-common@4.9.2":
|
"@algolia/logger-common@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.9.2.tgz#8a5d7c060bf7d514bbf186fbc5bae16a59acb8f1"
|
resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.2.tgz#f28e966a6b878af2917ed2e1518f46650a6fb8ad"
|
||||||
integrity sha512-D9wxMCLRLZtz0BZ8yecDDGSDkiq6M2KImdckZ2TPcSqQPGsypInSvFSKVa4os//IkmE9NFVC2o1kFYedZmzhZg==
|
integrity sha512-UJaU6arzmW+FT5fCv5NIbxNMtEoGcf+UENmZxxu7k7UWPARR2XL4ljJ45Jv14Z5dlz32LXWtR1PRmNfkDMk22Q==
|
||||||
|
|
||||||
"@algolia/logger-console@4.9.2":
|
"@algolia/logger-console@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.9.2.tgz#da382309350e1c114e2a0c8fc92b3a10c408c189"
|
resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.2.tgz#9d3dcbb077242db92f0f0a1795ec95c3bc839599"
|
||||||
integrity sha512-HM5PQ1cvUbMFuAo493f1CpYNFteVHrUtM/sGOcS8zndML2ix72Qvyih7hEGGawHy2E2hYSNYcSHfL/gahTKiCg==
|
integrity sha512-JrCrZ7CGs/TsyNR2AWe9Vdd6rsuxfvfcpqbu+CY7LBUYEnV8GERkf7FnDNaKVNsFJqClILCGh3U8CzQ1G5L+kA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/logger-common" "4.9.2"
|
"@algolia/logger-common" "4.10.2"
|
||||||
|
|
||||||
"@algolia/requester-browser-xhr@4.9.2":
|
"@algolia/requester-browser-xhr@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.9.2.tgz#227e530c2c20a6a1db3ca68bf76ec43001d0decd"
|
resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.2.tgz#2286e2f10fff3651f719b8d7d3defc8c032fcce0"
|
||||||
integrity sha512-gOeI5ZmPt/rayRYf1Sgn3/Yp3MKuVEypibp1CyBpie/q0CHA08O4RoiY93qnG83dfy9tkfmYqKCdXlBednGVbg==
|
integrity sha512-LveaAp7/oCBotv1aZ4VHz8fCcJA7v/28ayh+Ljlm+hYXsxgs6NAYKz7iBpxGN7q5MV8GM+MThRYNFoT0cHTMxQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
|
|
||||||
"@algolia/requester-common@4.9.2":
|
"@algolia/requester-common@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.9.2.tgz#f28edf021ce1f02c6fad7f205d86d7458ff0620a"
|
resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.2.tgz#8b62f0848454ec5b07bd3599f5fb2b87ec7c4de8"
|
||||||
integrity sha512-B1cb69f5zbDgUQifx/ZDqFK9dpOSsg24Mq/5YlqkP3EyAVPVBooeDLUDSrgBLq2j1clUQ9H3yPwX8uRTzR/eYw==
|
integrity sha512-3J2W0fAaURLGK0lEGeNb8eWJnQcsu+oIcfJTCIYkYT5T9w21M65kUUyD9QSf/K137qQts3tzGniUR3LxfovlXA==
|
||||||
|
|
||||||
"@algolia/requester-node-http@4.9.2":
|
"@algolia/requester-node-http@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.9.2.tgz#3ad600d653ff4c4342e4710303ef467269166c45"
|
resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.2.tgz#edb691e34e18aacc15107193319e1a712e024649"
|
||||||
integrity sha512-YBm4R4gUmlXFnPAxQAZEWOSq6xkWKN7mAJWvM8V+2W9a4qlJnxXj+fi7EJytAR8qc3vDXRWcmzYnsS246WhJ8g==
|
integrity sha512-IBqsalCGgn0CrOP1PKRB5rufEOvHlrSQUFEGXZ8mxmE/zU8CLX2LKqdHbEFeNDLFl+l+8HW5BGVDGD2rvG+hSg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
|
|
||||||
"@algolia/transporter@4.9.2":
|
"@algolia/transporter@4.10.2":
|
||||||
version "4.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.9.2.tgz#e3016b211c6fddf32d510cae8e383ba378ecceb0"
|
resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.2.tgz#ae0fa7c99b9bf8efa5ac83843558be1074e7c045"
|
||||||
integrity sha512-YvQKRU76HR850X1DK1OgcrjvvCyp/8FaYc74LHOAAuc9awcNuJY4NZjxHMU/Mm8TT4UKKX9cjGTrP/WJpu5VxA==
|
integrity sha512-I3QDRSookQtPSUEnxT2XCShhipCT4beJBpWhteNwMrWQF/SqTsveqSR6bX0G49lDh9MOmYrOlCegteuKuT/tEw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/cache-common" "4.9.2"
|
"@algolia/cache-common" "4.10.2"
|
||||||
"@algolia/logger-common" "4.9.2"
|
"@algolia/logger-common" "4.10.2"
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
|
|
||||||
"@babel/code-frame@^7.14.5":
|
"@babel/code-frame@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.5"
|
||||||
@ -113,22 +113,22 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@babel/highlight" "^7.14.5"
|
"@babel/highlight" "^7.14.5"
|
||||||
|
|
||||||
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5":
|
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.5.tgz#8ef4c18e58e801c5c95d3c1c0f2874a2680fadea"
|
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08"
|
||||||
integrity sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==
|
integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==
|
||||||
|
|
||||||
"@babel/core@^7.11.0", "@babel/core@^7.8.4":
|
"@babel/core@^7.11.0", "@babel/core@^7.8.4":
|
||||||
version "7.14.5"
|
version "7.14.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.5.tgz#d281f46a9905f07d1b3bf71ead54d9c7d89cb1e3"
|
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab"
|
||||||
integrity sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg==
|
integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.14.5"
|
"@babel/code-frame" "^7.14.5"
|
||||||
"@babel/generator" "^7.14.5"
|
"@babel/generator" "^7.14.5"
|
||||||
"@babel/helper-compilation-targets" "^7.14.5"
|
"@babel/helper-compilation-targets" "^7.14.5"
|
||||||
"@babel/helper-module-transforms" "^7.14.5"
|
"@babel/helper-module-transforms" "^7.14.5"
|
||||||
"@babel/helpers" "^7.14.5"
|
"@babel/helpers" "^7.14.6"
|
||||||
"@babel/parser" "^7.14.5"
|
"@babel/parser" "^7.14.6"
|
||||||
"@babel/template" "^7.14.5"
|
"@babel/template" "^7.14.5"
|
||||||
"@babel/traverse" "^7.14.5"
|
"@babel/traverse" "^7.14.5"
|
||||||
"@babel/types" "^7.14.5"
|
"@babel/types" "^7.14.5"
|
||||||
@ -174,9 +174,9 @@
|
|||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/helper-create-class-features-plugin@^7.14.5":
|
"@babel/helper-create-class-features-plugin@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.5.tgz#8842ec495516dd1ed8f6c572be92ba78b1e9beef"
|
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542"
|
||||||
integrity sha512-Uq9z2e7ZtcnDMirRqAGLRaLwJn+Lrh388v5ETrR3pALJnElVh2zqQmdbz4W2RUJYohAPh2mtyPUgyMHMzXMncQ==
|
integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-annotate-as-pure" "^7.14.5"
|
"@babel/helper-annotate-as-pure" "^7.14.5"
|
||||||
"@babel/helper-function-name" "^7.14.5"
|
"@babel/helper-function-name" "^7.14.5"
|
||||||
@ -238,9 +238,9 @@
|
|||||||
"@babel/types" "^7.14.5"
|
"@babel/types" "^7.14.5"
|
||||||
|
|
||||||
"@babel/helper-member-expression-to-functions@^7.14.5":
|
"@babel/helper-member-expression-to-functions@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz#d5c70e4ad13b402c95156c7a53568f504e2fb7b8"
|
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970"
|
||||||
integrity sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==
|
integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.14.5"
|
"@babel/types" "^7.14.5"
|
||||||
|
|
||||||
@ -337,10 +337,10 @@
|
|||||||
"@babel/traverse" "^7.14.5"
|
"@babel/traverse" "^7.14.5"
|
||||||
"@babel/types" "^7.14.5"
|
"@babel/types" "^7.14.5"
|
||||||
|
|
||||||
"@babel/helpers@^7.14.5":
|
"@babel/helpers@^7.14.6":
|
||||||
version "7.14.5"
|
version "7.14.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.5.tgz#4870f8d9a6fdbbd65e5674a3558b4ff7fef0d9b2"
|
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635"
|
||||||
integrity sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q==
|
integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/template" "^7.14.5"
|
"@babel/template" "^7.14.5"
|
||||||
"@babel/traverse" "^7.14.5"
|
"@babel/traverse" "^7.14.5"
|
||||||
@ -355,10 +355,10 @@
|
|||||||
chalk "^2.0.0"
|
chalk "^2.0.0"
|
||||||
js-tokens "^4.0.0"
|
js-tokens "^4.0.0"
|
||||||
|
|
||||||
"@babel/parser@^7.14.5", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6":
|
"@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.5.tgz#4cd2f346261061b2518873ffecdf1612cb032829"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595"
|
||||||
integrity sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==
|
integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==
|
||||||
|
|
||||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5":
|
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.5"
|
||||||
@ -369,10 +369,10 @@
|
|||||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
||||||
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
||||||
|
|
||||||
"@babel/plugin-proposal-async-generator-functions@^7.14.5":
|
"@babel/plugin-proposal-async-generator-functions@^7.14.7":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz#4024990e3dd74181f4f426ea657769ff49a2df39"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace"
|
||||||
integrity sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==
|
integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
"@babel/helper-remap-async-to-generator" "^7.14.5"
|
"@babel/helper-remap-async-to-generator" "^7.14.5"
|
||||||
@ -452,12 +452,12 @@
|
|||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||||
|
|
||||||
"@babel/plugin-proposal-object-rest-spread@^7.14.5":
|
"@babel/plugin-proposal-object-rest-spread@^7.14.7":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz#e581d5ccdfa187ea6ed73f56c6a21c1580b90fbf"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363"
|
||||||
integrity sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==
|
integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/compat-data" "^7.14.5"
|
"@babel/compat-data" "^7.14.7"
|
||||||
"@babel/helper-compilation-targets" "^7.14.5"
|
"@babel/helper-compilation-targets" "^7.14.5"
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
||||||
@ -668,10 +668,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
|
|
||||||
"@babel/plugin-transform-destructuring@^7.14.5":
|
"@babel/plugin-transform-destructuring@^7.14.7":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz#d32ad19ff1a6da1e861dc62720d80d9776e3bf35"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576"
|
||||||
integrity sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==
|
integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
|
|
||||||
@ -765,10 +765,10 @@
|
|||||||
"@babel/helper-module-transforms" "^7.14.5"
|
"@babel/helper-module-transforms" "^7.14.5"
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
|
|
||||||
"@babel/plugin-transform-named-capturing-groups-regex@^7.14.5":
|
"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz#d537e8ee083ee6f6aa4f4eef9d2081d555746e4c"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz#60c06892acf9df231e256c24464bfecb0908fd4e"
|
||||||
integrity sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==
|
integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
"@babel/helper-create-regexp-features-plugin" "^7.14.5"
|
||||||
|
|
||||||
@ -834,10 +834,10 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
|
|
||||||
"@babel/plugin-transform-spread@^7.14.5":
|
"@babel/plugin-transform-spread@^7.14.6":
|
||||||
version "7.14.5"
|
version "7.14.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.5.tgz#bd269fb4119754d2ce7f4cc39a96b4f71baae356"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"
|
||||||
integrity sha512-/3iqoQdiWergnShZYl0xACb4ADeYCJ7X/RgmwtXshn6cIvautRPAFzhd58frQlokLO6Jb4/3JXvmm6WNTPtiTw==
|
integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
|
||||||
@ -879,16 +879,16 @@
|
|||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
|
|
||||||
"@babel/preset-env@^7.11.0":
|
"@babel/preset-env@^7.11.0":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.5.tgz#c0c84e763661fd0e74292c3d511cb33b0c668997"
|
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.7.tgz#5c70b22d4c2d893b03d8c886a5c17422502b932a"
|
||||||
integrity sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==
|
integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/compat-data" "^7.14.5"
|
"@babel/compat-data" "^7.14.7"
|
||||||
"@babel/helper-compilation-targets" "^7.14.5"
|
"@babel/helper-compilation-targets" "^7.14.5"
|
||||||
"@babel/helper-plugin-utils" "^7.14.5"
|
"@babel/helper-plugin-utils" "^7.14.5"
|
||||||
"@babel/helper-validator-option" "^7.14.5"
|
"@babel/helper-validator-option" "^7.14.5"
|
||||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5"
|
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5"
|
||||||
"@babel/plugin-proposal-async-generator-functions" "^7.14.5"
|
"@babel/plugin-proposal-async-generator-functions" "^7.14.7"
|
||||||
"@babel/plugin-proposal-class-properties" "^7.14.5"
|
"@babel/plugin-proposal-class-properties" "^7.14.5"
|
||||||
"@babel/plugin-proposal-class-static-block" "^7.14.5"
|
"@babel/plugin-proposal-class-static-block" "^7.14.5"
|
||||||
"@babel/plugin-proposal-dynamic-import" "^7.14.5"
|
"@babel/plugin-proposal-dynamic-import" "^7.14.5"
|
||||||
@ -897,7 +897,7 @@
|
|||||||
"@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
|
"@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
|
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
|
||||||
"@babel/plugin-proposal-numeric-separator" "^7.14.5"
|
"@babel/plugin-proposal-numeric-separator" "^7.14.5"
|
||||||
"@babel/plugin-proposal-object-rest-spread" "^7.14.5"
|
"@babel/plugin-proposal-object-rest-spread" "^7.14.7"
|
||||||
"@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
|
"@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
|
||||||
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
"@babel/plugin-proposal-optional-chaining" "^7.14.5"
|
||||||
"@babel/plugin-proposal-private-methods" "^7.14.5"
|
"@babel/plugin-proposal-private-methods" "^7.14.5"
|
||||||
@ -923,7 +923,7 @@
|
|||||||
"@babel/plugin-transform-block-scoping" "^7.14.5"
|
"@babel/plugin-transform-block-scoping" "^7.14.5"
|
||||||
"@babel/plugin-transform-classes" "^7.14.5"
|
"@babel/plugin-transform-classes" "^7.14.5"
|
||||||
"@babel/plugin-transform-computed-properties" "^7.14.5"
|
"@babel/plugin-transform-computed-properties" "^7.14.5"
|
||||||
"@babel/plugin-transform-destructuring" "^7.14.5"
|
"@babel/plugin-transform-destructuring" "^7.14.7"
|
||||||
"@babel/plugin-transform-dotall-regex" "^7.14.5"
|
"@babel/plugin-transform-dotall-regex" "^7.14.5"
|
||||||
"@babel/plugin-transform-duplicate-keys" "^7.14.5"
|
"@babel/plugin-transform-duplicate-keys" "^7.14.5"
|
||||||
"@babel/plugin-transform-exponentiation-operator" "^7.14.5"
|
"@babel/plugin-transform-exponentiation-operator" "^7.14.5"
|
||||||
@ -935,7 +935,7 @@
|
|||||||
"@babel/plugin-transform-modules-commonjs" "^7.14.5"
|
"@babel/plugin-transform-modules-commonjs" "^7.14.5"
|
||||||
"@babel/plugin-transform-modules-systemjs" "^7.14.5"
|
"@babel/plugin-transform-modules-systemjs" "^7.14.5"
|
||||||
"@babel/plugin-transform-modules-umd" "^7.14.5"
|
"@babel/plugin-transform-modules-umd" "^7.14.5"
|
||||||
"@babel/plugin-transform-named-capturing-groups-regex" "^7.14.5"
|
"@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7"
|
||||||
"@babel/plugin-transform-new-target" "^7.14.5"
|
"@babel/plugin-transform-new-target" "^7.14.5"
|
||||||
"@babel/plugin-transform-object-super" "^7.14.5"
|
"@babel/plugin-transform-object-super" "^7.14.5"
|
||||||
"@babel/plugin-transform-parameters" "^7.14.5"
|
"@babel/plugin-transform-parameters" "^7.14.5"
|
||||||
@ -943,7 +943,7 @@
|
|||||||
"@babel/plugin-transform-regenerator" "^7.14.5"
|
"@babel/plugin-transform-regenerator" "^7.14.5"
|
||||||
"@babel/plugin-transform-reserved-words" "^7.14.5"
|
"@babel/plugin-transform-reserved-words" "^7.14.5"
|
||||||
"@babel/plugin-transform-shorthand-properties" "^7.14.5"
|
"@babel/plugin-transform-shorthand-properties" "^7.14.5"
|
||||||
"@babel/plugin-transform-spread" "^7.14.5"
|
"@babel/plugin-transform-spread" "^7.14.6"
|
||||||
"@babel/plugin-transform-sticky-regex" "^7.14.5"
|
"@babel/plugin-transform-sticky-regex" "^7.14.5"
|
||||||
"@babel/plugin-transform-template-literals" "^7.14.5"
|
"@babel/plugin-transform-template-literals" "^7.14.5"
|
||||||
"@babel/plugin-transform-typeof-symbol" "^7.14.5"
|
"@babel/plugin-transform-typeof-symbol" "^7.14.5"
|
||||||
@ -954,7 +954,7 @@
|
|||||||
babel-plugin-polyfill-corejs2 "^0.2.2"
|
babel-plugin-polyfill-corejs2 "^0.2.2"
|
||||||
babel-plugin-polyfill-corejs3 "^0.2.2"
|
babel-plugin-polyfill-corejs3 "^0.2.2"
|
||||||
babel-plugin-polyfill-regenerator "^0.2.2"
|
babel-plugin-polyfill-regenerator "^0.2.2"
|
||||||
core-js-compat "^3.14.0"
|
core-js-compat "^3.15.0"
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/preset-modules@^0.1.4":
|
"@babel/preset-modules@^0.1.4":
|
||||||
@ -969,9 +969,9 @@
|
|||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
|
|
||||||
"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4":
|
"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4":
|
||||||
version "7.14.5"
|
version "7.14.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.5.tgz#665450911c6031af38f81db530f387ec04cd9a98"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d"
|
||||||
integrity sha512-121rumjddw9c3NCQ55KGkyE1h/nzWhU/owjhw0l4mQrkzz4x9SGS1X8gFLraHwX7td3Yo4QTL+qj0NcIzN87BA==
|
integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
@ -985,16 +985,16 @@
|
|||||||
"@babel/types" "^7.14.5"
|
"@babel/types" "^7.14.5"
|
||||||
|
|
||||||
"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5":
|
"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753"
|
||||||
integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==
|
integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.14.5"
|
"@babel/code-frame" "^7.14.5"
|
||||||
"@babel/generator" "^7.14.5"
|
"@babel/generator" "^7.14.5"
|
||||||
"@babel/helper-function-name" "^7.14.5"
|
"@babel/helper-function-name" "^7.14.5"
|
||||||
"@babel/helper-hoist-variables" "^7.14.5"
|
"@babel/helper-hoist-variables" "^7.14.5"
|
||||||
"@babel/helper-split-export-declaration" "^7.14.5"
|
"@babel/helper-split-export-declaration" "^7.14.5"
|
||||||
"@babel/parser" "^7.14.5"
|
"@babel/parser" "^7.14.7"
|
||||||
"@babel/types" "^7.14.5"
|
"@babel/types" "^7.14.5"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
@ -1025,31 +1025,6 @@
|
|||||||
tiny-cookie "^2.3.1"
|
tiny-cookie "^2.3.1"
|
||||||
vue "^2.6.10"
|
vue "^2.6.10"
|
||||||
|
|
||||||
"@jsdevtools/ez-spawn@^3.0.4":
|
|
||||||
version "3.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@jsdevtools/ez-spawn/-/ez-spawn-3.0.4.tgz#5641eb26fee6d31ec29f6788eba849470c52c7ff"
|
|
||||||
integrity sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==
|
|
||||||
dependencies:
|
|
||||||
call-me-maybe "^1.0.1"
|
|
||||||
cross-spawn "^7.0.3"
|
|
||||||
string-argv "^0.3.1"
|
|
||||||
type-detect "^4.0.8"
|
|
||||||
|
|
||||||
"@jsdevtools/npm-publish@^1.4.3":
|
|
||||||
version "1.4.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@jsdevtools/npm-publish/-/npm-publish-1.4.3.tgz#47074543fa6b97c4abcd8135c89d3706fb8d2040"
|
|
||||||
integrity sha512-EdmrDPCtVZIDeTmLhQFmuwiEXtRZfQh6KwM7uZ//Zpi4FAXPCKLgOxBggbYDpsmobpGOVlWDhhUE5HMhoYJgmQ==
|
|
||||||
dependencies:
|
|
||||||
"@jsdevtools/ez-spawn" "^3.0.4"
|
|
||||||
"@jsdevtools/ono" "^7.1.3"
|
|
||||||
command-line-args "^5.1.1"
|
|
||||||
semver "^7.3.4"
|
|
||||||
|
|
||||||
"@jsdevtools/ono@^7.1.3":
|
|
||||||
version "7.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
|
|
||||||
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
|
|
||||||
|
|
||||||
"@mrmlnc/readdir-enhanced@^2.2.1":
|
"@mrmlnc/readdir-enhanced@^2.2.1":
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
|
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
|
||||||
@ -1094,9 +1069,9 @@
|
|||||||
integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
|
integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "15.12.2"
|
version "15.12.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.4.tgz#e1cf817d70a1e118e81922c4ff6683ce9d422e26"
|
||||||
integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==
|
integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==
|
||||||
|
|
||||||
"@types/q@^1.5.1":
|
"@types/q@^1.5.1":
|
||||||
version "1.5.4"
|
version "1.5.4"
|
||||||
@ -1226,14 +1201,15 @@
|
|||||||
camelcase "^5.0.0"
|
camelcase "^5.0.0"
|
||||||
|
|
||||||
"@vue/component-compiler-utils@^3.1.0":
|
"@vue/component-compiler-utils@^3.1.0":
|
||||||
version "3.2.1"
|
version "3.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.1.tgz#c3e3cb85ea80cc157eeaffe128a25dfe77e2f326"
|
resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460"
|
||||||
integrity sha512-Mci9WJYLRjyJEBkGHMPxZ1ihJ9l6gOy2Gr6hpYZUNpQoe5+nbpeb3w00aP+PSHJygCF+fxJsqp7Af1zGDITzuw==
|
integrity sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==
|
||||||
dependencies:
|
dependencies:
|
||||||
consolidate "^0.15.1"
|
consolidate "^0.15.1"
|
||||||
hash-sum "^1.0.2"
|
hash-sum "^1.0.2"
|
||||||
lru-cache "^4.1.2"
|
lru-cache "^4.1.2"
|
||||||
merge-source-map "^1.1.0"
|
merge-source-map "^1.1.0"
|
||||||
|
postcss "^7.0.36"
|
||||||
postcss-selector-parser "^6.0.2"
|
postcss-selector-parser "^6.0.2"
|
||||||
source-map "~0.6.1"
|
source-map "~0.6.1"
|
||||||
vue-template-es2015-compiler "^1.9.0"
|
vue-template-es2015-compiler "^1.9.0"
|
||||||
@ -1599,24 +1575,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.9.2"
|
version "4.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.9.2.tgz#4aa1810736ff67b0e3b2e7e447fc84d8519bf877"
|
resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.2.tgz#23e88c71cb381d5b59430baa5d417186cc8ff683"
|
||||||
integrity sha512-Njdx8Bg8q73qnzKj00BxVbFFVvI+WSxirWKmSz2nmJ0xiMTizLxpSxQO2ODtCHWSDsFMqb04sB2tzoSrJPlpUg==
|
integrity sha512-BAYCe97XRfO15irJKBRjBnrp9tSqN0jppklLIXKdtUcXlibcPQtuAeGUP2cPiz6bJd3ISuoYzLFNt4/fQYtLMw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@algolia/cache-browser-local-storage" "4.9.2"
|
"@algolia/cache-browser-local-storage" "4.10.2"
|
||||||
"@algolia/cache-common" "4.9.2"
|
"@algolia/cache-common" "4.10.2"
|
||||||
"@algolia/cache-in-memory" "4.9.2"
|
"@algolia/cache-in-memory" "4.10.2"
|
||||||
"@algolia/client-account" "4.9.2"
|
"@algolia/client-account" "4.10.2"
|
||||||
"@algolia/client-analytics" "4.9.2"
|
"@algolia/client-analytics" "4.10.2"
|
||||||
"@algolia/client-common" "4.9.2"
|
"@algolia/client-common" "4.10.2"
|
||||||
"@algolia/client-recommendation" "4.9.2"
|
"@algolia/client-personalization" "4.10.2"
|
||||||
"@algolia/client-search" "4.9.2"
|
"@algolia/client-search" "4.10.2"
|
||||||
"@algolia/logger-common" "4.9.2"
|
"@algolia/logger-common" "4.10.2"
|
||||||
"@algolia/logger-console" "4.9.2"
|
"@algolia/logger-console" "4.10.2"
|
||||||
"@algolia/requester-browser-xhr" "4.9.2"
|
"@algolia/requester-browser-xhr" "4.10.2"
|
||||||
"@algolia/requester-common" "4.9.2"
|
"@algolia/requester-common" "4.10.2"
|
||||||
"@algolia/requester-node-http" "4.9.2"
|
"@algolia/requester-node-http" "4.10.2"
|
||||||
"@algolia/transporter" "4.9.2"
|
"@algolia/transporter" "4.10.2"
|
||||||
|
|
||||||
alphanum-sort@^1.0.0:
|
alphanum-sort@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
@ -1689,7 +1665,7 @@ anymatch@^2.0.0:
|
|||||||
micromatch "^3.1.4"
|
micromatch "^3.1.4"
|
||||||
normalize-path "^2.1.1"
|
normalize-path "^2.1.1"
|
||||||
|
|
||||||
anymatch@~3.1.1:
|
anymatch@~3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
||||||
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
||||||
@ -1729,11 +1705,6 @@ arr-union@^3.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
|
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
|
||||||
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
|
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
|
||||||
|
|
||||||
array-back@^3.0.1:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
|
|
||||||
integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
|
|
||||||
|
|
||||||
array-flatten@1.1.1:
|
array-flatten@1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
||||||
@ -1904,12 +1875,12 @@ babel-plugin-polyfill-corejs2@^0.2.2:
|
|||||||
semver "^6.1.1"
|
semver "^6.1.1"
|
||||||
|
|
||||||
babel-plugin-polyfill-corejs3@^0.2.2:
|
babel-plugin-polyfill-corejs3@^0.2.2:
|
||||||
version "0.2.2"
|
version "0.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5"
|
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b"
|
||||||
integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==
|
integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
"@babel/helper-define-polyfill-provider" "^0.2.2"
|
||||||
core-js-compat "^3.9.1"
|
core-js-compat "^3.14.0"
|
||||||
|
|
||||||
babel-plugin-polyfill-regenerator@^0.2.2:
|
babel-plugin-polyfill-regenerator@^0.2.2:
|
||||||
version "0.2.2"
|
version "0.2.2"
|
||||||
@ -2328,9 +2299,9 @@ caniuse-api@^3.0.0:
|
|||||||
lodash.uniq "^4.5.0"
|
lodash.uniq "^4.5.0"
|
||||||
|
|
||||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
|
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
|
||||||
version "1.0.30001236"
|
version "1.0.30001239"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz#0a80de4cdf62e1770bb46a30d884fc8d633e3958"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz#66e8669985bb2cb84ccb10f68c25ce6dd3e4d2b8"
|
||||||
integrity sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ==
|
integrity sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==
|
||||||
|
|
||||||
caseless@~0.12.0:
|
caseless@~0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
@ -2416,19 +2387,19 @@ chokidar@^2.0.3, chokidar@^2.1.8:
|
|||||||
fsevents "^1.2.7"
|
fsevents "^1.2.7"
|
||||||
|
|
||||||
chokidar@^3.4.1:
|
chokidar@^3.4.1:
|
||||||
version "3.5.1"
|
version "3.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
|
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
|
||||||
integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
|
integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
anymatch "~3.1.1"
|
anymatch "~3.1.2"
|
||||||
braces "~3.0.2"
|
braces "~3.0.2"
|
||||||
glob-parent "~5.1.0"
|
glob-parent "~5.1.2"
|
||||||
is-binary-path "~2.1.0"
|
is-binary-path "~2.1.0"
|
||||||
is-glob "~4.0.1"
|
is-glob "~4.0.1"
|
||||||
normalize-path "~3.0.0"
|
normalize-path "~3.0.0"
|
||||||
readdirp "~3.5.0"
|
readdirp "~3.6.0"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.1"
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
chownr@^1.1.1:
|
chownr@^1.1.1:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
@ -2579,16 +2550,6 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
|
|||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
command-line-args@^5.1.1:
|
|
||||||
version "5.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a"
|
|
||||||
integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==
|
|
||||||
dependencies:
|
|
||||||
array-back "^3.0.1"
|
|
||||||
find-replace "^3.0.0"
|
|
||||||
lodash.camelcase "^4.3.0"
|
|
||||||
typical "^4.0.0"
|
|
||||||
|
|
||||||
commander@2.17.x:
|
commander@2.17.x:
|
||||||
version "2.17.1"
|
version "2.17.1"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
|
||||||
@ -2709,9 +2670,9 @@ content-type@~1.0.4:
|
|||||||
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
||||||
|
|
||||||
convert-source-map@^1.7.0:
|
convert-source-map@^1.7.0:
|
||||||
version "1.7.0"
|
version "1.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
|
||||||
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
|
integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.1.1"
|
safe-buffer "~5.1.1"
|
||||||
|
|
||||||
@ -2760,18 +2721,18 @@ copy-webpack-plugin@^5.0.2:
|
|||||||
serialize-javascript "^4.0.0"
|
serialize-javascript "^4.0.0"
|
||||||
webpack-log "^2.0.0"
|
webpack-log "^2.0.0"
|
||||||
|
|
||||||
core-js-compat@^3.14.0, core-js-compat@^3.6.5, core-js-compat@^3.9.1:
|
core-js-compat@^3.14.0, core-js-compat@^3.15.0, core-js-compat@^3.6.5:
|
||||||
version "3.14.0"
|
version "3.15.1"
|
||||||
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5"
|
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.1.tgz#1afe233716d37ee021956ef097594071b2b585a7"
|
||||||
integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==
|
integrity sha512-xGhzYMX6y7oEGQGAJmP2TmtBLvR4nZmRGEcFa3ubHOq5YEp51gGN9AovVa0AoujGZIq+Wm6dISiYyGNfdflYww==
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.16.6"
|
browserslist "^4.16.6"
|
||||||
semver "7.0.0"
|
semver "7.0.0"
|
||||||
|
|
||||||
core-js@^3.6.4, core-js@^3.6.5:
|
core-js@^3.6.4, core-js@^3.6.5:
|
||||||
version "3.14.0"
|
version "3.15.1"
|
||||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c"
|
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.1.tgz#6c08ab88abdf56545045ccf5fd81f47f407e7f1a"
|
||||||
integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA==
|
integrity sha512-h8VbZYnc9pDzueiS2610IULDkpFFPunHwIpl8yRwFahAEEdSpHlTy3h3z3rKq5h11CaUdBEeRViu9AYvbxiMeg==
|
||||||
|
|
||||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
@ -2830,15 +2791,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
|
|||||||
shebang-command "^1.2.0"
|
shebang-command "^1.2.0"
|
||||||
which "^1.2.9"
|
which "^1.2.9"
|
||||||
|
|
||||||
cross-spawn@^7.0.3:
|
|
||||||
version "7.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
|
||||||
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
|
||||||
dependencies:
|
|
||||||
path-key "^3.1.0"
|
|
||||||
shebang-command "^2.0.0"
|
|
||||||
which "^2.0.1"
|
|
||||||
|
|
||||||
crypto-browserify@^3.11.0:
|
crypto-browserify@^3.11.0:
|
||||||
version "3.12.0"
|
version "3.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
|
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
|
||||||
@ -3370,9 +3322,9 @@ ee-first@1.1.1:
|
|||||||
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
||||||
|
|
||||||
electron-to-chromium@^1.3.723:
|
electron-to-chromium@^1.3.723:
|
||||||
version "1.3.752"
|
version "1.3.758"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.758.tgz#0baeb8f0a89d1850cc65f92da5f669343e4f6241"
|
||||||
integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==
|
integrity sha512-StYtiDbgZdjcck3OLwsVVVif7QDuD5m5v2gF+XpETp5lHa7X0y3129YBlYaHRPyj1fep1oAaC6i//gAdp+rhbw==
|
||||||
|
|
||||||
elliptic@^6.5.3:
|
elliptic@^6.5.3:
|
||||||
version "6.5.4"
|
version "6.5.4"
|
||||||
@ -3819,13 +3771,6 @@ find-cache-dir@^3.3.1:
|
|||||||
make-dir "^3.0.2"
|
make-dir "^3.0.2"
|
||||||
pkg-dir "^4.1.0"
|
pkg-dir "^4.1.0"
|
||||||
|
|
||||||
find-replace@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
|
|
||||||
integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
|
|
||||||
dependencies:
|
|
||||||
array-back "^3.0.1"
|
|
||||||
|
|
||||||
find-up@^3.0.0:
|
find-up@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
|
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
|
||||||
@ -3942,7 +3887,7 @@ fsevents@^1.2.7:
|
|||||||
bindings "^1.5.0"
|
bindings "^1.5.0"
|
||||||
nan "^2.12.1"
|
nan "^2.12.1"
|
||||||
|
|
||||||
fsevents@~2.3.1:
|
fsevents@~2.3.2:
|
||||||
version "2.3.2"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||||
@ -4010,7 +3955,7 @@ glob-parent@^3.1.0:
|
|||||||
is-glob "^3.1.0"
|
is-glob "^3.1.0"
|
||||||
path-dirname "^1.0.0"
|
path-dirname "^1.0.0"
|
||||||
|
|
||||||
glob-parent@~5.1.0:
|
glob-parent@~5.1.2:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||||
@ -4273,11 +4218,9 @@ hotkeys-js@3.8.1:
|
|||||||
integrity sha512-YlhVQtyG9f1b7GhtzdhR0Pl+cImD1ZrKI6zYUa7QLd0zuThiL7RzZ+ANJyy7z+kmcCpNYBf5PjBa3CjiQ5PFpw==
|
integrity sha512-YlhVQtyG9f1b7GhtzdhR0Pl+cImD1ZrKI6zYUa7QLd0zuThiL7RzZ+ANJyy7z+kmcCpNYBf5PjBa3CjiQ5PFpw==
|
||||||
|
|
||||||
hotkeys-js@^3.7.3:
|
hotkeys-js@^3.7.3:
|
||||||
version "3.8.6"
|
version "3.8.7"
|
||||||
resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.6.tgz#1ae0924f1ed1107c0aa59edd6f1dd0080649daaf"
|
resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.7.tgz#c16cab978b53d7242f860ca3932e976b92399981"
|
||||||
integrity sha512-aShX/2vwElAzJTBWSm3WkBPtaBk7El2TRVVjetM5cvgAaP71EwCIk2PnKDCXltdM1nwKaZb4N/52mi7lOgGisA==
|
integrity sha512-ckAx3EkUr5XjDwjEHDorHxRO2Kb7z6Z2Sxul4MbBkN8Nho7XDslQsgMJT+CiJ5Z4TgRxxvKHEpuLE3imzqy4Lg==
|
||||||
dependencies:
|
|
||||||
"@jsdevtools/npm-publish" "^1.4.3"
|
|
||||||
|
|
||||||
hpack.js@^2.1.6:
|
hpack.js@^2.1.6:
|
||||||
version "2.1.6"
|
version "2.1.6"
|
||||||
@ -5167,11 +5110,6 @@ lodash._reinterpolate@^3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
||||||
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
|
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
|
||||||
|
|
||||||
lodash.camelcase@^4.3.0:
|
|
||||||
version "4.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
|
|
||||||
integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
|
|
||||||
|
|
||||||
lodash.chunk@^4.2.0:
|
lodash.chunk@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
|
resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
|
||||||
@ -5267,13 +5205,6 @@ lru-cache@^5.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yallist "^3.0.2"
|
yallist "^3.0.2"
|
||||||
|
|
||||||
lru-cache@^6.0.0:
|
|
||||||
version "6.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
|
||||||
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
|
||||||
dependencies:
|
|
||||||
yallist "^4.0.0"
|
|
||||||
|
|
||||||
make-dir@^2.0.0:
|
make-dir@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
||||||
@ -5885,9 +5816,9 @@ opn@^5.5.0:
|
|||||||
is-wsl "^1.1.0"
|
is-wsl "^1.1.0"
|
||||||
|
|
||||||
optimize-css-assets-webpack-plugin@^5.0.1:
|
optimize-css-assets-webpack-plugin@^5.0.1:
|
||||||
version "5.0.6"
|
version "5.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e"
|
resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a"
|
||||||
integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A==
|
integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano "^4.1.10"
|
cssnano "^4.1.10"
|
||||||
last-call-webpack-plugin "^3.0.0"
|
last-call-webpack-plugin "^3.0.0"
|
||||||
@ -6059,11 +5990,6 @@ path-key@^2.0.0, path-key@^2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||||
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
||||||
|
|
||||||
path-key@^3.1.0:
|
|
||||||
version "3.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
|
||||||
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
|
||||||
|
|
||||||
path-parse@^1.0.6:
|
path-parse@^1.0.6:
|
||||||
version "1.0.7"
|
version "1.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||||
@ -6487,7 +6413,7 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
|
||||||
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
|
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
|
||||||
|
|
||||||
postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
|
postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6:
|
||||||
version "7.0.36"
|
version "7.0.36"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb"
|
||||||
integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==
|
integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==
|
||||||
@ -6855,10 +6781,10 @@ readdirp@^2.2.1:
|
|||||||
micromatch "^3.1.10"
|
micromatch "^3.1.10"
|
||||||
readable-stream "^2.0.2"
|
readable-stream "^2.0.2"
|
||||||
|
|
||||||
readdirp@~3.5.0:
|
readdirp@~3.6.0:
|
||||||
version "3.5.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
|
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||||
integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
|
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||||
dependencies:
|
dependencies:
|
||||||
picomatch "^2.2.1"
|
picomatch "^2.2.1"
|
||||||
|
|
||||||
@ -7185,13 +7111,6 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve
|
|||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||||
|
|
||||||
semver@^7.3.4:
|
|
||||||
version "7.3.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
|
|
||||||
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
|
|
||||||
dependencies:
|
|
||||||
lru-cache "^6.0.0"
|
|
||||||
|
|
||||||
send@0.17.1:
|
send@0.17.1:
|
||||||
version "0.17.1"
|
version "0.17.1"
|
||||||
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
|
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
|
||||||
@ -7286,23 +7205,11 @@ shebang-command@^1.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
shebang-regex "^1.0.0"
|
shebang-regex "^1.0.0"
|
||||||
|
|
||||||
shebang-command@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
|
||||||
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
|
||||||
dependencies:
|
|
||||||
shebang-regex "^3.0.0"
|
|
||||||
|
|
||||||
shebang-regex@^1.0.0:
|
shebang-regex@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||||
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
||||||
|
|
||||||
shebang-regex@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
|
||||||
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
|
||||||
|
|
||||||
signal-exit@^3.0.0, signal-exit@^3.0.2:
|
signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
||||||
@ -7573,11 +7480,6 @@ strict-uri-encode@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||||
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
|
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
|
||||||
|
|
||||||
string-argv@^0.3.1:
|
|
||||||
version "0.3.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
|
|
||||||
integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
|
|
||||||
|
|
||||||
string-width@^3.0.0, string-width@^3.1.0:
|
string-width@^3.0.0, string-width@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
|
||||||
@ -7911,9 +7813,9 @@ tr46@^1.0.1:
|
|||||||
punycode "^2.1.0"
|
punycode "^2.1.0"
|
||||||
|
|
||||||
tslib@^2.2.0:
|
tslib@^2.2.0:
|
||||||
version "2.2.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
|
||||||
integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
|
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
|
||||||
|
|
||||||
tty-browserify@0.0.0:
|
tty-browserify@0.0.0:
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
@ -7932,11 +7834,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
|||||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||||
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||||
|
|
||||||
type-detect@^4.0.8:
|
|
||||||
version "4.0.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
|
|
||||||
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
|
|
||||||
|
|
||||||
type-fest@^0.21.3:
|
type-fest@^0.21.3:
|
||||||
version "0.21.3"
|
version "0.21.3"
|
||||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
|
||||||
@ -7967,11 +7864,6 @@ typedarray@^0.0.6:
|
|||||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||||
|
|
||||||
typical@^4.0.0:
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
|
|
||||||
integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
|
|
||||||
|
|
||||||
uc.micro@^1.0.1, uc.micro@^1.0.5:
|
uc.micro@^1.0.1, uc.micro@^1.0.5:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
|
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
|
||||||
@ -8263,9 +8155,9 @@ vue-loader@^15.7.1:
|
|||||||
vue-style-loader "^4.1.0"
|
vue-style-loader "^4.1.0"
|
||||||
|
|
||||||
vue-router@^3.4.5:
|
vue-router@^3.4.5:
|
||||||
version "3.5.1"
|
version "3.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.1.tgz#edf3cf4907952d1e0583e079237220c5ff6eb6c9"
|
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c"
|
||||||
integrity sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw==
|
integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ==
|
||||||
|
|
||||||
vue-server-renderer@^2.6.10:
|
vue-server-renderer@^2.6.10:
|
||||||
version "2.6.14"
|
version "2.6.14"
|
||||||
@ -8601,13 +8493,6 @@ which@^1.2.9:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isexe "^2.0.0"
|
isexe "^2.0.0"
|
||||||
|
|
||||||
which@^2.0.1:
|
|
||||||
version "2.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
|
||||||
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
|
||||||
dependencies:
|
|
||||||
isexe "^2.0.0"
|
|
||||||
|
|
||||||
widest-line@^3.1.0:
|
widest-line@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
|
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
|
||||||
@ -8693,11 +8578,6 @@ yallist@^3.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
||||||
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
||||||
|
|
||||||
yallist@^4.0.0:
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
|
||||||
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
|
||||||
|
|
||||||
yargs-parser@^13.1.2:
|
yargs-parser@^13.1.2:
|
||||||
version "13.1.2"
|
version "13.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
|
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
|
||||||
|
@ -15,14 +15,6 @@ The `StateDB` interface from geth represents an EVM database for full state quer
|
|||||||
contracts and accounts. The concrete type that fulfills this interface on Ethermint is the
|
contracts and accounts. The concrete type that fulfills this interface on Ethermint is the
|
||||||
`CommitStateDB`.
|
`CommitStateDB`.
|
||||||
|
|
||||||
## State Object
|
|
||||||
|
|
||||||
A `stateObject` represents an Ethereum account which is being modified.
|
|
||||||
The usage pattern is as follows:
|
|
||||||
|
|
||||||
* First you need to obtain a state object.
|
|
||||||
* Account values can be accessed and modified through the object.
|
|
||||||
|
|
||||||
## Genesis State
|
## Genesis State
|
||||||
|
|
||||||
The `x/evm` module `GenesisState` defines the state necessary for initializing the chain from a previous exported height.
|
The `x/evm` module `GenesisState` defines the state necessary for initializing the chain from a previous exported height.
|
||||||
|
@ -53,29 +53,3 @@ The functionalities provided by the Ethermint `StateDB` are:
|
|||||||
* Auxiliary functions
|
* Auxiliary functions
|
||||||
* Copy state
|
* Copy state
|
||||||
* Reset state
|
* Reset state
|
||||||
|
|
||||||
## State Objects
|
|
||||||
|
|
||||||
State objects are used by the VM which is unable to deal with database-level errors. Any error that occurs during a database read is memoized here and will eventually be returned by `StateDB.Commit`.
|
|
||||||
|
|
||||||
The Ethermint `stateObject` is a concrete type that mimics the functionality from the `go-ethereum`
|
|
||||||
private `stateObject` type. It keeps track of the interim values for the contract bytecode, storage
|
|
||||||
state and balance of an `EthAccount`.
|
|
||||||
|
|
||||||
The storage entries (original and "dirty") for each state object are represented as slices instead
|
|
||||||
of maps since latter can cause non-deterministic block app hashes, which result in the chain
|
|
||||||
halting.
|
|
||||||
|
|
||||||
When a `stateObject` is committed during `EndBlock`. It sets sets the account contract code to store, as well as the dirty storage state. The account's nonce and the account balance are updated by calling the `auth` and `bank` module setter functions, respectively.
|
|
||||||
|
|
||||||
+++ https://github.com/tharsis/ethermint/blob/v0.3.1/x/evm/types/state_object.go#L49-L81
|
|
||||||
|
|
||||||
The functionalities provided by the Ethermint `stateObject` are:
|
|
||||||
|
|
||||||
* Storage state getter and setter (temporary)
|
|
||||||
* Contract bytecode getter and setter (temporary)
|
|
||||||
* Balance getter and setter (temporary)
|
|
||||||
* Balance accounting (temporary)
|
|
||||||
* Account nonce and address getter and setter (temporary)
|
|
||||||
* Auxiliary functions: copy, RLP encoding, empty
|
|
||||||
* Commit state object (final)
|
|
||||||
|
@ -12,9 +12,12 @@ interface).
|
|||||||
## MsgEthereumTx
|
## MsgEthereumTx
|
||||||
|
|
||||||
| Type | Attribute Key | Attribute Value |
|
| Type | Attribute Key | Attribute Value |
|
||||||
|----------|---------------|-----------------|
|
|-------------|--------------------|-------------------------|
|
||||||
| ethereum | `"amount"` | `{amount}` |
|
| ethereum_tx | `"amount"` | `{amount}` |
|
||||||
| ethereum | `"recipient"` | `{eth_address}` |
|
| ethereum_tx | `"recipient"` | `{hex_address}` |
|
||||||
|
| ethereum_tx | `"contract"` | `{hex_address}` |
|
||||||
|
| ethereum_tx | `"txHash"` | `{tendermint_hex_hash}` |
|
||||||
|
| ethereum_tx | `"ethereumTxHash"` | `{hex_hash}` |
|
||||||
| message | `"sender"` | `{eth_address}` |
|
| message | `"sender"` | `{eth_address}` |
|
||||||
| message | `"action"` | `"ethereum"` |
|
| message | `"action"` | `"ethereum"` |
|
||||||
| message | `"module"` | `"evm"` |
|
| message | `"module"` | `"evm"` |
|
||||||
|
Loading…
Reference in New Issue
Block a user