Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EVM] rebasing sei-cosmos #422

Merged
merged 26 commits into from
Feb 6, 2024
Merged

[EVM] rebasing sei-cosmos #422

merged 26 commits into from
Feb 6, 2024

Conversation

stevenlanders
Copy link
Contributor

Describe your changes and provide context

  • sei cosmos main rebase

Testing performed to validate your change

  • unit / lower env

philipsu522 and others added 26 commits January 11, 2024 12:18
## Describe your changes and provide context
Add migration handler to add new disable seqno parameter to chain. Note
that i verified that we already use default values so we can just set
the params to default instead of maintaining authParamsV1 and V2
## Testing performed to validate your change
- unit tests
- upgraded local chain, ensure that bank sends work
## Describe your changes and provide context
This PR reverts the change in
#353 and
#391 until we have OCC
fully enabled.

## Testing performed to validate your change
Unit test coverage
## Changelog

* Ensure we have panic recovery handlers in `PrepareProposal` and
`ProcessProposal`.
…tion (#404)

## Describe your changes and provide context
This removes the behavior of disabling a dynamic dependency generator if
it returns something invalid during message dependency generation. This
needs to be removed so that the state writes are consistent with
synchronous execution, such that message dependency generation is a
read-only path. This change won't cause correctness issues, but in the
case that there is an incorrect dynamic dependency generator, it will
result in wasted compute since it will try it every time instead of
disabling it after the first time it was incorrect. This seems like an
acceptable compromise in order to have consistency with synchronous
execution.

## Testing performed to validate your change
Updated unit tests, and tested this behavior on a loadtest cluster
## Describe your changes and provide context
This should fix the concurrent map access for storeV2 root multistore
over (rs.ckvStores). The problem is that it is currently not protected
by a read lock so when other goroutine modify the map, it will throw
panic

## Testing performed to validate your change
## Describe your changes and provide context
Fix a bunch of minor issues from audit:
- LoadVersionAndUpgrade should not ignore version
- Simplify CacheWrap to avoid wrapping twice
- SS store query is not setting height correctly in the query response
- Add panic logic for bumpversion if it is false in commit
- Use the correct commit info in query
## Testing performed to validate your change
## Describe your changes and provide context
For EVM getProof endpoint, we'd need to call functions on the underlying
iavl store, so we'd need a way to expose the parent store from a cachekv

## Testing performed to validate your change
## Describe your changes and provide context
We need to make `TxIndex` available during dependency generation so that
we can derive the corresponding temporary intermediate account and
coinbase account for the message

## Testing performed to validate your change
- To avoid multiple deserialization, as well as adding cached values to
sdk.Tx
- Add new acl constants for evm subprefixes
- Add a new bank send method that doesn't automatically create accounts
unit tests & local sei integration
Integrate with pending txs:
- return `ResponseCheckTxV2`
- add a new field `PendingTxChecker` field in Context

integration with local sei
## Describe your changes and provide context

## Testing performed to validate your change
## Describe your changes and provide context
Add two new bank keeper functions that allow sub-usei (i.e. wei)
sending, where 1 usei = 10^12 wei:
```
SendCoinsAndWei(ctx sdk.Context, from sdk.AccAddress, to sdk.AccAddress, customEscrow sdk.AccAddress, denom string, amt sdk.Int, wei sdk.Int) error
GetWeiBalance(ctx sdk.Context, addr sdk.AccAddress) sdk.Int
```
Any usei that is split as a result of wei sending will be stored in an
escrow account, which can either be one that's specified by the caller
or a default global escrow module account.

## Testing performed to validate your change
unit test & local integration with sei-chain
## Describe your changes and provide context

## Testing performed to validate your change
- Adding an expiration handler callback that lets the mempool

- sei-protocol/sei-tendermint#179

- e2e testing with hardhat tests
## Describe your changes and provide context
- needs tendermint pr and go.mod update
- adds evm properties to the `ResponseCheckTxV2`
- adds evm properties to context

## Testing performed to validate your change
- hardhat tests on sei-chain repo
- unit tests on tendermint repo
## Describe your changes and provide context
- update tendermint

## Testing performed to validate your change
- unit tests
## Describe your changes and provide context
Add an interface function `VersionExists` to store types

## Testing performed to validate your change
local sei integration
## Describe your changes and provide context
Iterating with mergeiterator to get all keys and then deleting is
extremely slow when there are >10 layers of `cachekv`. This PR adds a
more efficient function to delete all keys within a range, without
having to make recursive calls like mergeiterator.

## Testing performed to validate your change
unit test on cachekv

---------

Co-authored-by: Philip Su <[email protected]>
## Describe your changes and provide context
- update sei-tendermint version to include expire tx metric fix

## Testing performed to validate your change
- existing tests
## Describe your changes and provide context
- update to tendermint  (keeping version in sync with sei-chain)

## Testing performed to validate your change
- unit tests
## Describe your changes and provide context

## Testing performed to validate your change
## Describe your changes and provide context
- includes new tendermint 

## Testing performed to validate your change
- unit tests
## Describe your changes and provide context
Bypass negative check for sends involving Wei escrow accounts, since
they may temporarily go negative during tx processing (but will be
settled back to 0 in EndBlock)

## Testing performed to validate your change
tested with the corresponding sei change
## Describe your changes and provide context
- ticks tm version

## Testing performed to validate your change
- unit and lower env testing
@stevenlanders stevenlanders merged commit 1669a25 into evm-temp Feb 6, 2024
13 checks passed
@stevenlanders stevenlanders deleted the rebase-2024-02-06 branch February 6, 2024 18:27
codchen added a commit that referenced this pull request Mar 7, 2024
- sei cosmos main rebase

- unit / lower env

---------

Co-authored-by: Philip Su <[email protected]>
Co-authored-by: Yiming Zang <[email protected]>
Co-authored-by: Aleksandr Bezobchuk <[email protected]>
Co-authored-by: Uday Patil <[email protected]>
Co-authored-by: codchen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants