forked from woodser/monero-ts
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathtodo.txt
150 lines (147 loc) · 8.86 KB
/
todo.txt
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
150
mjs wallets incompatible with monero-java/monero-project
deprecated dependencies
esling config?
support daemon listener js object
support strings in queries, etc
wallet.waitForTxsToClearPool()?
http request timeout
run testSendToMultiple() a few times to start wallet or send to random subaddress
monerowalletrpc.js/java can use subaddr_indices_all instead of manually setting all indices (wallet_rpc_server.cpp:1420)
simplify getting available outputs - alias isLocked? isAvailable?
support sign(msg, accountIndex, subaddressIndex) default 0s
support create_subaddress count up to 64 at a time
support on_estimate_tx_size_and_weight
wallet_rpc_server on_create_address "Count must be between 1 and 64."
only get failed synchronize message for one wallet when multiple wallet syncs fail
separate keys tests?
test saving tx note when creating tx
getBlockTemplate() getNextSeedHash sometimes not null
free tx set, tx, transfer, outputs from getTxs(), createTxs(), etc
why not waiting for tx pool?
error when wallet already open?
end-to-end sweep test which fans funds each block for 10 blocks then tests all sweeps, use singleton sweep wallet to re-use on tests for each wallet type
inherit tx config fields in transfer, output configs?
check for unrecognized tx config
wallet2 1128 ::move() causes warning
pre-compress wasm file so server is not compressing when requested: https://emscripten.org/docs/compiling/WebAssembly.html?highlight=wasm, STANDALONE_WASM
optimize asyncify, see https://kripken.github.io/blog/wasm/2019/07/16/asyncify.html
rpc mutisig test failing when run with other tests
startSynchronizing() uses pre-started loop for random start time like full wallet?
real daemon listener instead of registering function to receive block headers
wasm checkTxKey(), getTxProof(), checkTxProof(), getSpendProof(), getReserveProofWallet()
rpc supports view-only request failed: 0, or error after previously called
fix consistent failures in tests (notification failures, Can sync a wallet created from keys numConfirmations increased by two)
getSyncHeight() top level?
wallet2.h updates: wallet_rpc on_sweep_all now sweeps all subaddresses by default, res.signature = m_wallet->sign(req.data, {req.account_index, req.address_index});, on_estimate_tx_size_and_weight
testCheckForUpdate returns confusing error if offline
update MoneroWalletRpc/MoneroWalletJni getTxs() to use missing tx hash logic like monero_wallet_full::get_txs()
sync end height != daemon height for long syncs
implement Can submit a mined block to the network
compare sync performance with multithreading vs singlethreading - build both?
await MoneroWallet.create({type: "full", networkType:, 2, connectionUri: connection: {uri: : daemonUri: "...", mnemonic: "})
MoneroDaemonRpc support 3 string args, just like MoneroWalletRpc or factor method? copy constructor?
support MoneroWalletRpc(string uri, string username, string password) like java
build boost and openssl in ./bin/build_dist.sh only if necessary
emscripten logging
in-memory wallet; wallet2 password is required to create valid cache file on creation (start with tests)
delete old branches
test queuing sync requests in test which opens and closes multiple wallets
low severity vulnerabilities
find boost version in cmake lists
externalize test config
filesystem can be used in emscripten for full wasm wallet, possibly supports memfs: https://emscripten.org/docs/api_reference/Filesystem-API.html
open bug on check key no funds received despite transfer - caused by importing key images?
re-test with pthread and compare performance, could load pthreaded library if nodejs or browser supports
namespace exported types to object instead of this.?
"Can update a locked tx sent from/to the same account as blocks are added to the chain" sometimes gets stuck waiting for updates, possibly because tx was rejected with double spend?
daemon rpc getTxs() does not return tx blocks
overload toJson() model protos and use JSON.stringify() instead of class toJsons()
master sort MoneroWallet.js with top level methods
monero_wallet_full get_keys_file_buffer/get_cache_file_buffer use m_password instead of arg
overload create_wallet_* instead of http_client=null?
compare sync speeds with and without notifications
compare performance with dynamic memory growth
update assert.equal(BI, BI) -> assert.equal(BI.toString(), BI.toString()) in tests
port pool relay tests from java TestMoneroWalletCommon.java
port testSyncWithPoolSubmit from java
monero_wallet_full::set_daemon_connection is_local_address() uses common/util which requires libunbound
libsodium dependency in monero-cpp, why doesn't monero-project's work?
test "Can get transactions by id" passes tx query where txs is array of characters
mymonero monero_wallet_utils.cpp 182 mnemonic sanitation
emscripten bind can return native vectors, see https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html
jni compare ground truth test sometimes shows gt output not unlocked but jni is unlocked
support keys-ony wallet integrated address, accounts, subaddresses
pruning
mms
getBlocksByRange() end should be exclusive
model rct_signatures and rct_prunable
what happens if sweep_all is not given account_index. if it sweeps wallet, replace sweepWallet() impl
test filtering on hasDestinations
MoneroTxTestConfig extends MoneroTxFilter
MoneroTxConfig setIncludeVouts(), getIncludeVouts()
MoneroTxConfig isCompatible(MoneroWalletTx)
wallet.getTxById() for convenience?
send priority has no default, must pick one
don't differentiate in spec uint vs long, BigInteger? or specify detailed types (uint64)
class diagram query txs, transfers, vouts
checkTxProof(signature, ...)?
consider how api should generate subaddresses client side
one call per get/set bandwidth limits?
daemon.getBlocksById(), default implementations
daemon test failed txs more
wallet test coinbase txs
sweep subaddresses test
test that note is set if specified in send config
set subaddress getUnspentOutputCount() with outputs assigned
validate all input parameters to api
test every block of the chain
not directly testing sweepUnlocked()
daemon binary tests
daemon notification test needs to test tx merging
merge asserts type
how to handle 'confirmations' block height to add the tx to the chain if unconfirmed? corallary of unlock height?
handle excess undefineds and enable deepEqual() in testWalletTxCopy()
way to throttle rpc requests with agent instead of throttle-request to preserve stacktrace?
send to multiple, suggested_confirmation_threshold outgoing payment 6 but incoming payments 1; large discrepency
remove text-encoding dependency
test notifications hardwired to account 0 which gets emptied by reset tests
test all tx fields in daemon, update tests to be like wallet
test json serialization / deserialization specifically, stringifying in between so cannot be any live objects
support vout filter in tx filter?
undefined amounts instead of 0 for rct amounts
block comments in models
support setting daemon log level
split BooleanSet into new project
JS now has native BigInt class which could be used instead of current BigInteger
switch to jest?
csv export of types
time profiling
mock response test framework
refactor copying to not be downward of a tree rooted at tx but instead correct per each part of a graph
add typescript?
mymonero javascript wallet
RPC
-1: Failed to get the right transaction from daemon
-4: failed to get output distribution on send rests (wallet rpc transfer, transfer_split, sweep, sweep_single, etc)
-4: Change address is not ours on testSweepUnlocked();
why is subaddr_indices list of map?
subaddresses occluded by outgoing counterparts when sent from/to same account (#4500)
key proof indicates no funds received despite known incoming transfer from/to same account
not enough money right after opening wallet, pretty much every other run
outgoing transfers always return subaddress index 0 (#5171)
duplicate outgoing transfers returned for different subaddress indices, way to include subaddress indices?
add relayed to daemon rpc get_transactions, wallet rpc get_transfers, else must use get_transaction_pool (#5137)
add output_indices to get_blocks_by_height.bin (#5127)
wallet rpc sweep_single documentation not correct; contradicts example
daemon rpc supports cors wildcard character (#5172)
unconfirmed tx missing destinations even though known by wallet
send from/to same account, after first confirmation outgoing tx amount is 0 but has payments with amts, so discrepency
show_transfers returns unconfirmed outputs
introduce way to identify change output from blockchain? that solves unknown sent amt issue
identify one call per acount/subaddress and support "all" flag
/get_transactions returns duplicate data per transaction
daemon get_txs prune documentation missing
document alt chain `block_hashes` and `main_chain_parent_block`
each call to `open_wallet` toggles whether or not pending transfers return (#5106)
transfer with do_not_relay then relay_tx issue (#5107)
ability to create new wallet which randomly generates seed?