-
Notifications
You must be signed in to change notification settings - Fork 9
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
Investigate how best to support remote contract instantiation #3
Comments
I think this is best done as part of the handshake process where the voice chain sends over the |
I think theres a bigger question hiding here with supported features, and you touched it in the handshake spec briefly: https://gist.github.com/0xekez/ea27a25d9de566a579ade4e436f89ff7#try if we take I think we need to discuss how we handle supported features:
Probably not the best place to put all those questions, probably I also jump a head by a lot, but I feel like those are important questions that we need to answer to know the course of action we want to take. |
Thinking more about this, I think its best to stick with If im not mistaken, what you do on L73, you basically return the data field to the callback and ignore the Events, I think this is a mistake, I think it should return the whole data as we got it: |
awesome 🙏 this sounds great. |
Thanks so much for these detailed thoughts.
This is a good observation. How about making
Amazing idea. Could you make a ticket for this? I think the only action now is to make the voice the admin of its proxies. We can follow up with that migration logic in a future version, and migrate to it.
I agree with your conclusion here that the solution seems non-obvious, but it is worth documenting and considering. Mind making an issue for this as well?
Maybe we just close the channel on migration and then make a new one?
Yes, I am 99% sure can build a wrapper that converts JSON CosmosMsg to proto3 and wraps ICA. This was a big design consideration in the handshake design.
This is good! Thinking far ahead is how we make great software. |
the key to making this instantiate2 optional extension work is that we are clear in the spec that the version JSON may contain additional fields in the TRY and CONFIRM steps. this way a note module can observe the presence of "instantiate2" in the voice version, and use those fields for address generation. if the note would like to require instantiate2 support, it can add the extension to its version. another way of saying this is that notes express optional preferences by observing the contents of the voice extensions. |
Will open the issues.
This should work for the start, but thinking of the future, I think handshake features should be a set of features instead of single features.
If that doesn't change any addresses (wont effect UI/UX) then sure, probably the optimal way of doing it.
Ok thats good, I think any solution that doesn't work with a module will be limited and unusable in the future. (same goes the opposite way) |
@Art3miX, something else we need to consider for this is how to describe the rules of returning data from remote chains in the Polytone spec. My guess is that the best way would be to say "for |
polytone/tests/simtests/functionality_test.go Lines 443 to 445 in 8be00af
|
We should make instantiating contracts and getting the address of the instantiated contract simple.
Currently, in
proxy
, we parse the data returned from execution:polytone/contracts/proxy/src/contract.rs
Lines 72 to 75 in ae74667
I think that if we did not do that parsing, the receiver of the callback may be able to call
parse_reply_instantiate_data
on the returned data and get the address the same way they normally would in a reply. We should verify this, and consider moving to that system if no better way to instantiate contracts is revealed.The text was updated successfully, but these errors were encountered: