-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
38 lines (28 loc) · 2.16 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
- Implement a way to gather performance statistics from the Travis builds
- It would be cool to have dataflow-like programming available, so I could say:
- dataflow X := f()
- So that whenever one of the dependencies of X is updated, teh value of X is also updated.
- How to figure out where to put stuff (e.g., memory, calldata, storage, etc.)?
- Can we do this automatically and easily?
- Automatic optimizations:
- We will typically track "total" for an asset automatically (i.e., the amount in circulation + the amount in any given storage)
- However, if never used, then we can omit it.
- In a `flow one x such that P from A to B`, we can detect when the condition P will always designate at most one object and then do an early exit when we're doing the search.
- This is somewhat starting to enter query-optimizer-land, so probably out of scope.
- If we use checking to see if a key is in a mapping, then we create a separate mapping (X => bool) to store this info, otherwise we don't.
- Of course, depends exactly how we compile, if we ever get around to actually implementing the langauge.
- We should allow string equality tests, and just do the keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)) thing under the hood.
- How to handle inheritance and interfaces, if at all?
- Related: how to interface with Solidity or Obsidian code, if needed?
- Token is kind of like an existential type, sealed inside ERC-20 bank
- I was really thinking of it more like a path-dependent type.
- Not sure what the "right" way is.
- What should be part of the static contract construct and what should be an instance?
- e.g., should resources, sinks be static or dynamically created.
- Not being able to this makes it kind of awkward to make a token exchange, for example.
- Look at other applications that are not ERC-20 and try to write them.
- Try other research projects examples?
- https://dl.acm.org/doi/proceedings/10.5555/3355356
- Implement other proofs of concept
- Maybe look at the testnet too (is there a corpus available here?)
- That one voting application I found is somewhat interesting.