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

CosmWasmVM #1430

Merged
merged 2 commits into from
Jan 20, 2023
Merged

CosmWasmVM #1430

merged 2 commits into from
Jan 20, 2023

Conversation

Martin-Roth
Copy link
Contributor

Project Abstract

Composable Finance focuses on trustless, cross-chain communications between Polkadot and other ecosystems. We are developing the first CosmWasm VM implementation in Substrate for the Polkadot and Kusama ecosystems.

In this case, a CosmWasm VM is a supplementary component to onboarding a new developer community and a widely adopted smart contract framework.
Our target audience consists of parachain builders, and dApps in the Dotsama ecosystem that want to leverage a WASM based smart contracting framework.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • A BTC, Ethereum (USDC/DAI) or Polkadot/Kusama (aUSD/USDT) address for the payment of the milestones is provided in the application.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

@CLAassistant
Copy link

CLAassistant commented Jan 12, 2023

CLA assistant check
All committers have signed the CLA.

@Noc2 Noc2 self-assigned this Jan 12, 2023
Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the application. In general, this looks really interesting. I would like to understand better what functionality will be supported after you submit your first milestone. Will I be able to deploy a cosmwasm smart contract on this (see https://docs.cosmwasm.com/docs/1.0/smart-contracts/contract-semantics) on your pallet?

@Noc2 Noc2 added the changes requested The team needs to clarify a few things first. label Jan 12, 2023
@KaiserKarel
Copy link

KaiserKarel commented Jan 12, 2023

Thanks a lot for the application. In general, this looks really interesting. I would like to understand better what functionality will be supported after you submit your first milestone. Will I be able to deploy a cosmwasm smart contract on this (see https://docs.cosmwasm.com/docs/1.0/smart-contracts/contract-semantics) on your pallet?

First milestone is basically functional parity with Cosmwasm according to the official spec, and usable for developers and other parachains, however with poor DX from a contract authors perspective. (No React contract bindings and other goodies).

So yes, production-ready contract deployment is the goal here.

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KaiserKarel Thanks for the super quick reply. Sounds very good. Could you try to integrate this into the milestone 1 table, which basically shows the requirements of the contract, and we will use it to evaluate the delivery? It would be nice actually to deploy such a smart contract as part of milestone 1 for testing, or is there a potential test tool or something similar that we can use to evaluate the functional parity with Cosmwasm?

@KaiserKarel
Copy link

@KaiserKarel Thanks for the super quick reply. Sounds very good. Could you try to integrate this into the milestone 1 table, which basically shows the requirements of the contract, and we will use it to evaluate the delivery? It would be nice actually to deploy such a smart contract as part of milestone 1 for testing, or is there a potential test tool or something similar that we can use to evaluate the functional parity with Cosmwasm?

Yeah I'll edit the milestone. The deliverable showcase will be:

A local network setup running a substrate chain with the pallet and a contract showing the functionality described in the milestones, so that it can be inspected and called through Polkadotjs.org.

@Noc2
Copy link
Collaborator

Noc2 commented Jan 17, 2023

Great. Let me know once you have updated it.

@Martin-Roth
Copy link
Contributor Author

Applied the suggestion from @Noc2 as requested by @KaiserKarel

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update. I'm happy to go ahead with it and share it with the rest of the team.

@Noc2 Noc2 added ready for review The project is ready to be reviewed by the committee members. and removed changes requested The team needs to clarify a few things first. labels Jan 19, 2023
Copy link
Contributor

@randombishop randombishop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@Noc2 Noc2 merged commit 1ab013e into w3f:master Jan 20, 2023
@github-actions
Copy link
Contributor

Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at [email protected] and we'll be happy to collaborate on an announcement about the work you’re doing.

Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

@semuelle
Copy link
Member

Hi @martin-kiss & @KaiserKarel, would you mind sharing an update on the project?

@keeganquigley
Copy link
Contributor

pinging @martin-kiss

@KaiserKarel
Copy link

@martin-kiss and I have left Composable, as have other principal engineers. I suggest contacting the current CEO.

The original authors of the CosmwasmVM are no longer employed there, so I am unsure if the current status.

@semuelle
Copy link
Member

semuelle commented Jun 9, 2023

Thanks for the info, @KaiserKarel.

Pinging @hussein-aitlahcen, @dzmitry-lahoda and @mina86 then. Do you know what the status of the project and the first milestone is?

@dzmitry-lahoda
Copy link

pinged Jafar from Composable. he works on proposals

@JafarAz
Copy link
Contributor

JafarAz commented Jun 9, 2023

Hello @semuelle @keeganquigley, just a quick update on our development progress.

For milestone 1:

  • 0b, 0c, 1a and 1c (except anything leftover from 1b) are complete. We are currently working on completing the XCM integration and verification through Fuzzing & Kani and Benchmarking for 1b. Once those are complete, I will submit milestone 1.

  • You can find docs to interact with the pallet as mentioned in 0b here.

  • The core functionality of the cosmwasm-vm can be seen on this page which shows CosmWasm contracts successfully uploading, instantiating and executing on Picasso Rococo.

  • Furthermore, we already have existing Cosmos projects testing their contracts to deploy on our VM as we announced the release of CosmWasm on Picasso Rococo and have sparked a lot of interest in bringing CosmWasm-based projects to Kusama.

For milestone 2:

  • Every single item required to submit milestone 2 is complete (0a-0d and 1 is partially complete) except for querying contracts’ state in the Development section.

@dzmitry-lahoda
Copy link

XCM integration, .., allow calling extrinsics,

I have forked and made no_std support for more CW code (+2 repos with relevant prs and updates to 2 previous forks) to make CW contracts no_std enabled, to allow use of no_std wasm SP crates with CW crates in same contract, and updated CW+wasmi to latest version. So it it just enables possible XCM/extrinsics integration, but not does it per ce.

CW things to have no_std with 2.0 in September 2023.

@semuelle
Copy link
Member

semuelle commented Jun 9, 2023

Thanks for the update, @JafarAz & @dzmitry-lahoda. Happy to hear things are progressing. Can you please review the timeline you have provided in the application and, if there is much further delay, please submit an amendment?

@keeganquigley
Copy link
Contributor

@JafarAz @dzmitry-lahoda are you able to provide an update?

@dzmitry-lahoda
Copy link

dzmitry-lahoda commented Jul 7, 2023

There are 2 project are built on top of CW in Picasso, one is pure on chain defi protocol, other I am on is multichain swap.

We use this

https://github.com/ComposableFi/composable/blob/main/docs/docs/products/cosmwasm/deploy-and-run-cosmwasm-contracts-with-pdjs.md <- this is how it works with PD.js app.

https://github.com/ComposableFi/composable/tree/main/code/parachain/frame/cosmwasm/cli This is how it works via Cosmos like CLI.

We wrap pallets into precompiles which look like contracts (pallet id -> account = contract address). Example of usage 145

We done https://github.com/ComposableFi/composable/blob/main/rfcs/0015-one-signature-multihop-transfer-solution-ibc-xcm.md IBC XCM multi chain transfers, and doing IBC XCM swaps (here will use XCM and IBC and other pallets precompiles).

I guess in couple of weeks we have at least one solution running on CW in Substrate connecting ecosystems.

@keeganquigley
Copy link
Contributor

Thanks @dzmitry-lahoda for the development update. Does this mean you plan to submit a delivery within the next couple weeks? If it's any longer than that I would agree with @semuelle that an amendment would be needed. Thanks!

@JafarAz
Copy link
Contributor

JafarAz commented Jul 7, 2023

@keeganquigley sure we can amend the duration on the proposal.

@keeganquigley
Copy link
Contributor

@JafarAz thanks much appreciated! Yep, feel free to change the timeline on the original proposal and create a pull request. The PR will need 3 approvals, but this should happen rather quickly, and will take the pressure off.

@keeganquigley
Copy link
Contributor

Hi @JafarAz do you still plan to submit an amendment?

@JafarAz
Copy link
Contributor

JafarAz commented Jul 25, 2023

Hi @keeganquigley apologies for the delay. Will get to it this week

@dzmitry-lahoda
Copy link

dzmitry-lahoda commented Sep 10, 2023

Here is overview of Milestone 1 delivery https://github.com/ComposableFi/composable/blob/main/docs/docs/internal/cosmwasm.md .

From Milestone 2, mostly done.

I see from what remaining.

Article - do we have one? AFAIK we have published product documents explaining these things?

PolkadotJS interacts well with contracts to execute transactions, but for query we lack seems (need to make it easy using PD.js via storage tab or via CLI parameter --query raw to dump whole state like in Cosmos SDK).

@semuelle
Copy link
Member

Hey @dzmitry-lahoda, we are still waiting to hear back from @JafarAz on the contract amendment linked above. Can you look into it?

@keeganquigley
Copy link
Contributor

keeganquigley commented Sep 13, 2023

Hi @martin-kiss for the sake of transparency, would you possibly be able to confirm these comments regarding change in personnel? Thanks.

EDIT: I see this was already addressed above, so we should be okay to proceed with the milestone evaluation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants