-
willyijinin[m]
After I sent a transaction, the view-only wallet can view incoming and outgoing transactions, can anyone explain why?
-
selsta
View only wallets can't see outgoing transactions, they can only see change as incoming transaction.
-
-
willyijinin[m]
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.
-
willyijinin[m]
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.
-
entry1[m]
How can you send a transaction using a view-only wallet/key? Are you sure its not a hot wallet?
-
willyijinin[m]
-
willyijinin[m]
This doc explain how with a combination of view-only wallet + offline wallet.
-
selsta
willyijinin[m]: what is your exact question now?
-
selsta
if you export/import outputs and key images you can see outgoing tx
-
willyijinin[m]
Ok then.
-
selsta
but if you just have a view key you can't
-
entry1[m]
But you always need the private key to send funds, correct? How is it a true view-only wallet if you sent a transaction
-
willyijinin[m]
@entry1 Please check the doc.
-
selsta
entry1[m]: you sign the transaction from an offline wallet
-
selsta
which has the private spend key
-
willyijinin[m]
selsta: I understand you now. But this question derives from a more difficult issue. Please see this github issue:
-
willyijinin[m]
-
willyijinin[m]
Do you know why?
-
selsta
willyijinin[m]: can you try to add exportOutputs(true), same for exportKeyImages(true)
-
willyijinin[m]
selsta: Why?
-
selsta
so that it exports all outputs and key images
-
selsta
otherwise it only exports new ones
-
selsta
(assuming it defaults to false, which I don't know about this library, but it's worth a try)
-
willyijinin[m]
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
-
selsta
it's just how it's done in monero code
-
selsta
don't know the exact reason for it
-
willyijinin[m]
selsta: Thank you very much.
-
selsta
-
selsta
`bool all` defaults to `false`
-
willyijinin[m]
Do you happen to know the answer to this question?
-
willyijinin[m]
I call this `const result = MoneroUtils.validateAddress(address, net);`... (full message at
libera.ems.host/_matrix/media/r0/do…dd3e1d100e9c4eb43913ff21a39458b51be)
-
willyijinin[m]
selsta:
-
selsta
need to see your full code
-
willyijinin[m]
-
selsta
nothing obvious, woodser might know
-
willyijinin[m]
selsta:
-
willyijinin[m]
-
willyijinin[m]
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?
-
willyijinin[m]
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?
-
willyijinin[m]
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?
-
kayabaNerve
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.
-
kayabaNerve
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).
-
kayabaNerve
But I can comment on why it's like this. Auditability
-
kayabaNerve
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
-
kayabaNerve
But if you published key images and they were sufficient... your charity just got robbed.
-
kayabaNerve
... wait, I may have misread this question. I'm sorry. I think I still answered the surrounding context though
-
kayabaNerve
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.
-
kayabaNerve
Sorry for misunderstanding your question initially. Hope that helps
-
jetsteel[m]
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
libera.ems.host/_matrix/media/r0/do…25bb617a3612adfdd1ad667655ad918d6b8)
-
jetsteel[m]
will.yijinin: sorry for wall of text.
-
jetsteel[m]
It was formatted before I sent it.
-
jetsteel[m]
:/
-
moneromooo
(each output, for clarity)
-
hyc
^right. for each output received, not for each txn received
-
woodser[m]
will.yijinin: you need to call `await LibraryUtils.loadKeysModule()` before using `MoneroUtils.validateAddress()` so the wasm is ready to be used for synchronous utilities
-
willyijinin[m]
jetsteel: woodser Do you happen to have java sdk or js sdk to decode the transaction with privateViewKey?
-
willyijinin[m]
Actually get the address from the `vout.key` from the transaction, what the view wallet is doing.
-
selsta
.merges
-
xmr-pr
Merge queue empty
-
selsta
.merge+ 8101 8044 8041
-
xmr-pr
Added
-
selsta
vtnerd: regarding bp+, could you check if mooo changed everything relevant from your review and approve it if so?
monero-project/monero #7170
-
vtnerd
selsta: yes, and Im currently reviewing the most recent multisig change by
-
selsta
ok, as long as it's on your todo :)
-
jetsteel[m]
will.yijinin: I do not.