04:24:09 After I sent a transaction, the view-only wallet can view incoming and outgoing transactions, can anyone explain why? 04:26:04 View only wallets can't see outgoing transactions, they can only see change as incoming transaction. 04:39:42 * willyijinin[m] uploaded an image: (496KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/XNJIxYIPdVwSsChdKZzsgPAY/Screen%20Shot%202021-12-17%20at%2012.38.24%20PM.png > 04:43:08 I sent a transaction using view-only wallet rpc and offline wallet. Then I query my view-wallet-rpc and the balance includes outgoing txns. 04:43:08 But I find the screenshot more convincing. I have imported the view-only wallet onto my monero GUI and it also shows all the outgoing transactions and the correct balance that counts both incoming and outgoing transactions. 04:45:21 How can you send a transaction using a view-only wallet/key? Are you sure its not a hot wallet? 04:46:07 entry1: https://github.com/monero-ecosystem/monero-javascript/blob/master/docs/developer_guide/view_only_offline.md 04:46:07 This doc explain how with a combination of view-only wallet + offline wallet. 04:46:40 willyijinin[m]: what is your exact question now? 04:47:04 if you export/import outputs and key images you can see outgoing tx 04:47:13 Ok then. 04:47:15 but if you just have a view key you can't 04:47:20 But you always need the private key to send funds, correct? How is it a true view-only wallet if you sent a transaction 04:47:53 @entry1 Please check the doc. 04:47:55 entry1[m]: you sign the transaction from an offline wallet 04:48:16 which has the private spend key 04:49:40 selsta: I understand you now. But this question derives from a more difficult issue. Please see this github issue: 04:49:40 https://github.com/monero-ecosystem/monero-javascript/issues/71 04:49:40 Do you know why? 04:52:29 willyijinin[m]: can you try to add exportOutputs(true), same for exportKeyImages(true) 04:52:48 selsta: Why? 04:52:58 so that it exports all outputs and key images 04:53:05 otherwise it only exports new ones 04:53:59 (assuming it defaults to false, which I don't know about this library, but it's worth a try) 04:56:46 selsta: It works but why exports all outputs and key images works? And if it works why the library defaults to only export new ones? woodser 04:57:16 it's just how it's done in monero code 04:57:31 don't know the exact reason for it 04:58:55 selsta: Thank you very much. 04:59:19 willyijinin[m]: https://github.com/monero-project/monero/blob/master/src/wallet/wallet2.h#L1384 04:59:33 `bool all` defaults to `false` 05:00:12 Do you happen to know the answer to this question? 05:00:16 I call this `const result = MoneroUtils.validateAddress(address, net);`... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/2fa40dd3e1d100e9c4eb43913ff21a39458b51be) 05:00:43 selsta: 05:01:23 need to see your full code 05:02:36 This is my full code:... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/b30ad0b0df44e7ad80a903925ad1a2a2a6c764c5) 05:04:52 nothing obvious, woodser might know 05:07:01 selsta: 05:07:01 https://github.com/monero-ecosystem/monero-javascript/blob/master/docs/developer_guide/view_only_offline.md 05:07:01 In the doc, the view-only wallet exports the outputsHex to the offline wallet, and then the offline wallet immediately exports the keyImage to the view-only wallet? 05:07:01 I thought the "Related one-time private key x(keyImage) is specific to unspent output." Since I haven't specified the amount yet, how does the offline wallet know which output is being used next, and bond to the Keyimage? 07:20:19 Also, I don't understand why offline wallet need to export keyImages to view-only wallet, and then let view-only wallet to create a transaction, then export unsignedTx back to the offline wallet to sign? Can't offline wallet create the transaction and sign it since it already has the keyImages? 08:10:01 willyijinin[m]: Key images solely specify the TX used as an input (as a ZKP). It doesn't have the private key needed to generate the proofs on destinations/amount out. 08:10:57 I'm not overtly familiar with the exact process. IIRC the TX hash is signed as part of CLSAGs which is the ring signatures proving the key image's legitimacy and I couldn't comment on how the private key is used in relation to amounts out (if it is). 08:11:05 But I can comment on why it's like this. Auditability 08:11:50 If you have a charity which receives funds, and wants to prove it's not embezzling them, it needs to provide all key images (and ring signatures accordingly for a ring of 1). Then, checking if funds have been spent is as simple as checking for presence on the blockchain 08:12:08 But if you published key images and they were sufficient... your charity just got robbed. 08:12:59 ... wait, I may have misread this question. I'm sorry. I think I still answered the surrounding context though 08:13:34 Offline wallets knows key images. Offline wallet doesn't know what's on the blockchain. View-only wallet does know what's on the blockchain. It can specify which inputs to use accordingly to prevent double spend attempts. 08:13:47 Sorry for misunderstanding your question initially. Hope that helps 12:17:02 will.yijinin: for each transaction you recieve, there is an associated key image that can *only* be calculated if you have the private key.... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/382fd25bb617a3612adfdd1ad667655ad918d6b8) 12:21:33 will.yijinin: sorry for wall of text. 12:21:33 It was formatted before I sent it. 12:21:33 :/ 12:24:29 (each output, for clarity) 12:27:02 ^right. for each output received, not for each txn received 12:28:11 will.yijinin: you need to call `await LibraryUtils.loadKeysModule()` before using `MoneroUtils.validateAddress()` so the wasm is ready to be used for synchronous utilities 13:15:26 jetsteel: woodser Do you happen to have java sdk or js sdk to decode the transaction with privateViewKey? 13:19:08 Actually get the address from the `vout.key` from the transaction, what the view wallet is doing. 13:43:53 .merges 13:43:53 Merge queue empty 13:47:34 .merge+ 8101 8044 8041 13:47:34 Added 13:49:00 vtnerd: regarding bp+, could you check if mooo changed everything relevant from your review and approve it if so? https://github.com/monero-project/monero/pull/7170 17:10:29 selsta: yes, and Im currently reviewing the most recent multisig change by 17:11:24 ok, as long as it's on your todo :) 18:00:31 will.yijinin: I do not.