Proto commits in ComposableFi/composable

These 49 commits are when the Protocol Buffers files have changed:

Commit:282fea3
Author:dzmitry-lahoda

clean clean

This commit does not contain any .proto files.

Commit:7574752
Author:dzmitry-lahoda
Committer:GitHub

feat(cvm): simpler cvm allowing to run liquidation for pica (#4304) So this is big PR. But all should work as before. What changed? # Simplification - Percentage (slope) usable in all CW places - no need to write absolutes - Encoding of to transfer can be various, easier to write - JSON data encoded made to be same as PB one. - User input and wire format less deep in general # Rename/Cleanup - Replaced naming of XCVM/interpeter to CVM/executor even in more places. - Removed long not working tests and test codes I use devnet examples to test. # Docs Added mantis docs (no published yet), just were to make these slick. Improved CVM specification marketing materials. Required for merge: - [ ] `pr-workflow-check / draft-release-check` is ✅ success - Other rules GitHub shows you, or can be read in [configuration](../terraform/github.com/branches.tf) Makes review faster: - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [ ] I marked PR by `misc` label if it should not be in release notes - [ ] Linked Zenhub/Github/Slack/etc reference if one exists - [ ] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [x] Added reviewer into `Reviewers` - [x] I tagged(`@`) or used other form of notification of one person who I think can handle best review of this PR - [ ] I have proved that PR has no general regressions of relevant features and processes required to release into production - [x] Any dependency updates made, was done according guides from relevant dependency - Clicking all checkboxes - Adding detailed description of changes when it feels appropriate (for example when PR is big)

The documentation is generated from this commit.

Commit:d741fef
Author:dzmitry-lahoda
Committer:GitHub

chore: cvm move and mantis docs draft (#4285) Required for merge: - [ ] `pr-workflow-check / draft-release-check` is ✅ success - Other rules GitHub shows you, or can be read in [configuration](../terraform/github.com/branches.tf) Makes review faster: - [ ] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [ ] I marked PR by `misc` label if it should not be in release notes - [ ] Linked Zenhub/Github/Slack/etc reference if one exists - [ ] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [ ] Added reviewer into `Reviewers` - [ ] I tagged(`@`) or used other form of notification of one person who I think can handle best review of this PR - [ ] I have proved that PR has no general regressions of relevant features and processes required to release into production - [ ] Any dependency updates made, was done according guides from relevant dependency - Clicking all checkboxes - Adding detailed description of changes when it feels appropriate (for example when PR is big)

Commit:c84ce98
Author:dzmitry-lahoda

feat: ability to create cvm programs from normal contracts

Commit:246307e
Author:dzmitry-lahoda

refactoring

Commit:bf9c5dc
Author:dzmitry-lahoda
Committer:dzmitry-lahoda

Revert "Revert "feat: cvm generation from solution route"" This reverts commit e039aefd5e8299d6d4bd0ad1e6e5ee0517d1c31b.

Commit:b843a3d
Author:dzmitry-lahoda
Committer:dzmitry-lahoda

Revert "Revert "shared v1"" This reverts commit c197284fb19bbad370458f91e77a6380264cd951.

Commit:e039aef
Author:dzmitry-lahoda

Revert "feat: cvm generation from solution route" This reverts commit 6940ab1720a95ad6ba39f2d858e85f37f8d69956.

Commit:c197284
Author:dzmitry-lahoda

Revert "shared v1" This reverts commit 428f5be17c7c8f285277bda2d7bcde87c848b4a1.

Commit:428f5be
Author:dzmitry-lahoda

shared v1

Commit:6940ab1
Author:dzmitry-lahoda

feat: cvm generation from solution route

Commit:d784d76
Author:dzmitry-lahoda
Committer:GitHub

feat(cvm): updated EVM to latest IBC depenendencies and data Types (#4166) Anyway, finally used generator for PB to SOL. We need to market ASAP. So really do not bother handcrafting. So also will use SolidityTypes next PRs to reduce amount of code on SOL side because it is important. Also replaced IBC copy pasted codes with up to date IBC sol dep. Required for merge: - [ ] `pr-workflow-check / draft-release-check` is ✅ success - Other rules GitHub shows you, or can be read in [configuration](../terraform/github.com/branches.tf) Makes review faster: - [ ] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [ ] I marked PR by `misc` label if it should not be in release notes - [ ] Linked Zenhub/Github/Slack/etc reference if one exists - [ ] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [ ] Added reviewer into `Reviewers` - [ ] I tagged(`@`) or used other form of notification of one person who I think can handle best review of this PR - [ ] I have proved that PR has no general regressions of relevant features and processes required to release into production - [ ] Any dependency updates made, was done according guides from relevant dependency - Clicking all checkboxes - Adding detailed description of changes when it feels appropriate (for example when PR is big)

Commit:f14139b
Author:Michal Nazarewicz
Committer:GitHub

feat(xcvm): convert Virtual Wallet to use proto for IBC communication (#4132)

Commit:7469023
Author:Michal Nazarewicz
Committer:GitHub

feat(xcvm): rework protocol messages [breaking change] (#4116) Note that this is a breaking change. Protobuf message definition as well as serde definition of XCVM program and packets are changed. 1. Simplify protobuf definitions by removing wrapping types. It’s not protobuf style to have messages with just one flied (such as AssetId) where instead the field can be used directly. Removing those shortens the protocol buffer and removes some of the conversion code. 2. Replace Self, Tip, Result and IpRegister BindingValues with a single registry field and a corresponding Registry enum. This mirrors the way Rust types are defined and again simplifies conversion code. 3. Rename `id` to `exchange_id` in instruction::Exchange and `network` to `network_id` in instruction::Spawn. This makes it more consistent with protobuf messages as well as other types which use `foo_id` for identifier fields. This change affects serde. 4. Rename handful of fields in protobuf from camelCase to snake_case as per the protobuf style guide. This doesn’t change the Rust code.

Commit:2343382
Author:Michal Nazarewicz
Committer:GitHub

feat(xcvm): refactor protobuf handling (#4108) Firstly, move XCVM-related protocol messages to its own package. This will make it easier to separate protocol messages defined for other components of the system (namely virtual wallet). Secondly, move stuff around in the Rust code to reflect the package structure in Rust modules. All of that is just refactoring and moving stuff around. Lastly, replace Encodable trait by a Isomorphism trait which defines mapping between Rust type and protocol message type together with providing encoding and decoding methods. The latter replace custom decode functions. Required for merge: - [x] `pr-workflow-check / draft-release-check` is ✅ success - Other rules GitHub shows you, or can be read in [configuration](../terraform/github.com/branches.tf) Makes review faster: - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [x] Linked Zenhub/Github/Slack/etc reference if one exists - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [x] Added reviewer into `Reviewers` - [x] I tagged(`@`) or used other form of notification of one person who I think can handle best review of this PR - [x] I have proved that PR has no general regressions of relevant features and processes required to release into production - [x] Any dependency updates made, was done according guides from relevant dependency - Clicking all checkboxes - Adding detailed description of changes when it feels appropriate (for example when PR is big)

Commit:05d38e0
Author:dzmitry-lahoda
Committer:GitHub

feat(xcvm): swap on devnet demo, and testnet and prod deployments scripts (#4097) Exchange of pica to osmo happens on Osmosis, and it sends message transfer back. Tuned devnet relayer for more stability. Added shells and tuned scripts to work with test and prod nets. Required for merge: - [ ] `pr-workflow-check / draft-release-check` is ✅ success - Other rules GitHub shows you, or can be read in [configuration](../terraform/github.com/branches.tf) Makes review faster: - [ ] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [ ] I marked PR by `misc` label if it should not be in release notes - [ ] Linked Zenhub/Github/Slack/etc reference if one exists - [ ] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [ ] Added reviewer into `Reviewers` - [ ] I tagged(`@`) or used other form of notification of one person who I think can handle best review of this PR - [ ] I have proved that PR has no general regressions of relevant features and processes required to release into production - [ ] Any dependency updates made, was done according guides from relevant dependency - Clicking all checkboxes - Adding detailed description of changes when it feels appropriate (for example when PR is big)

Commit:438a7f8
Author:dzmitry-lahoda
Committer:dzmitry-lahoda

fast ulimate scenario configuring checkout problem migrating refactor fixed clean up ohoho config logs

Commit:cbee55c
Author:dzmitry-lahoda
Committer:GitHub

Osmosis DevNet setup, XCVM config/events refactoring, Nix improvements (#3951) Generally, ensure that setup of storage is easy to do and full of data to do all possible routing (like Osmosis does, but more general in all directions and solvers), and using that setup against Osmosis. So uploaded contracts to Osmosis and initialized. - separate devnet for cosmos only for faster dev - aligned config/folders/messages/transports of xcvm on whole stack - made data folder of dotsama devnet same as cosmos (/tmp/composable-devnet/) - updated XCVM spec as per latest state - added into language, not implemented yet, swap instruction to XCVM named and modelled with parity XCM (will work on parity, picasso, osmosis, problem solver) - tests for assets not compiled, mostly useless and simplistic - removed instead of fixing (tests will be in DevNet directly via bash) - generated schema for xcvm - fixed nix docs/examples to ensure people run properly nix with all parameters - fixed memo handling (again, had to cp paste some code https://github.com/CosmWasm/serde-cw-value/pull/3) and its integration with centauri (now they cannot handle wasm, so it skips it ) - disable run of CI in hash tag (i do not want to spam people) - renamed Multihop XCM IBC some struct as per previos request of @RustNinja - updated cosmos.nix deps to latest centauri - clean up of nix and speed ups builds of nix Required for merge: - [x] `pr-workflow-check / draft-release-check` is ✅ success - Other rules GitHub shows you, or can be read in [configuration](../terraform/github.com/branches.tf) Makes review faster: - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [x] Linked Zenhub/Github/Slack/etc reference if one exists https://github.com/ComposableFi/research/issues/249 https://github.com/ComposableFi/research/issues/244 - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [x] Added reviewer into `Reviewers` - [x] I tagged(`@`) or used other form of notification of one person who I think can handle best review of this PR - [x] I have proved that PR has no general regressions of relevant features and processes required to release into production - [x] Any dependency updates made, was done according guides from relevant dependency - Clicking all checkboxes - Adding detailed description of changes when it feels appropriate (for example when PR is big) ![image](https://github.com/ComposableFi/composable/assets/757125/8fbcc4fb-ba2a-49f1-9bb9-7c5f258758e7) --------- Signed-off-by: dzmitry-lahoda <dzmitry@lahoda.pro>

Commit:51afcc4
Author:dzmitry-lahoda
Committer:cocokick

xcvm over ICS20 assets (#3800) - replaced transport with ics 20 memo - so had to replace assets transfer - so added more storage items to handle ics 20 routes - made security according wasm hook with verification of sender - needed to use precompile as cw std lacks memo, so unified usage of cw things in core crate (so can use in precompiles in substrate) - moved reusable parts all in core (like cw std, or osmosis std, ibc rs do) - made PICA routed via other chains is not PICA when get back to Picasso (without path reverse) - improved type system of xcvm, made it more integrated - removed some obsolete not used and not usable TS codes - update of some relevant docs - as contracts are part of general Cargo.toml, fixed many lintings (like Clone cases) - greened CW builds as part of CI - https://github.com/ComposableFi/composable/actions/runs/5614667327/job/15213335028?pr=3800 - made spit of anonymous vs not programs - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [x] I have linked Zenhub/Github or any other reference item if one exists https://github.com/ComposableFi/Private-Issues-/issues/77 - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [x] I waited and did best effort for `pr-workflow-check / draft-release-check` to finish with success(green check mark) with my changes - [x] I have added at least one reviewer in reviewers list - [x] I tagged(@) or used other form of notification of one person who I think can handle best review of this PR - [x] I have proved that PR has no general regressions of relevant features and processes required to release into production --------- Signed-off-by: dzmitry-lahoda <dzmitry@lahoda.pro> Co-authored-by: Michal Nazarewicz <mina86@mina86.com>

Commit:6306bc3
Author:dzmitry-lahoda
Committer:GitHub

xcvm over ICS20 assets (#3800) - replaced transport with ics 20 memo - so had to replace assets transfer - so added more storage items to handle ics 20 routes - made security according wasm hook with verification of sender - needed to use precompile as cw std lacks memo, so unified usage of cw things in core crate (so can use in precompiles in substrate) - moved reusable parts all in core (like cw std, or osmosis std, ibc rs do) - made PICA routed via other chains is not PICA when get back to Picasso (without path reverse) - improved type system of xcvm, made it more integrated - removed some obsolete not used and not usable TS codes - update of some relevant docs - as contracts are part of general Cargo.toml, fixed many lintings (like Clone cases) - greened CW builds as part of CI - https://github.com/ComposableFi/composable/actions/runs/5614667327/job/15213335028?pr=3800 - made spit of anonymous vs not programs - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [x] I have linked Zenhub/Github or any other reference item if one exists https://github.com/ComposableFi/Private-Issues-/issues/77 - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [x] I waited and did best effort for `pr-workflow-check / draft-release-check` to finish with success(green check mark) with my changes - [x] I have added at least one reviewer in reviewers list - [x] I tagged(@) or used other form of notification of one person who I think can handle best review of this PR - [x] I have proved that PR has no general regressions of relevant features and processes required to release into production --------- Signed-off-by: dzmitry-lahoda <dzmitry@lahoda.pro> Co-authored-by: Michal Nazarewicz <mina86@mina86.com>

Commit:d77a7a7
Author:dzmitry-lahoda

fmt

Commit:f6955e1
Author:dzmitry-lahoda

fixed compilation

Commit:1c29b4c
Author:dzmitry-lahoda
Committer:dzmitry-lahoda

ics 20 based xcvm made displayed more compatible with CW done keyz hoho fmt clean up missed tests push no std back no std support fixing clippy and no std fixing clippy and no std fixed scale hard no std check fixing xcvm nix happy interprepter clean more lint fixess fixes cw is parf of ci comment Update code/xcvm/lib/core/src/ibc/mod.rs Co-authored-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: dzmitry-lahoda <dzmitry@lahoda.pro> oh dns wtf dns ignore bad tests for now fixes fix ci clean review comments

Commit:19a4871
Author:dzmitry-lahoda
Committer:dzmitry-lahoda

ics 20 based xcvm made displayed more compatible with CW done keyz hoho fmt clean up missed tests push no std back no std support fixing clippy and no std fixing clippy and no std fixed scale hard no std check fixing xcvm nix happy interprepter clean more lint fixess fixes cw is parf of ci comment Update code/xcvm/lib/core/src/ibc/mod.rs Co-authored-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: dzmitry-lahoda <dzmitry@lahoda.pro> oh dns wtf dns ignore bad tests for now fixes fix ci clean review comments

Commit:b9683cd
Author:dzmitry-lahoda
Committer:dzmitry-lahoda

compilez

Commit:3ae73d8
Author:dzmitry-lahoda

compilze

Commit:c8b320d
Author:dzmitry-lahoda

merge

Commit:4b607d1
Author:dzmitry-lahoda

Revert "removal of fe code" This reverts commit 06befafc01a04f2c0f29eb1ab1613ee6e6050dda.

Commit:06befaf
Author:dzmitry-lahoda

removal of fe code

Commit:e09e0b3
Author:dzmitry-lahoda
Committer:GitHub

Upgraded CosmWasm runtime in Picasso to latest dependencies (#3677) - allowed to run parity and cosmos rust code in same wasm contract and fancy staff for precompiles - updated host with host call depth https://github.com/ComposableFi/cosmwasm-vm/pull/36 - removed reexport of cw std - updated cw to version 1.2.+ - updated XCVM spec with interpetere != account, removed autogenerated obsolete ToC, made more clear impl contracts vs logic , removed mosaic died long ago - renamed XCVM to XC as XCVM long and hard to type, and really it is more about xc/swaps/mev rather than VM, which uses some VMs - made features, std, no_std, right as i could - forks will be replaced by forks into composablefi under `<name>-no-std` later . all forks are PRs and issues on CW team repos - unified deps into workspace deps - started to use cw_serde fancy API to CW - added XC to CI - XCVM tests where failing with `cargo-package-build> thread 'tests::suite::cross_chain::test_simple_crosschain_xcvm_transfer' panicked at 'Must be able ` which was before my commit anyway - go over CW pallet guide - contracts work on Picasso ![image](https://github.com/ComposableFi/composable/assets/757125/3d5e1640-c5aa-4260-84c8-093c29fb82da) - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [ ] I have linked Zenhub/Github or any other reference item if one exists - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [ ] I waited and did best effort for `pr-workflow-check / draft-release-check` to finish with success(green check mark) with my changes - [x] I have added at least one reviewer in reviewers list - [ ] I tagged(@) or used other form of notification of one person who I think can handle best review of this PR - [x] I have proved that PR has no general regressions of relevant features and processes required to release into production

Commit:db8a245
Author:Michal Nazarewicz
Committer:GitHub

xcvm: remove Query instruction (#3676) The instruction is not implemented and current design doesn’t include it. We can add it later when we need it. For now it only clutters the code. - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [x] I have linked Zenhub/Github or any other reference item if one exists - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [ ] I waited and did best effort for `pr-workflow-check / draft-release-check` to finish with success(green check mark) with my changes - [x] I have added at least one reviewer in reviewers list - [x] I tagged(@) or used other form of notification of one person who I think can handle best review of this PR - [ ] I have proved that PR has no general regressions of relevant features and processes required to release into production

Commit:d4a3415
Author:Michal Nazarewicz
Committer:GitHub

xcvm: remove concept of bridge security (#3675) As we’re heading towards IBC-based solution, the bridge security concept is no longer necessary. Simplify code by removing all handling of it. - [x] PR title is my best effort to provide summary of changes and has clear text to be part of release notes - [x] I marked PR by `misc` label if it should not be in release notes - [ ] I have linked Zenhub/Github or any other reference item if one exists - [x] I was clear on what type of deployment required to release my changes (node, runtime, contract, indexer, on chain operation, frontend, infrastructure) if any in PR title or description - [ ] I waited and did best effort for `pr-workflow-check / draft-release-check` to finish with success(green check mark) with my changes - [x] I have added at least one reviewer in reviewers list - [x] I tagged(@) or used other form of notification of one person who I think can handle best review of this PR - [x] I have proved that PR has no general regressions of relevant features and processes required to release into production

Commit:36f8734
Author:aeryz
Committer:aeryz

feat(cosmwasm): handle `Unit` balance Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:cc18b90
Author:kkx

XCVM-247 - small fix to use globalId as one of possible binding value instead of assetId

Commit:fc1356c
Author:kkx

merged from main

Commit:d3db13c
Author:hussein
Committer:hussein

feat(xcvm): initial ibc handlers for the gateway contract, escrow and burn/unescrow on ack

Commit:f259b37
Author:hussein
Committer:hussein

feat(xcvm): remove `SpawnEvent` and restructure protobuf to introduce the ibc packet

Commit:1ae31d8
Author:kkx

add globalId and localId support

Commit:ed3f79b
Author:kkx

change AssetAmount to use Balance

Commit:5121952
Author:kkx

update network id to uint128

Commit:83e6aee
Author:hussein

feat(xcvm): make sure `BridgeSecurity` ordering is explicit and reorder with higher being more secure

Commit:d87c75a
Author:aeryz
Committer:aeryz

chore(cosmwasm): update to recent proto definition * Update XCVM's protobuf definition * Fix spellcheck Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:589ac58
Author:aeryz
Committer:aeryz

chore(cosmwasm): fix interpreter tests Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:5f461ff
Author:aeryz
Committer:aeryz

feat(xcvm-proto): add conversions * Add conversions from proto to XCVM types. * Fix small type changes on interpreter contract. Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:e234632
Author:aeryz
Committer:aeryz

feat(cosmwasm): continue spec compliance * Add `add_owners` and `set_owners` method to add and remove owners to the interpreter. * Change `AssetId` to u128 for compliance with Picasso. * Add `relayer_address` to `InstantiateMsg`. * Fix `relayer_address` binding and instead of returning `user_id` in `BindingValue::Relayer`, return the relayer address. Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:4bd51f6
Author:aeryz
Committer:aeryz

feat(xcvm): add proto crate for protobuf Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:1af479e
Author:aeryz
Committer:aeryz

feat(cosmwasm): replace json with protobuf Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:87a16c8
Author:aeryz
Committer:aeryz

chore(cosmwasm): move xcvm_program.proto to xcvm library Signed-off-by: aeryz <abdullaheryz@protonmail.com>

Commit:3c9be59
Author:kkx

evm contracts and typescipt sdk for xcvm