Closed MontyKirkman closed 8 years ago
I have the exact same problem. All of my maid is locked in a P2SH address on electrum. It is getting very disheartening with the prospect all of my maid might be all locked up.
Hi,
I used 2fa with Electrum thinking it would help with security, but it's turned into a nightmare
I'm sorry to hear you haven't had a great experience, however the Electrum wallet does not support Omni tokens, so there is not too much support we can provide for using Electrum with Omni.
Omni tokens require an "Omni-aware" wallet, of which Electrum is not one.
This address has all my MAID and Synero starts with 3JAX9xkuAc93
This is a multi-signature address. Electrum's 2FA wallets are multisig wallets where the 3rd key is held by a company called TrustedCoin.
When I enter my private key to Omni for the above address I get this address 1KNzUe8RddBG3kTgi9rrfqmVgCNLokLQZK
Your 3JAX address is a multisignature address, there is no single private key.
This is a major bug for anyone that wants to use 2fa (multisig) when storing Omnilayer coins.
This is not a bug in Omni or its software. Sadly this is caused by attempting to spend Omni tokens via a non-Omni compatible wallet.
Your coins are not lost, I've completed your 3JAX address and checked it, the tokens are still at the address. You just need a signed transaction from that address to move them.
As Electrum doesn't support Omni, it can't create this transaction. However it may be feasible to use Omni Core's raw transactions interface to create an unsigned Omni transaction from this multisig address and then pass it over to Electrum for signing.
@MrKaneF
I have the exact same problem. All of my maid is locked in a P2SH address on electrum. It is getting very disheartening with the prospect all of my maid might be all locked up.
The above should also apply to you.
I hope this helps.
Thanks Z
Hey MrKaneF, I assume you've lodged a ticket. Have you had a response back yet? This problem is going to catch a lot of Omni users out I'm afraid. It's a real gotcha. I really hope the fix is easy enough. I didn't realise the problem until MAID spiked the other day and I though I should liquidate a few and have some on hand to convert to Safe coins
I have opened a ticket but have not received a response yet. Looks like our best bet is to trying to create a raw transaction with omnicore and sign that transaction in electrum.
This is not a bug in Omni or its software. Sadly this is caused by attempting to spend Omni tokens via a non-Omni compatible wallet.
Can you let us know what Omni aware wallets there are out there? Cheers
I have opened a ticket but have not received a response yet. Looks like our best bet is to trying to create a raw transaction with omnicore and sign that transaction in electrum.
I'm not a programmer, so I guess this is easy enough to do. Will a Omni dev need to do this for us, or is it something we can do?
I will post here if it works or not.
if you install omnicore it looks like there is an option to create a raw transaction where you can specify which omni asset you want to send by id, it is all by command line though. We would be able to sign that transaction in electrum(hopefully)
Well, I sincerely hope it works. I have my fingers crossed...for you and me :)
Can you let us know what Omni aware wallets there are out there?
The foundation sponsored wallets are OmniWallet (web) and our reference client OmniCore (server/desktop). There are quite a few other services & exchanges that support the Omni Layer technology & ecosystem, but we do not expressly endorse.
I'm not a programmer, so I guess this is easy enough to do. Will a Omni dev need to do this for us, or is it something we can do?
The raw transactions interface is CLI only yes, and is targeted for advanced users. Omni devs can assist, but it's not recommended you let some person on the internet craft a transaction you'll later sign :)
You'll need to attach an input (small one around 10K satoshis so don't need to worry about change) from the P2SH address (omni_createrawtx_input
), along with a payload (create with omni_createpayload_simplesend
and attach with omni_createrawtx_opreturn
) & recipient address (omni_createrawtx_reference
).
@dexX7 is there a current how-to these guys could follow can you recall?
if you install omnicore it looks like there is an option to create a raw transaction where you can specify which omni asset you want to send by id, it is all by command line though. We would be able to sign that transaction in electrum(hopefully)
That's it, yep. Note you don't need to wait for a blockchain sync to use the raw transactions interface.
Ok, So I install reference client Omnicore server/desktop and run this from within it?
You'll need to attach an input (small one around 10K satoshis so don't need to worry about change) from the P2SH address (omni_createrawtx_input), along with a payload (create with omni_createpayload_simplesend and attach with omni_createrawtx_opreturn) & recipient address (omni_createrawtx_reference).
@zathras-crypto
In omnicore-cli is there any way to create a raw transaction without connecting to an rpc? None of the commands are working without an rpc.
Just trying to create a raw transaction that can be imported into electrum for signing.
omnicore-cli "omni_send" appears to be what we want because it specifies "from address" "to address" and a property id but it looks like it is only for use with the omnicore gui wallet itself.
Never mind i think i got it....
@MrKaneF I'm so damn lucky a dev has the same problem as me. I'm so lost it's not funny....
Ya, it's interesting working through the omnicore docs. I haven't created a raw transaction in a while...
In omnicore-cli is there any way to create a raw transaction without connecting to an rpc? None of the commands are working without an rpc.
I'm afraid not. The API is exposed via RPC. There is a CLI RPC client (omnicore-cli) included with the package.
omnicore-cli "omni_send" appears to be what we want because it specifies "from address" "to address" and a property id but it looks like it is only for use with the omnicore gui wallet itself.
omni_send
RPC is a wallet call, and can only be made when the key(s) for the sending address are in the wallet.
Ok, So I install reference client Omnicore server/desktop and run this from within it?
Rough steps (I've asked a colleague if we have an existing how-to, but for now):
1) Send a 10K satoshi output to sendingaddress
. Note the txid & vout of this output.
2) Add this output as input to a blank transaction:
omni_createrawtx_input txidfromstep1 voutfromstep1
3) Create a payload to transfer the tokens:
omni_createpayload_simplesend propertytosend amounttosend
4) Attach this payload to the transaction hex output from step 2:
omni_createrawtx_opreturn rawhexfromstep2 payloadfromstep3
5) Attach the recipient to the transaction hex output from step 4:
omni_createrawtx_reference rawhexfromstep4 recipientaddress
Then finally take the hex from step 5 and verify it:
omni_decodetransaction rawhexfromstep5
Assuming the decoded transaction is from/to your desired addresses & for the right property & amount, you may then take that raw tx over to your alternate wallet & sign.
From memory that's about it...
From memory that's about it...
Yikes! that all looks like fun. I guess if I want my MAID and AMP back I'm going to have to learn real fast what it all means :)
I unfortunately can't sync the entire bitcoin blockchain to be able to interact with the RPC-API , so I am not sure what other options i have :/ I should have never created a 2fa electrum wallet.
I should never have created a 2fa electrum wallet.
I'm with you there. So its not possible to sink the bitcoin blockchain?
On 15/08/2016 11:21 AM, "MrKaneF" notifications@github.com wrote:
I unfortunately can't sync the entire bitcoin blockchain to be able to interact with the RPC-API , so I am not sure what other options i have :/ I should have never created a 2fa electrum wallet.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OmniLayer/omniwallet/issues/1314#issuecomment-239704484, or mute the thread https://github.com/notifications/unsubscribe-auth/AUCsEYtRMRpZPR-GSX4PnzKVq43z3pLlks5qf6MFgaJpZM4JjzTu .
I just don't have enough space on my computer for 70+ gigabytes to store the blockchain just to create a raw transaction. You will be able to though if you have the space.
Ok..well I have a 2TB empty drive. So I can use that. Are the instructions above the correct way to go?
On 15/08/2016 11:28 AM, "MrKaneF" notifications@github.com wrote:
I just don't have enough space on my computer for 70+ gigabytes to store the blockchain just to create a raw transaction. You will be able to though if you have the space.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/OmniLayer/omniwallet/issues/1314#issuecomment-239704886, or mute the thread https://github.com/notifications/unsubscribe-auth/AUCsETNeEHTu6VbPiMRK01mwaHYVmqxeks5qf6SagaJpZM4JjzTu .
Ya those are correct.
That's it, yep. Note you don't need to wait for a blockchain sync to use the raw transactions interface.
If performance is an issue (it's slow because it's downloading/verifying the chain) just disconnect from your network while you create the raw tx.
I just keep getting an "error: couldn't connect to server" when trying to execute the commands.
@zathras-crypto Thanks for your help on this one. It's not going to be easy for me, but at least it's away out of this mess :)
Or i just get a bitcoin.conf error :/
Or i just get a bitcoin.conf error :/
You'll need a basic bitcoin.conf with a rpcuser & rpcpassword in it to use Omni Core. If you have problems getting it running I'm happy to help.
Thanks for your help on this one. It's not going to be easy for me, but at least it's away out of this mess :)
No problems. Of course we could just create these transactions for you and give them to you to sign, but I don't want to encourage folks to blindly sign transactions from people they don't know (who knows where the funds were being sent) so I'd rather help you guys to do it yourselves :)
Even with an rpcuser and rpc password in the bitcoin.conf file i just keep getting a "couldn't connect to server" error.
ok i got it working
No errors so far :)
@MrKaneF Whooo hooo....did you have to disconnect from the network as suggested to get things working?
@zathras-crypto
No problems. Of course we could just create these transactions for you and give them to you to sign, but I don't want to encourage folks to blindly sign transactions from people they don't know (who knows where the funds were being sent) so I'd rather help you guys to do it yourselves :)
Yes, I understand. Is there no way you could do this safely? I just know there are going to be others caught out with this who have no technical ability at all. I'm almost in that category but I think I can struggle through this one with a bit of help.
Well I can actually interact with the RPC-API so that's nice. I'll keep updating my status.
Yes, I understand. Is there no way you could do this safely? I just know there are going to be others caught out with this who have no technical ability at all. I'm almost in that category but I think I can struggle through this one with a bit of help.
There is no way to do it "safely" - it's never safe to sign a transaction from someone you don't know unless you are going to first verify it yourself (to check what the transaction does). This is actually why I put a stop to the "Transaction Builder" stuff we were doing on OmniChest.info.
To be honest it's a scenario we see quite often (folks sending tokens to unsupported wallets - whether it be Electrum, Coinbase, Blockchain etc). It's a difficult one to solve, because how do you prevent users doing this other than saying "please don't try and use Omni with software that doesn't support it".
Well I can actually interact with the RPC-API so that's nice. I'll keep updating my status.
Great, let me know how you get on.
@zathras-crypto I am trying to create a payload, but when i input a 3 for the property id i get an error "Property identifier does not exist."
@zathras-crypto That's fine. I have to keep reminding myself just how new this space is and to expect the unexpected.
The only property ids that i have tested that work are 1 and 2 but maidsafe is property id 3 and that does not work:/
I am trying to create a payload, but when i input a 3 for the property id i get an error "Property identifier does not exist."
Ahh of course, the call is making a check and since we haven't synced up the blockchain as far as the state is concerned property 3 hasn't been created yet.
The payloads can be created manually, can you advise on the amount you want to include in the payload?
@dexX7 perhaps we should remove state checks from the omni_createpayload
calls? What do you think?
I would like to make a test transaction first of 10 maid then if that works send the rest of the maid.
So i will need a payload for 12250 maid also ;)
Payload for prop 3 & amount of 10 is 0000000000000003000000000000000a
.
Payload for prop 3 & amount of 12250 is 00000000000000030000000000002fda
Please remember to run the prepared transaction through omni_decodetransaction
before signing to make sure you're happy with what it's going to do.
Note also as the chain isn't synced you may need to supply a blockheight (use 425000 will be fine) to omni_decodetransaction
to specify to use consensus rules as of that block. That call by default decodes transactions based on the rules as of current chain height (which on your client will be very low and before things like P2SH were enabled).
Thanks a lot man. Never ever forget to decode a raw transaction before signing it ;)
@zathras-crypto
Could you do a payload prop for 82905 MAID. I have 82915, so I'll do 10 first then the rest. So for the first 10 units I use this 0000000000000003000000000000000a right?
I also have Synereo as well (AMP) 53344, So I'll need a Payload for prop 39 for 10 units then another for the rest 53334
Have I just asked for the correct info for my wallet?
@zathras-crypto I am currently trying to decode the transaction but it returns an error: "Not a Master Protocol transaction" so then I input the blockheight for 425000, but it appears the "prevtxs" parameter is taking the integer but is expecting a string. I tried using the default prevtxs parameter but still no luck.
ok i fixed the parameter issue, now i just get a "Not a Master Protocol transaction" error. Here is the raw transaction hex: "010000000159a794f6e940e2ea7e32971631428ab9bc21e388f133d9b3abec0ee90b68229a0000000000ffffffff020000000000000000166a146f6d6e690000000000000003000000000000000aaa0a0000000000001976a9145e34a4cda23cd59f9af60d88356609cf1f9941aa88ac00000000"
Ahh, to supply the block height we need to supply a null set of prev txs IIRC.
This must be an issue with decoding without a synced chain - thanks for the report we'll spin this up and debug it.
In the mean time, your raw hex decodes to:
c:\Program Files\Omni Core\daemon>omnicore-cli.exe omni_decodetransaction 010000000159a794f6e940e2ea7e32971631428ab9bc21
e388f133d9b3abec0ee90b68229a0000000000ffffffff020000000000000000166a146f6d6e690000000000000003000000000000000aaa0a000000
0000001976a9145e34a4cda23cd59f9af60d88356609cf1f9941aa88ac00000000
{
"txid" : "525385a8101c732abce749ef11642f68492d032bceaf4d1fd86d5f20d908c247",
"fee" : "0.00007270",
"sendingaddress" : "3QvZquwUiFA2Qgq6Gjbfzp4FndGfuqF3zW",
"referenceaddress" : "19b7anX8Rc9MogQ46ssky3ZJSU2YeXdBTP",
"ismine" : false,
"version" : 0,
"type_int" : 0,
"type" : "Simple Send",
"propertyid" : 3,
"divisible" : false,
"amount" : "10",
"confirmations" : 0
}
I've raised this issue with help desk and someone is working on it but I thought I should mention here as well.
I used 2fa with Electrum thinking it would help with security, but it's turned into a nightmare. I've been trying to get my MAID and Synereo off Omni for 14 hours straight but with no luck.
I sent MAID coins from Exchange to Omni then on sent them to Electrum 2fa account. When returning them back to Omini...major problems bit me in the backside.
This address has all my MAID and Synero starts with 3JAX9xkuAc93............ (created in electrum 2FA) When I enter my private key to Omni for the above address I get this address 1KNzUe8RddBG3kTgi9rrfqmVgCNLokLQZK which doesn't show my MAID and Synereo When I put 3JAX9xkuAc93...............in as a watch address I can see it all sitting there but I can't do anything with it.
This is a major bug for anyone that wants to use 2fa (multisig) when storing Omnilayer coins. It's a serious 'gotcha' and users need to be warned about it somehow....