osmosis-labs / mesh-security

Other
62 stars 8 forks source link

Sylvia upgrade #188

Closed JakeHartnell closed 4 months ago

JakeHartnell commented 5 months ago

Attempts to upgrade to Sylvia v0.10, following roughly what's in this article: https://medium.com/confio/sylvia-1-0-0-45094b6ad8ba

The rational for v0.10 over 1.0 is that the Starship testing infra chains don't yet support CW 2.0 I believe.

Doesn't fully work yet... would appreciate some help.

Builds off of #187, but separate for easier review.

ethanfrey commented 4 months ago

@jawoznia I managed to fix a lot with your example. All code and tests compile properly - expect vitrual-staking. Some tests are failing (on asserts not equaling), but I will investigate the diff to try to figure out why.

The biggest issue is virtual-staking that uses custom query and message type. I made a number of changes to get consistency everywhere and it compiles and seems proper, except multitest fails. The biggest issue is when we use the app with custom msg/query (needed for virtual staking) and use it to instantiate another contract (that has no custom msg/query), then it fails like this:

error[E0308]: mismatched types
  --> contracts/consumer/virtual-staking/src/multitest.rs:42:79
   |
42 |     let converter_code = mesh_converter::contract::sv::mt::CodeId::store_code(app);
   |                          ---------------------------------------------------- ^^^ expected `&App<App<_, _, _, _, WasmKeeper<Empty, Empty>, _, _, _, _>>`, found `&App<App<BankKeeper, MockApi, MemoryStorage, ..., ...>>`
   |                          |
   |                          arguments to this function are incorrect
   |
   = note: expected reference `&sylvia::multitest::App<cw_multi_test::App<_, _, _, _, WasmKeeper<cosmwasm_std::Empty, cosmwasm_std::Empty>, _, _, _, _>>`
              found reference `&'a sylvia::multitest::App<cw_multi_test::App<BankKeeper, MockApi, MemoryStorage, FailingModule<mesh_bindings::VirtualStakeCustomMsg, mesh_bindings::VirtualStakeCustomQuery, cosmwasm_std::Empty>, WasmKeeper<mesh_bindings::VirtualStakeCustomMsg, mesh_bindings::VirtualStakeCustomQuery>>>`