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

Code VM #142

Open
wants to merge 82 commits into
base: main
Choose a base branch
from
Open

Code VM #142

wants to merge 82 commits into from

Conversation

jeffyanta
Copy link
Collaborator

No description provided.

@jeffyanta jeffyanta added the wip label Jun 26, 2024
jeffyanta added 28 commits June 26, 2024 16:38
* Include VM as an optional field to the nonce record

* Generalize nonce record to include an environment and instance instead of a VM field

* Update nonce store interface to be environment aware

* Fix common package

* Fix SelectAvailableNonce

* Fix commitment worker

* Fix treasury worker

* Fix sequencer worker

* Fix transaction gRPC service

* Fix nonce worker for nonces on Solana mainnet

* Add main available/released nonce worker flow for VDN

* Setup CVM nonce workers with refactored configs
* Update commitment store with changes related to VM

* Fix treasury worker tests

* Update commitment worker with new flows for the VM (currently missing closing)
* Update treasury pool store with VM related changes

* Fix commitment worker tests

* Update treasury worker to use new VM state
* Simplify Timelock DB model in new VM world

* Update core common and balance packages

* Fix several worker tests
* Use simplistic fulfillment model for virtual instructions

* Handle virtual nonce state in sequencer service due to fulfillment state changes

* Remove scheduler handlers for deprecated commitment management fulfillments

* Update commitment state flows in sequencer

* Construct new on demand transaction for initializing Timelock account

* Construct new on demand transaction for treasury advances

* Fix some worker tests

* Fix commitment checks and comments in private transfer fulfillment handlers

* Disable most sequencer tests until we have something rounded out for the VM

* Fix errors due to vixn updates

* Treasury advance no longer needs KRE memo

* Update all transaction construction logic for VM

* Fix additional memo in transaction construction of closing account with balance

* Add support for compression in place of closing

* Update virtual instruction set with latest VM changes

* Get rid of closing dormant account action and fulfillment handlers on the sequencer

* CloseEmptyTimelockAccount is now an on demand compression transaction

* Add sequencer logic for closing commitment account through compression

* Remove unlock PDA from exec instruction

* Create close commitment fulfillment when commitment account is about to be closed
* Sketch out simple VM ram management DB store with memory implementation

* Add postgres implementation of VM ram memory management store

* Allow unordered memory allocation results in tests

* Add VM ram store to data provider

* Add ability to free VM memory by virtual account address

* Free memory when accounts are deleted through a fulfillment

* Move on demand transaction creation into the DB transaction handler

* Reserve VM memory for on demand fulfillments that create new accounts

* Use indexer client to get virtual account memory locations in the sequencer
* Add VM storage data store for initializing and getting account with minimum available capacity

* Add ability to reserve storage in DB cache

* Reserve VM storage when creating on demand transactions for deleting accounts

* Implement simple service to dynamically spin up storage accounts when needed
* Pull in protobuf APIs from vm branch

* String out unnecessary stuff in transaction service not required for cash

* Update OpenAccounts, SendPrivatePayment and ReceivePaymentsPrivately intent validation

* Remove now unused features in SubmitIntent

* Temporarily remove more privacy upgrade stuff

* External transfers are not supported yet

* Update SubmitIntent action signature flow

* Add todo note on nonce selection for upgrade actions

* Replace legacy splitter_token package for deriving commitment address

* Fix private transfers to use the commitment vault versus commitment state address

* Bring back other intent types

* Disable remote send and tipping since there are currently unknown strategies

* Update vault_address field in postgres commitment store to previous value
* Define anchorless VM enums

* Update PDAs

* Define unkown memory layout

* Update virtual relay account state

* Define virtual instruction messages

* Update virtual instructions

* Remove ATA deposit instruction

* Remove instructions system variable

* Update filename for consistency

* Update instructions

* Update Code VM, memory and relay accounts

* Update MemoryAccountWithData to use the new simple memory allocator

* Small cleanup/consistency round

* Use a new program key for deployment and testing

* Remove mixed memory layout

* Fix server

* Updates from indexer changes
* Update init memory instruction args

* Hanlde unmarshalling both version of memory accounts

* Reduce duplicated code for unmarshalling memory account structs

* Rename simple allocator to slice allocator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant