-
Notifications
You must be signed in to change notification settings - Fork 9
/
TODO
149 lines (134 loc) · 5.08 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# reservation commitments
Node at hop, commits to:
- settle (irrevocably issue/credit the funds) if:
- it has not yet canceled the transaction.
- it is presented with the lock.
- node at hop-1 has made the same commitment.
- cancel the transaction if:
- it has not yet settled the transaction.
- node at hop+1 has canceled.
# preview
[ ] finish site
[ ] cut 0.0.2-pre
[ ] blog post draft
[ ] documentation
[ ] send r?
# cli
[ ] close (offer) command
[ ] pay with path of length 2
[ ] list transactions (canonical or destination)
[x] pay command
[x] check existence of quote asset on trust
[x] check credentials
[x] add confirmations to actions (at least register)
[x] install process
[x] cli install
[x] register command
[x] Mint-Protocol-Version header
[x] logout command
[x] fix get parameter for common
[x] list balances
# register
[x] site credentials page
[x] roll user
[x] retrieve user
[x] setup LetsEncrypt
[x] send email on create user
# mint
[~] list endpoint
[ ] list (asset) transactions
[ ] list asset operations
[x] list asset offers (order book)
[x] list asset balances
[x] list balances
[x] list assets
[x] paying yourself with a currency you trust does not decrease the balance (expeted, tested)
[x] error on offer with same currency
[x] allow cancellation without plan computation (use offer path, move CheckCanShouldCancel to plan))
[x] reintroduce transaction expiry on top of safe cancelation
[x] propagate cancellation on syncrhonous failure
[x] async propagation in case of failure
[x] support for 404 on retrieve transaction
[x] transaction safe cancelation
[x] refactor transaction creation/settlement
[x] Mint-Protocol-Version header
[x] default LetsEncrypt SSL cert provisioning in production
[x] default self-signed cert provisioning in QA
[x] retrieve asset publicly
[x] fix offer fixup on transaction expiration
[x] split endpoints between creation and propagation
[x] balance propogation
[x] pass DSN for DB, support Postgres
[x] check expiry at settlement
[x] check expiry of transactions at creation
[x] transaction expiration
[x] async proceses
[x] propagation protocol for both operations and offers
[x] idempotency of propagation (load offer/operation and save if they exist and return 200)
[x] validate asset is created when creating offer and test
[x] figure out when to set the offer as consumed (multiple crossings might be reserved)
[x] remove user from records entirely?
[x] remove the ability to create an operation directly?
[x] transaction starting from an asset not owned by owner
[x] janitorial work on test extractions (assert instead of fatal)
[x] enforce we handle hops in order (we handle them all)
[x] enforce the hops belong to the right mint
[x] secure concurrent transaction settlement
[x] secure concurrent transaction creation and settlement
[x] transaction settlement
[x] transaction locks
[x] transaction creation
[x] replace 1000*1000 by protocol constant
[x] log prefix (mint)
[x] make user optional for propagated transactions (or other objects)
[x] move status values to protocol
[x] move Execute to ctx
[x] remove nil from creation operation, prevent issuer from owning balance
[x] rename Normalized something Address to Owner
[x] split controller into endpoint.CreateXXX object with Execute and Validate
[x] move mint host to context
# tests
[ ] test failing nodes (A,B,C)
[ ] B gives different offer price to A and C
[ ] B fails reservation entirely
[ ] B pass reservation through but fails responding to C
[ ] A settles to C who fails
[ ] test same mint multiple users
[ ] test cycles in offer path
[ ] offer closing + attempt transaction on it
[ ] offer closing of an offer not owned by caller
[ ] test that consumes an offer entirely (check status)
[ ] test settlement propagation on syncrhonous failures
[~] transaction tests with misbehaving mint
[x] test transaction cancellation
[x] test asset retrieval
[x] test settling an expired transaction
[x] transaction expiration and balance fixup
[x] transaction expiration and offer fixup
[x] test async offer/operation propagation
[x] operation propagation
[x] offer propagation
[x] concurrent call to transaction settlement attack test
[x] test settlement with erroneous secret
[x] concurrent call to transaction creation attack test
[x] test transaction that uses the same user twice
[x] test transaction that uses more than what is left on an offer
[x] make the DB a context value that can be created independently for tests
[x] find a way to set the MintHost after start or set the mux after creating the httptest.Server
[x] support in memory db
# async processes
[x] cancellation propagation
[x] expiry on top of cancellation
[x] offer propagation
[x] operation propagation
[x] transaction expiry
[x] settlement propagation
# r? preview
dm
gdb
rauchg
gabhubert
acavailhez
kwi
gyril
migliris