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

Resolve conflicts of #17934 against main #2

Conversation

wlmyng
Copy link

@wlmyng wlmyng commented Jun 20, 2024

Description

The diffs look crazy, but this is because the Aftermath:sui-public fork is 3xx commits behind MystenLabs:main. To resolve the conflicts against main, I rebased on MystenLabs:main, and reran the sui-graphql-e2e-tests to regenerate the .exp files. Once this is merged into the target branch, most of the commits should disappear in that PR against main.

Test plan

How did you test the new or updated feature?


Release notes

Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.

For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

  • Protocol:
  • Nodes (Validators and Full nodes):
  • Indexer:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK:

jsrzx and others added 30 commits June 4, 2024 09:48
## Description 

fix docs mistake: use outdated method `toBytes()`, should be
`toRawBytes()`

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

Defaults to testnet now

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

This is mainly to enable consensus commit prologue V3 in graphql e2e
tests

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

Update Doc

---------

Co-authored-by: hayes-mysten <135670682+hayes-mysten@users.noreply.github.com>
## Description 

Currently only the depositERC20 checks that the conversion is greater
than 0. Moving the requirement to the conversion function itself to
capture both ERC20 and ETH deposits

## Test plan 

Added unit test coverage to account for both depositEth and depositERC20
## Description 

We should not check for if the (remote) dependencies are up-to-date on
each compilation as this is quite costly (seconds) and can massively
slowdown some features (e.g., auto-completion). For IDE use case it
should be sufficient to check dependency freshness on the first
compilation only.

## Test plan 

Verified that time to finish auto-completion request when remote deps
are used went down from ~2s to miliseconds
## Description 

Updated the SuiBridge.sol contract to include a destination address
length check to insure that users don't accidentally lock funds.

Also added the deploy implementation script in order to upgrade the
contracts in testnet.

## Test plan 

Updated unit tests to use real Sui addresses in order for the tests to
run green.

Also, the deploy implementation script has the upgrade type safety
check.
## Description 

This PR includes a few things:
1. adds more metrics, logs and instruments to bridge software
2. to do instruments we spin out `fn handle_execution_task` and `fn
handle_signing_task` from the while loops.
3. revise some existing metrics such that all errors starts with name
`bridge_err`
4. fix a bug where we exit the on chain execution task if the task is
already handled. Since it's now in `fn handle_execution_task` this
becomes a non-issue
5. added client command `DepositNativeEtherOnEth` which is
self-descriptive. I needed this when testing the change locally. The
change is small and straightforward so i didn't bother to separate it to
its own PR
6. update solidity deploy configs. for 31337.json, change the source
chain id to 12. Also add 31338 and make it match the local deploy
script's set up.


## Test plan 

Tested things locally including metrics.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

Describe the changes or additions included in this PR.

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
…onal fields (MystenLabs#18074)

## Description 

Positionality of the struct fields is now preserved until typing so it
no longer has to be computed by the IDE itself

## Test plan 

All existing tests must pass
…ersioning (MystenLabs#18036)

## Description 

This goal of this PR is to allow friction-less updates of the Move
analyzer binary, particularly for developers that utilize Sui CLI, which
should be the majority. We still want friction-less Move analyzer binary
installation for developers that want to only use the IDE and do not
have a local CLI installation.

Move analyzer can now be installed in three different way:
1. it's bundled with the VSCode extension and if no local Move analyzer
installation exists (or local installations have a lower version than
the bundled one), it gets installed as part of VSCode Move extension
activation process
2. it's bundled with Sui's CLI binary (if this binary has the highest
version of all those installed, it will be used)
3. it can be built locally (or downloaded from GitHub) and placed in the
default location (`~/.sui/bin`) or in a location specified by the user
via VSCode extension's option

In cases 1 and 3 what gets ultimately used by the VSCode extension is
the "standalone" Move analyzer binary (`move-analyzer` binary containing
just the LSP server implementation). In case 2 what gets ultimately used
is the Sui CLI which contains Move analyzer binary (and which is invoked
via a special `analyzer` Sui CLI option).

Once this PR lands, the following will be enabled:
- if the first and only thing a developer does is to install VSCode
extension from the marketplace, it's ready to use with all the
functionality available
- if the developer installed Sui CLI, with each update of the CLI binary
a new version of Move analyzer will be available even if the extension
in the marketplace is not updated (which helps keeping parity between
compiler version in Move analyzer binary and compiler version in the CLI
binary, to avoid discrepancy with respect to features, error messages,
etc.)

## Test plan 

Tested manually the following scenarios:

1. Check cases when no higher installed version exists:
- install bundled extension when no local installation exists
- use locally installed standalone version (default path) if bundled has
the same version (no Sui version installed)
- use locally installed standalone version (user-specified path) if
bundled has the same version (no Sui version installed)
- use locally installed Sui version (on system path) if bundled has the
same version (no standalone version installed)
- use locally installed standalone version (user-specified path) if
bundled has the same version and installed Sui one has the same version
- use locally installed Sui version (on user-specified path) if bundled
has the same version (no standalone version installed)
- report error if no binary at user-specified path (no other local
installs)
- report error if no binary at user-specified path (Sui version
installed on system path)
2. Check cases when a higher installed version exists:
- use locally installed standalone version (default path) if bundled has
lower version (no Sui version installed)
- use locally installed Sui version (on system path) if bundled has
lower version (no standalone version installed)
3. Check cases when a lower installed version exists:
- install bundled version if installed standalone version is lower (no
Sui version installed)
- install bundled version if installed Sui version is lower (no
standalone version installed)
- install bundled version if both installed Sui version and standalone
version are lower
## Description 

Describe the changes or additions included in this PR.

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

Gated by a protocol version we run upgrades of framework in its own VM.
That is to avoid loader cache issues when verification of a VM can use
packages that are loaded already and as such incompatible with the new
upgrade.
This solution should solve the vast majority of problems related to
changes in framework code.
Next steps:
- forbid new `init` in framework modules (verifier check)
- make a easy to use framework to push `init` style code on the epoch
after the framework upgrade. That is in line with what has been done for
all new systems we exposed in the framework (e.g. random beacon and
bridge)

## Test plan 

Existing tests and about to run multi-epochs replay

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

We need a dedicated index for `coin_type`. This can be a partial index
`WHERE coin_type IS NOT NULL`

## Test plan 

Manually ran benchmark suite and verified that all benchmarked queries
did not timeout and completed within a sensible amount of time.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

This PR added an "/ping" endpoint that returns
`BridgeNodePublicMetadata`. `BridgeNodePublicMetadata` is a collection
of public info about a node. Now it contains the node version.

## Test plan 

tested the new endpoint locally.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

During latest TransactionBlock->Transaction change, a code sample was
updated slightly improperly:

> client.signAndExecuteTransaction**B**()  

This PR fixes the code sample.

## Test plan 

Compare the updated function name with the latest official API docs.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
…bs#18082)

## Description 

Exactly what it says on the tin.

## Test plan 

New tests

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
…18003)

## Description 

IDE autocomplete suggestions were not producing the correct results, but
that was impossible to see due to a lack of testing. Now that we have
testing, I have used those tests (plus new ones) to ensure we produce
the correct results.

## Test plan 

New tests, plus fixing the expected values for old ones.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
MystenLabs#18069)

… are present

## Description 

This PR changes how objects query is constructed when both object id
filter and object key filter are provided. Before we would use the
historical view whenever object key filters are present but this is
wrong since we should be handling queries filter by object id only with
the consistency view. Treating object id and object key queries
separately, and unioning the results together would solve this issue.

Besides we also found out that query performance was bad when both
filters were present. Using `UNION` also fixes the performance.

## Test plan 

existing tests

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

very small pr to rename the existing _coin index to _coin_owner to
better differentiate between the coin_only index

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
This causes rare test failures, fix is pretty self-explanatory
…raction of eth (MystenLabs#18057)

## Description 

title 

## Test plan 

tested locally on bridgent


---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

Improve install description

## Test plan 

How did you test the new or updated feature?

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:

---------

Co-authored-by: ronny-mysten <118224482+ronny-mysten@users.noreply.github.com>
awelc and others added 26 commits June 20, 2024 13:57
## Description 

The main fix here is to add back merge of `file_use_defs` in the
`Symbols` struct accidentally removed in
MystenLabs#18270

It also finesses merging of `MappedFiles` struct a bit:
- re-implements a variant of `extend` function that allows duplicate
hashes (as this is a normal situation when merging symbolic information
(as most files will not change between symbol computations)
- adds `MappedFiles` extension on pre-compiled libs retrieval (as
opposed to having it only on pre-compiled lib computation)

## Test plan 

All tests must pass plus verified that IDE support now again works
correctly
…re approved. (MystenLabs#18262)

## Description 

as title

## Test plan 

unit test. Will add an e2e test in a separate PR (needs some new test
infra that will inflate this PR)

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
…s#18333)

## Description 

Verify that DKG completes after the reconf in split-cluster-check.
Also add a more concrete log for 'DKG start' event, to be used in the future in the above verification.

## Test plan 

manually tested

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] Indexer: 
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
## Description 

@chris-gorham pointed out a copy-paste error on my end
## Description 

Added the following:

- DepositedUnfinalized TokenTransferStatus. This status indicates that
this event was captured in an unfinalized block.
- LatestEthSyncer component that enables the indexer to listen to
unfinalized blocks.
- Eth idempotency. This is so that we can start indexing from the block
that was last processed when starting / restarting the indexer.
R 'infer_root_version' -> 'version_for_dynamic_fields'
Co-authored-by: Ashok Menon <amenon94@gmail.com>
@wlmyng wlmyng force-pushed the resolve-conflicts-unmaykr-fix-dof branch from 6229b71 to f5a4821 Compare June 20, 2024 19:31
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.