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

move atomicTransfer from helper into Zoe #6679

Open
3 of 5 tasks
Chris-Hibbert opened this issue Dec 15, 2022 · 10 comments
Open
3 of 5 tasks

move atomicTransfer from helper into Zoe #6679

Chris-Hibbert opened this issue Dec 15, 2022 · 10 comments
Assignees
Labels
hygiene Tidying up around the house technical-debt v1_triaged DO NOT USE vaults_triage DO NOT USE Zoe package: Zoe

Comments

@Chris-Hibbert
Copy link
Contributor

Chris-Hibbert commented Dec 15, 2022

What is the Problem Being Solved?

#6577 added a new way to reallocate assets between Seats. In order to reduce the transition cost, the initial version was done as a helper method rather than building it into Zoe, and the previous approach (stagings) continues to be supported.

Description of the Design

Remove the support for the old approach from Zoe, and move the implementation of the new approach into ZCF. atomicRearrange becomes a method on ZCF.

Security Considerations

Better usability and robustness for developers. The only security implications are in the migration.

Test Plan

#6577 didn't add tests. It instead relied on contract's usage to exercise the new API. We should add tests as we move it into Zoe.

Action Steps

copying from a comment lower down so github can help with tracking:

The work involved includes

  • adding new functionality to ZCF
  • deprecating the old
  • modifying all contracts in agoric-sdk
  • updating contracts in other repos
    and then later
  • removing the deprecated helper

Tasks

No tasks being tracked yet.
@dckc
Copy link
Member

dckc commented Dec 16, 2022

Since #3850 is about the Zoe API and not about usage in some contracts, I re-opened it. I don't think it's worth tracking this separately; I suggest closing this as a dup.

@Chris-Hibbert
Copy link
Contributor Author

#3850 is generic and has nothing specific to say about this approach, or how close it is to being finished.

This issue is very focussed and indicates what work remains. It's the one I want to look at when I think about what to do next.

@dckc
Copy link
Member

dckc commented Dec 19, 2022

fair enough.

@rowgraus rowgraus added the vaults_triage DO NOT USE label Dec 20, 2022
@ivanlei ivanlei added this to the Vaults RC0 milestone Feb 1, 2023
@Chris-Hibbert
Copy link
Contributor Author

Chris-Hibbert commented Feb 1, 2023

The work involved includes
[x] adding new functionality to ZCF
[x] deprecating the old
[ ] modifying all contracts in agoric-sdk
[ ] updating contracts in other repos
and then later
[ ] removing the deprecated helper

@dckc
Copy link
Member

dckc commented Feb 1, 2023

  • modifying all contracts in agoric-sdk

Is there more of that to do? #6577 did a pretty thorough job of it, AFAICT.

@Chris-Hibbert
Copy link
Contributor Author

Is there more of that to do?

I don't know of anything that was missed, but the old methods are still there, so we can check before closing the issue.

@Chris-Hibbert
Copy link
Contributor Author

#7900 added the functionality into ZCF.

@Chris-Hibbert
Copy link
Contributor Author

I believe there are no remaining contracts in agoric-sdk that use zcf.reallocate(). I'm going to check that box.

There are still docs, comments and tests that refer to it. I will clean some of that up. When we remove the method from ZCF, we can get any that remains.

Is there any reason to believe there's any code in other repos (other than abandoned projects) that continues to use zcf.reallocate()? Is there any third party code we should be concerned about?

@dckc
Copy link
Member

dckc commented May 23, 2024

I can't think of any relevant code that might be using it.

We could do an audit of mainnet bundles to be certain. It seems straightforward, if somewhat laborious.

@Chris-Hibbert
Copy link
Contributor Author

There aren't very many contracts on MainNet (and fewer that do any allocation), so it shouldn't take long.

I've been thinking of making a list of the versions of code in each vat. My main interest is tracking which version of ZCF got included in each contract as they upgraded, but it would also be helpful to track contract bundles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hygiene Tidying up around the house technical-debt v1_triaged DO NOT USE vaults_triage DO NOT USE Zoe package: Zoe
Projects
None yet
Development

No branches or pull requests

5 participants