sdk-monorepo/HISTORY.md
2023-04-08 19:18:14 +00:00

151 lines
5.4 KiB
Markdown

# History
### 2023.04.09 (2023-04-09)
Did:
* All deposits working now, meaning `buildDepositTxs` works. Batching cannot technically happen, due to the impossibility of approving for a MultiCall (without getting robbed). We should be able to allow batching withdrawals for relayers though.
* We can use a `TorProvider` now, which is to be used for privacy and running future implementations behind Tor.
* EXPORTS ARE HERE, check `index.ts`, you can now actually start _using_ this SDK although very experimental.
Next:
* Keep on working.
### 2023.04.06 (2023-04-06)
Did:
* Code quality, notes being backed up in cache with fetched events.
* Single ETH/token deposits seemingly working (need to test withdraw).
* Testing, resources.
Next:
* Need to fix batch multicall (need to see why the call isn't working, if it gets bad I'll do testnet).❗
* After that, create censor checks for rpc's and a class which auto-checks this (the "FreedomProvider").❗
### 2023.04.03 (2023-04-03)
Did:
* Enhanced code quality majorly, cleaned up logic bloat on `sync` and defined types better.
* Started writing deposit code, tested some crypto functions.
* Added dependencies to NPM.
Next:
* We need to implement a function which allows deposits to be batched into one function call.❗ (almost there)
* Need to test listening for txs in a separate test by using forknet. Let's see whether I can use hardhat network to stay minimal without having to switch over using the entire SDK or something.✅
* Need to see how to properly call the deposit functions, and whether it can even be done, in combination with multicall.❗
### 2023.04.01 (2023-04-01)
Did:
* Tornado.Engines.Classic.sync can now properly synchronize and store all events in a _persistent_ PouchDB database.
* Maybe last "Did" note was confusing, today we cleaned everything up and have a _well working_ implementation.
* Reorganize namespaces in `main.ts`
* Right, also the non-persitent case was already implemented by just using database memory mode...
* Started adding check marks and the like to history to see what I'm doing.
Next:
* Still need to add back those NPM dependencies. Tomorrow.✅
* Need to define behaviour when listening to latest transactions. Need to see how to best bridge from regular sync and use event listeners to handle this.❗
* Need to start writing more crypto logic, get `leInt2Buff` TS function signatures working.✅
### 2023.03.30 (2023-03-30)
Did:
* Define entire logic for caching synced data.
* Note that the main test probably won't work now because the logic is now diff.
Next:
* Need to define behaviour in the non persistent case. This means no putting docs. ✅
* Need to organize types in main better! ✅
* Need to test main functionality sync behaviour. ✅
* Need to add dependencies back to NPM... or something else.✅
### 2023.03.29 (2023-03-29)
Did:
* We can now sync deposits :], check the tests. It should show 6 deposit objects printed to console.
Next:
* Need to speed up development.
* Remember to make cache zippable and loadable.❗
* Need to think about contract testing methodology in regards to testnet or fork.✅ (ganache fork)
* Do we really need forks? This isn't contract fuzz testing... Only proper deposit behaviour needs to be proven.
* Can we mathematically verify correctness?
### 2023.03.28 (2023-03-28)
Did:
* Change folder naming inside types dir.
Next:
* See below.
### 2023.03.26 (2023-03-26)
Did:
* Set up stuff for tests and added some small tests.
* Wrote stuff for caching and syncing, syncing workable in next commit.
Next:
* Expand further on tests also.
* See below minus my "Did" this time around.
### 2023.03.24 (2023-03-24)
Did:
* Finalized the `PromisePooler`, which will allow us to concurrently fetch deposit data to build the merkle tree.
* Otherwise, contract getters, crypto, types, and some reading.
Next:
* Start doing mocha tests. Lagging behind on this. This is top priority. ✅
* Implement merkle tree synchronization and store it in a PouchDB database. ✅
* Implement rest of the crypto functions. ❗
* Fetch Relayer data and rpc censor checking.
### 2023.03.21 (2023-03-21)
Did:
* Implemented mostly async and data related functionalities.
Next:
* See former.
### 2023.02.18 (2023-02-18) (this is wrong, it was March, but the commit says 02 still...)
Did:
* Continued organizing file structure better.
* Implemented some data related functionalities.
Next:
* Planning out contract event syncs.
* Need to create dedicated provider which checks whether the RPC censors.
* Planning out mocha tests for TDD (this will all be in dev dependencies to minimize bloat).
* Need to inform myself whether it makes sense to add Subgraph like cli or wether we should exclusively sync from chain.
* Need to decide whether to add user & relayer staking into the sdk, governance interactions, it only makes sense, a relayer should be allowed to stake (use ethers encrypted wallets for this, those get printed into encrypted json format so it makes sense to use them, relayers should really use that too...).
* Need to make a strategy of topics of whether it makes sense to keep increasing json files with historical commitments as part of the actual repository? Probably to some fix degree - it would be nice to find some possibility of uploading this type of data permissionlessly (Filecoin?) similarly to a cdn for it. In any case it could work well in combination with a CDN.
* Need to started developing faster :]