From 0d4aa138642f27beea00c4a7cbd313d221cc0fbe Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sun, 29 Oct 2023 13:18:03 +0200 Subject: [PATCH 01/18] Offline signing support for the command line (cli) wallet --- cmd/dero-wallet-cli/easymenu_post_open.go | 670 +++++++++++++++++++--- cmd/dero-wallet-cli/easymenu_pre_open.go | 8 +- cmd/dero-wallet-cli/main.go | 265 ++++++++- cmd/dero-wallet-cli/prompt.go | 52 +- walletapi/balance_decoder.go | 9 +- walletapi/daemon_communication.go | 287 ++++++++- walletapi/transaction_build.go | 16 +- walletapi/wallet.go | 53 ++ walletapi/wallet_disk.go | 23 +- walletapi/wallet_memory.go | 26 +- walletapi/wallet_transfer.go | 316 +++++++++- 11 files changed, 1574 insertions(+), 151 deletions(-) diff --git a/cmd/dero-wallet-cli/easymenu_post_open.go b/cmd/dero-wallet-cli/easymenu_post_open.go index 8e989c37..f3f276b7 100644 --- a/cmd/dero-wallet-cli/easymenu_post_open.go +++ b/cmd/dero-wallet-cli/easymenu_post_open.go @@ -26,8 +26,11 @@ import ( "runtime" "strings" "time" - + "strconv" + "encoding/hex" + "github.com/chzyer/readline" + "github.com/deroproject/derohe/cryptography/bn256" "github.com/deroproject/derohe/cryptography/crypto" "github.com/deroproject/derohe/globals" "github.com/deroproject/derohe/rpc" @@ -39,28 +42,60 @@ import ( // handle menu if a wallet is currently opened func display_easymenu_post_open_command(l *readline.Instance) { w := l.Stderr() + + bViewOnly := wallet.ViewOnly() + bOffline := globals.Arguments["--offline"].(bool) + + if (bViewOnly==true) { + io.WriteString(w, "Online (view only) wallet:\n"); + io.WriteString(w, " 1. Register you account, using registration transaction from the offline (signing) wallet.\n") + io.WriteString(w, " 2. View your account balance & transaction history\n") + io.WriteString(w, " 3. Generate transactions for the offline wallet to sign.\n") + io.WriteString(w, " 4. Submit the signed transactions to the network.\n\n") + } + if (bOffline==true) { + io.WriteString(w, "Offline (signing) wallet:\n") + io.WriteString(w, " 1. Setup the online wallet with the exported public key\n") + io.WriteString(w, " 2. Generate a registration transaction for the online wallet\n"); + io.WriteString(w, " 3. Sign spend transactions for the online wallet\n"); + } + + io.WriteString(w, "Menu:\n") io.WriteString(w, "\t\033[1m1\033[0m\tDisplay account Address \n") - io.WriteString(w, "\t\033[1m2\033[0m\tDisplay Seed "+color_red+"(Please save seed in safe location)\n\033[0m") + if ( bViewOnly==false ) { + io.WriteString(w, "\t\033[1m2\033[0m\tDisplay Seed "+color_red+"(Please save seed in safe location)\n\033[0m") + } io.WriteString(w, "\t\033[1m3\033[0m\tDisplay Keys (hex)\n") - if !wallet.IsRegistered() { - io.WriteString(w, "\t\033[1m4\033[0m\tAccount registration to blockchain (registration has no fee requirement and is precondition to use the account)\n") - io.WriteString(w, "\n") - io.WriteString(w, "\n") - } else { // hide some commands, if view only wallet - io.WriteString(w, "\t\033[1m4\033[0m\tDisplay wallet pool\n") - io.WriteString(w, "\t\033[1m5\033[0m\tTransfer (send DERO) to Another Wallet\n") - io.WriteString(w, "\t\033[1m6\033[0m\tToken transfer to another wallet\n") - io.WriteString(w, "\n") + if (bOffline==true) { + io.WriteString(w, "\t\033[1m4\033[0m\tGenerate registration transaction for the online (view only) wallet\n") + io.WriteString(w, "\t\033[1m5\033[0m\tSign (DERO) transaction, prepared by the online (view only) wallet\n") + } else { + if !wallet.IsRegistered() { + io.WriteString(w, "\t\033[1m4\033[0m\tAccount registration to blockchain (registration has no fee requirement and is precondition to use the account)\n") + } else { + io.WriteString(w, "\t\033[1m4\033[0m\tDisplay wallet pool\n") + if ( bViewOnly==false ) { + io.WriteString(w, "\t\033[1m5\033[0m\tTransfer (send DERO) to Another Wallet\n") + io.WriteString(w, "\t\033[1m6\033[0m\tToken transfer to another wallet\n") + } else { + io.WriteString(w, "\t\033[1m5\033[0m\tPrepare (DERO) transaction (for the offline wallet to sign)\n") + io.WriteString(w, "\t\033[1m6\033[0m\tPrepare token transaction (for the offline wallet to sign)\n") + } + io.WriteString(w, "\n") + } } io.WriteString(w, "\t\033[1m7\033[0m\tChange wallet password\n") io.WriteString(w, "\t\033[1m8\033[0m\tClose Wallet\n") - if wallet.IsRegistered() { - io.WriteString(w, "\t\033[1m12\033[0m\tTransfer all balance (send DERO) To Another Wallet\n") + if wallet.IsRegistered() && (bOffline==false) { + // Commands applicable only to online wallets + if (bViewOnly==false) { + io.WriteString(w, "\t\033[1m12\033[0m\tTransfer all balance (send DERO) To Another Wallet\n") + } io.WriteString(w, "\t\033[1m13\033[0m\tShow transaction history\n") io.WriteString(w, "\t\033[1m14\033[0m\tRescan transaction history\n") io.WriteString(w, "\t\033[1m15\033[0m\tExport all transaction history in json format\n") @@ -95,19 +130,30 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce case "1": fmt.Fprintf(l.Stderr(), "Wallet address : "+color_green+"%s"+color_white+"\n", wallet.GetAddress()) - if !wallet.IsRegistered() { - reg_tx := wallet.GetRegistrationTX() - fmt.Fprintf(l.Stderr(), "Registration TX : "+color_green+"%x"+color_white+"\n", reg_tx.Serialize()) + if !wallet.IsRegistered() && globals.Arguments["--offline"].(bool)==false { + // The registration transaction to 'remote' requires some POW: First 3 bytes must be 0. + // The view only wallet doesn't generate its own registratio transaction + if (globals.Arguments["--remote"]==true) || (wallet.ViewOnly()==true) { + fmt.Fprintf(l.Stderr(), "Register your account in order to synchronise with the network\n"); + } else { + reg_tx := wallet.GetRegistrationTX() + fmt.Fprintf(l.Stderr(), "Registration TX : "+color_green+"%x"+color_white+"\n", reg_tx.Serialize()) + } + } PressAnyKey(l, wallet) case "2": // give user his seed - if !ValidateCurrentPassword(l, wallet) { - logger.Error(fmt.Errorf("Invalid password"), "") - PressAnyKey(l, wallet) - break + if (wallet.ViewOnly() == false) { + if !ValidateCurrentPassword(l, wallet) { + logger.Error(fmt.Errorf("Invalid password"), "") + PressAnyKey(l, wallet) + break + } + display_seed(l, wallet) // seed should be given only to authenticated users + } else { + fmt.Printf("This is a view only wallet. It doens't contain the seed phrase\n") } - display_seed(l, wallet) // seed should be given only to authenticated users PressAnyKey(l, wallet) case "3": // give user his keys in hex form @@ -122,52 +168,194 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce PressAnyKey(l, wallet) case "4": // Registration - - if !wallet.IsRegistered() { - - // at this point we must send the registration transaction - fmt.Fprintf(l.Stderr(), "Wallet address : "+color_green+"%s"+color_white+" is going to be registered. Please wait till the account is registered.", wallet.GetAddress()) - fmt.Fprintf(l.Stderr(), "This is a pre-condition POW for using the online chain.") - fmt.Fprintf(l.Stderr(), "This will take a couple of minutes. Please wait....\n") - + // If the wallet is performing the 'offline' (sign) role, the transaction must be printed in a data format + // which can be imported in the ViewOnly 'online' wallet. + var IsOffline = globals.Arguments["--offline"].(bool) + + if (!wallet.IsRegistered()) || (IsOffline==true) { var reg_tx *transaction.Transaction + + if (wallet.ViewOnly()==true) { + // Format: [0] - preamble: registration + // [1] Address + // [2] Registration address + // [3] Hash of the registartion address + // [4] Checksum of the string + + //The view only online wallet received the registration transaction from the offline wallet. + sRegistration := read_line_with_prompt(l, fmt.Sprintf("Enter the registration transaction (obtained from the offline (signing) wallet): ")) + + //Strip off any newlines or extra spaces + sTmp := strings.ReplaceAll(sRegistration,"\n","") + sRegistration = strings.ReplaceAll(sTmp," ",""); + + //Split string on ';' + saParts := strings.Split(sRegistration,";") + if (len(saParts) != 2) { + fmt.Fprintf(l.Stderr(), "Invalid number of parts. Expected 2, found %d\n\n", len(saParts)) + break; + } + + sTransaction := saParts[0] + sProtocolChecksum := saParts[1] + iProtocolChecksum,err := strconv.Atoi(sProtocolChecksum) + if err!=nil { + fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer\n\n") + break + } + + //Regenerate checksum: + var iCalculatedChecksum=0 + for t := range sTransaction { + iCalculatedChecksum = iCalculatedChecksum + (int)(sTransaction[t]) + } + + // Check 1: Checksum + if (iProtocolChecksum != iCalculatedChecksum) { + fmt.Fprintf(l.Stderr(), "Checksum calculation failed. Please check if you've imported the transaction correctly\n\n"); + break + } + + saParts = strings.Split(sTransaction,",") + if (len(saParts) != 4) { + fmt.Fprintf(l.Stderr(), "Invalid number of parts. Expected 4, found %d\n\n", len(saParts)) + break + } + + if (saParts[0]!="registration") { + fmt.Fprintf(l.Stderr(), "Input doesn't start with 'registration'\n\n") + break; + } + + //Check 2: Is this transaction for our address? + sAddress := wallet.GetAddress().String() + if (sAddress != saParts[1]) { + fmt.Fprintf(l.Stderr(), "Mismatch: Our address is %s, the registration transaction contains a different address:%s\n", sAddress, saParts[1]) + break + } + + + baRegistrationTx, err1 := hex.DecodeString(saParts[2]) + if err1 != nil { + fmt.Fprintf(l.Stderr(), "Could not convert the transaction back to binary data.\n\n") + break + } + baHash, err1 := hex.DecodeString(saParts[3]) + if err1 != nil { + fmt.Fprintf(l.Stderr(), "Could not convert the hash back to binary data.\n\n") + break + } + if (baHash[0]!=0 || baHash[1]!=0 || baHash[2]!=0) { + fmt.Fprintf(l.Stderr(), "For a valid registration transaction the first 3 bytes must be 0\n\n") + break + } - successful_regs := make(chan *transaction.Transaction) - - counter := 0 - - for i := 0; i < runtime.GOMAXPROCS(0); i++ { - go func() { - - for counter == 0 { - - lreg_tx := wallet.GetRegistrationTX() - hash := lreg_tx.GetHash() - - if hash[0] == 0 && hash[1] == 0 && hash[2] == 0 { - successful_regs <- lreg_tx - counter++ - break + var tx2 transaction.Transaction + tx2.Deserialize( baRegistrationTx ) + + //var hash2 string + calculated_hash := fmt.Sprintf("%s", tx2.GetHash()) + PublicKey2 := fmt.Sprintf("%x", tx2.MinerAddress ) + + keys := wallet.Get_Keys() + PublicKey := fmt.Sprintf("%s", keys.Public.StringHex()) + + // Check 3 + if (calculated_hash != saParts[3]) { + fmt.Fprintf(l.Stderr(), "Mismatch: the calculated hash (of the registration transaction) and the hash provided in the input differs\n\n") + break + } + + // Check 4 + if (PublicKey != PublicKey2) { + fmt.Fprintf(l.Stderr(), "Mismatch: the registration transaction is for public key: %s, but our public key is %s\n\n", PublicKey2, PublicKey) + break + } + + //At this point the address & public key in the transaction matchs our online wallet values. + reg_tx = & tx2 + } else { + // The offline wallet generates the registration and provide the transaction text to be used + // by the online wallet to complete the registration. + // The full function wallet (view+sign) generates the registration transaction and submits it + // directy to the network to complete the registration + if IsOffline==true { + fmt.Fprintf(l.Stderr(), "Generating registration transaction for wallet address : "+color_green+"%s"+color_white+"\n", wallet.GetAddress()) + } else { + fmt.Fprintf(l.Stderr(), "Wallet address : "+color_green+"%s"+color_white+" is going to be registered. Please wait till the account is registered. ", wallet.GetAddress()) + } + fmt.Fprintf(l.Stderr(), "This is a pre-condition POW for using the online chain. ") + fmt.Fprintf(l.Stderr(), "This will take a couple of minutes. A match is usually found between 2-5 million hashes. Please wait....\n") + + + successful_regs := make(chan *transaction.Transaction) + + counter := 0 + counter2 := 0 + + for i := 0; i < runtime.GOMAXPROCS(0); i++ { + go func() { + for counter == 0 { + + lreg_tx := wallet.GetRegistrationTX() + hash := lreg_tx.GetHash() + + if hash[0] == 0 && hash[1] == 0 && hash[2] == 0 { + fmt.Printf("Found transaction:\n"); + successful_regs <- lreg_tx + counter++ + break + } else { + counter2++ + if ((counter2 % 100000) == 0) { + //Match usually found round about 2 million mark + fmt.Printf("Searched %d hashes\n",counter2) + + //FIxIT quick search +// successful_regs <- lreg_tx +// counter++ +// break; + } + } } - } - }() - } + }() + } - reg_tx = <-successful_regs + reg_tx = <-successful_regs + } - fmt.Fprintf(l.Stderr(), "Registration TXID %s\n", reg_tx.GetHash()) - err := wallet.SendTransaction(reg_tx) - if err != nil { - fmt.Fprintf(l.Stderr(), "sending registration tx err %s\n", err) + if (IsOffline==true) { + // Offline wallet prints the prepared transaction, to be used in the online wallet + fmt.Printf("Found the registration transaction. Import the complete text into the online (view only) wallet:\n"); + sTransaction := fmt.Sprintf("registration,%s,%x,%s",wallet.GetAddress().String(), reg_tx.Serialize(), reg_tx.GetHash()) + + //Append a simple checksum to the string to detect copy/paste errors + //during import into the online wallet: + var iChecksum=0 + for t := range sTransaction { + iChecksum = iChecksum + (int)(sTransaction[t]) + } + + fmt.Printf("%s;%d\n\n",sTransaction, iChecksum) + } else { - fmt.Fprintf(l.Stderr(), "registration tx dispatched successfully\n") + // View only online wallet & full feature wallet submits the transaction to the network + fmt.Fprintf(l.Stderr(), "Registration TXID %s\n", reg_tx.GetHash()) + err := wallet.SendTransaction(reg_tx) + if err != nil { + fmt.Fprintf(l.Stderr(), "sending registration tx err %s\n\n", err) + } else { + fmt.Fprintf(l.Stderr(), "registration tx dispatched successfully\n\n") + } } - - } else { - } case "6": + if globals.Arguments["--offline"].(bool) { + //Offline wallet can“t send tokens + break; + } + if !valid_registration_or_display_error(l, wallet) { break } @@ -213,7 +401,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce break // invalid amount provided, bail out } - if ConfirmYesNoDefaultNo(l, "Confirm Transaction (y/N)") { + if ConfirmYesNoDefaultNo(l, color_white+"Confirm Transaction (y/N)") { tx, err := wallet.TransferPayload0([]rpc.Transfer{{SCID: scid, Amount: amount_to_transfer, Destination: a.String()}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA if err != nil { @@ -228,6 +416,354 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce } case "5": + if globals.Arguments["--offline"].(bool) { + // Offline wallet: Sign transaction + if !ValidateCurrentPassword(l, wallet) { + logger.Error(fmt.Errorf("Invalid password"), "") + break + } + + _ = os.Remove("./signed") + + baData, err := os.ReadFile("./transaction") + if err!=nil { + fmt.Printf("Cant read from the transaction file: ./transaction\n\n"); + break; + } + fmt.Printf("Read %d bytes from ./transaction\n",len(baData)) + sTransaction := string(baData[:]) + + _ = os.Remove("./transaction") + + + //Parameter [0]: header: sign_offline + // [1]: Project - 'dero' + // [2]: Version - Layout of the command fields + // Version 1: [3] Array of transfers (outputs) + // [4] Array of ring balances + // [5] Array of rings + // [6] block_hash + // [7] height + // [8] Array of scdata + // [9] treehash + // [10] max_bits + // [11] gasstorage + // [12] Checksum of all the characters in the command. + saParts := strings.Split(sTransaction," ") + if (len(saParts)!=13) { + fmt.Printf("Invalid number of parts in the transaction. Found %d, expected 13\n", len(saParts)) + break; + } + + if (saParts[0] != "sign_offline") { + fmt.Printf("Transaction doesn't start with 'sign_offline'\n") + break; + } + if (saParts[1] != "dero") { + fmt.Printf("Expected a Dero transaction, Found %s\n",saParts[1]); + break; + } + + if (saParts[2] != "1") { + fmt.Printf("Only transaction version 1 supported. Found %s\n",saParts[2]) + break; + } + + sChecksumInput:="dero 1 "; + //--------------------------------------------------------------------------------------------------------------------- + var transfers []rpc.Transfer + + sTmp := strings.ReplaceAll(saParts[3],"'","") + sTmp1:= strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + + saTransfers := strings.SplitAfter(sTmp, "}") + //fmt.Printf("transfers:%d\n",len(saTransfers)-1); + sChecksumInput+="transfers:"; + for t:=range saTransfers { + if len(saTransfers[t])>0 { + var transfer rpc.Transfer + + sTmp1 = strings.ReplaceAll(saTransfers[t], ",{","") + sTmp = strings.ReplaceAll(sTmp1, "{","") + sTransfer := strings.ReplaceAll(sTmp,"}","") + + saParts := strings.Split(sTransfer,",") + if (len(saParts)!=5) { + fmt.Printf("Parse error. Invalid number of parts in transfers. Expected 5, found %d\n", len(saParts)); + break; + } + + sTmp:=strings.ReplaceAll(saParts[0],"\"","") + saItemValue:=strings.Split(sTmp,":") + if (saItemValue[0]!="SCID") { + fmt.Printf("Parse error. Could not find SCID in transfers\n"); + break; + } + err = transfer.SCID.UnmarshalText([]byte(string(saItemValue[1]))) + if err != nil { + fmt.Printf("Parse error. Could not assign SCID to transfers\n"); + break; + } + sChecksumInput+=" \""+saItemValue[1]+"\"" + + + sTmp=strings.ReplaceAll(saParts[1],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="Destination") { + fmt.Printf("Parse error. Could not find destination in transfers\n"); + break; + } + transfer.Destination = saItemValue[1] + sChecksumInput+=" \""+saItemValue[1]+"\"" + + sTmp=strings.ReplaceAll(saParts[2],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="Amount") { + fmt.Printf("Parse error. Could not find amount in transfers\n"); + break; + } + transfer.Amount, err = strconv.ParseUint(saItemValue[1],10,64) + sChecksumInput+=" "+saItemValue[1] + + sTmp=strings.ReplaceAll(saParts[3],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="Burn") { + fmt.Printf("Parse error. Could not find burn in transfers\n"); + break; + } + transfer.Burn, err = strconv.ParseUint(saItemValue[1],10,64) + sChecksumInput+=" "+saItemValue[1] + + sTmp=strings.ReplaceAll(saParts[4],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="RPC") { + fmt.Printf("Parse error. Could not find rpc in transfers\n"); + break; + } + hexRPC, err2 := hex.DecodeString(saItemValue[1]) + if err2 != nil { + fmt.Printf("Parse error. Could not hex decode the rpc field of the transfers\n"); + break; + } + err2 = transfer.Payload_RPC.UnmarshalBinary(hexRPC) + if err2 != nil { + fmt.Printf("Parse error. Could not assign the rpc field of the transfers\n"); + break; + } + sChecksumInput+=" \""+saItemValue[1]+"\"" + + transfers = append(transfers, transfer) + } + } + + //--------------------------------------------------------------------------------------------------------------------- + var rings_balances [][][]byte //initialize all maps + + sTmp = strings.ReplaceAll(saParts[4],"'","") + sTmp1 = strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + + saRingBalances := strings.SplitAfter(sTmp, "}") + //fmt.Printf(":%d\n",len(saRingBalances)-1); + + sChecksumInput+=" rings_balances:" + for t:=range saRingBalances { + if len(saRingBalances[t])>0 { + var ring_balances [][]byte + + sTmp1 = strings.ReplaceAll(saRingBalances[t], ",{","") + sTmp = strings.ReplaceAll(sTmp1, "{","") + sRingBalance := strings.ReplaceAll(sTmp,"}","") + + saRingBalances:=strings.Split(sRingBalance,",") + if ( len(saRingBalances)<16) { + fmt.Printf("Expected at least 16 ring balances. Found %d\n", len(saRingBalances)) + break; + } + + for t := range saRingBalances { + baData,_ := hex.DecodeString( saRingBalances[t] ) + ring_balances = append(ring_balances,baData) + + sChecksumInput+=" "+saRingBalances[t] + } + rings_balances = append(rings_balances, ring_balances) + } + } + /* + fmt.Printf("rings_balances:{%d} entries\n",len(rings_balances)) + var counter1=0 + var counter2=0 + for t := range rings_balances { + fmt.Printf("rings_balances{%d}:{%d} entries\n",counter1,len(rings_balances[t])) + counter2=0 + for u := range rings_balances[t] { + fmt.Printf(" ring balance[%d]=\"%x\"\n",counter2,rings_balances[t][u]) + counter2++ + } + counter1++ + } + */ + //--------------------------------------------------------------------------------------------------------------------- + var rings [][]*bn256.G1 + sChecksumInput+=" rings:"; + + sTmp = strings.ReplaceAll(saParts[5],"'","") + sTmp1 = strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + + saRings := strings.SplitAfter(sTmp, "}") + //fmt.Printf("Rings:%d\n",len(saRings)-1); + + for t:=range saRings { + if len(saRings[t])>0 { + var ring []*bn256.G1 + var oG1 *bn256.G1 + + sTmp1 = strings.ReplaceAll(saRings[t], ",{","") + sTmp = strings.ReplaceAll(sTmp1, "{","") + sRing := strings.ReplaceAll(sTmp,"}","") + + saRing:=strings.Split(sRing,",") + //fmt.Printf("saRing=%d\n",len(saRing)) + if ( len(saRing)<16) { + fmt.Printf("Expected at least 16 rings. Found %d\n\n", len(saRing)) + break + } + + for t := range saRing { + //fmt.Printf("Processing: '%s'\n", saRing[t]) + baData,err := hex.DecodeString( saRing[t] ) + if err!=nil { + fmt.Printf("Could not decode ring entry: %s\n\n", saRing[t]) + break + } + oG1 = new(bn256.G1); + _,err = oG1.Unmarshal(baData); + if err != nil { + fmt.Printf("Could not assign ring data\n\n"); + break + }; + ring = append(ring,oG1) + + sChecksumInput+=" "+saRing[t] + } + rings = append(rings, ring) + } + } + /* + fmt.Printf("rings:{%d} entries\n",len(rings)) + counter1=0 + counter2=0 + for t := range rings { + fmt.Printf("ring{%d}:{%d} entries\n",counter1,len(rings[t])) + counter2=0 + for u := range rings[t] { + fmt.Printf(" ring[%d]=\"%x\"\n",counter2,rings[t][u].Marshal() ) + counter2++ + } + counter1++ + } + */ + //--------------------------------------------------------------------------------------------------------------------- + //[6] block_hash + sTmp = strings.ReplaceAll(saParts[6],"\"","") + block_hash := crypto.HashHexToHash(sTmp) + sChecksumInput+=" "+saParts[6] + + //[7] height + var height uint64 + height, err = strconv.ParseUint(saParts[7],10,64) + if err!=nil { + fmt.Printf("Parse error. Could not assign height to transfers\n\n"); + } + sChecksumInput+=" "+saParts[7] + + //[8] Array of scdata + var scdata rpc.Arguments + sTmp = strings.ReplaceAll(saParts[8],"'","") + sTmp1 = strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + if (len(sTmp) > 0) { + hexSCData, err2 := hex.DecodeString(sTmp) + if err2!=nil { + fmt.Printf("Parse error. Could not decode the SCData\n\n"); + break; + } + if (len(hexSCData)>0) { + err = scdata.UnmarshalBinary(hexSCData) + if err!=nil { + fmt.Printf("Parse error. Could not decode the SCData\n\n"); + break; + } + } + } + sChecksumInput+=" "+saParts[8] + + //[9] treehash + sTmp = strings.ReplaceAll(saParts[9],"\"","") + treehash_raw, err := hex.DecodeString(sTmp) + if err != nil { + fmt.Printf("Parse error. Could not decode treehash_raw\n\n") + break; + } + sChecksumInput+=" "+saParts[9] + + //[10] max_bits + var max_bits int + max_bits, err = strconv.Atoi(saParts[10]) + sChecksumInput+=" "+saParts[10] + + //[11] gasstorage + var gasstorage uint64 + gasstorage, err = strconv.ParseUint(saParts[11],10,64) + sChecksumInput+=" "+saParts[11] + + //[12] Checksum + var iProtocolChecksum int + iProtocolChecksum, err = strconv.Atoi(saParts[12]) + + iCalculatedChecksum:=0x01; + for t := range sChecksumInput { + iVal := int(sChecksumInput[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + + if (iCalculatedChecksum != iProtocolChecksum) { + fmt.Printf("The checksum for the transaction data is invalid. Please provide the transaction again.\n\n") + break + } + + tx := wallet.BuildTransaction(transfers, rings_balances, rings, block_hash, height, scdata, treehash_raw, max_bits, gasstorage) + if tx == nil { + fmt.Printf("somehow the tx could not be built, please retry\n\n") + break + } + + sTxSerialized := tx.Serialize() + sOutput := fmt.Sprintf("signed dero 1 %x",sTxSerialized) + + iCalculatedChecksum=0x01; + for t := range sOutput { + iVal := int(sOutput[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + sOutput+=" "+sChecksum + + baData = []byte( sOutput ) + err = os.WriteFile("./signed", baData, 0666) + if err!=nil { + fmt.Printf("Error saving file to ./signed: %s\n",err) + break + } + fmt.Printf("Saved signed transaction to ./signed. Return it to the online (view only) wallet to complete the transaction.\n\n") + break; + } + + + if !valid_registration_or_display_error(l, wallet) { break } @@ -293,28 +829,28 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce arguments = append(arguments, rpc.Argument{Name: arg.Name, DataType: arg.DataType, Value: v}) } else { logger.Error(fmt.Errorf("%s could not be parsed (type %s),", arg.Name, arg.DataType), "") - return + break } case rpc.DataInt64: if v, err := ReadInt64(l, arg.Name, arg.Value.(int64)); err == nil { arguments = append(arguments, rpc.Argument{Name: arg.Name, DataType: arg.DataType, Value: v}) } else { logger.Error(fmt.Errorf("%s could not be parsed (type %s),", arg.Name, arg.DataType), "") - return + break } case rpc.DataUint64: if v, err := ReadUint64(l, arg.Name, arg.Value.(uint64)); err == nil { arguments = append(arguments, rpc.Argument{Name: arg.Name, DataType: arg.DataType, Value: v}) } else { logger.Error(fmt.Errorf("%s could not be parsed (type %s),", arg.Name, arg.DataType), "") - return + break } case rpc.DataFloat64: if v, err := ReadFloat64(l, arg.Name, arg.Value.(float64)); err == nil { arguments = append(arguments, rpc.Argument{Name: arg.Name, DataType: arg.DataType, Value: v}) } else { logger.Error(fmt.Errorf("%s could not be parsed (type %s),", arg.Name, arg.DataType), "") - return + break } case rpc.DataTime: logger.Error(fmt.Errorf("time argument is currently not supported."), "") @@ -359,23 +895,23 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce arguments = append(arguments, rpc.Argument{Name: rpc.RPC_DESTINATION_PORT, DataType: rpc.DataUint64, Value: v}) } else { logger.Error(err, fmt.Sprintf("%s could not be parsed (type %s),", "Number", rpc.DataUint64)) - return + break } if v, err := ReadString(l, "Comment", ""); err == nil { arguments = append(arguments, rpc.Argument{Name: rpc.RPC_COMMENT, DataType: rpc.DataString, Value: v}) } else { logger.Error(fmt.Errorf("%s could not be parsed (type %s),", "Comment", rpc.DataString), "") - return + break } } if _, err := arguments.CheckPack(transaction.PAYLOAD0_LIMIT); err != nil { logger.Error(err, "Arguments packing err") - return + break } - if ConfirmYesNoDefaultNo(l, "Confirm Transaction (y/N)") { + if ConfirmYesNoDefaultNo(l, color_white+"Confirm Transaction (y/N)") { //src_port := uint64(0xffffffffffffffff) @@ -418,7 +954,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce globals.Logger.Infof("Payment ID is integrated in address ID:%x", a.PaymentID) } - if ConfirmYesNoDefaultNo(l, "Confirm Transaction to send entire balance (y/N)") { + if ConfirmYesNoDefaultNo(l, color_white+"Confirm Transaction to send entire balance (y/N)") { addr_list := []address.Address{*a} amount_list := []uint64{0} // transfer 50 dero, 2 dero diff --git a/cmd/dero-wallet-cli/easymenu_pre_open.go b/cmd/dero-wallet-cli/easymenu_pre_open.go index b56ef134..6aa2f156 100644 --- a/cmd/dero-wallet-cli/easymenu_pre_open.go +++ b/cmd/dero-wallet-cli/easymenu_pre_open.go @@ -143,7 +143,13 @@ func handle_easymenu_pre_open_command(l *readline.Instance, line string) { break } - wallett, err = walletapi.Create_Encrypted_Wallet(filename, password, new(crypto.BNRed).SetBytes(seed_raw)) + seed := new(crypto.BNRed).SetBytes(seed_raw) + account,err2 := walletapi.Generate_Account_From_Seed ( seed ) + if err2 != nil { + logger.Error(err, "Could not use the seed to create an account") + } + + wallett, err = walletapi.Create_Encrypted_Wallet(filename, password, account) if err != nil { logger.Error(err, "Error while recovering wallet using seed key") break diff --git a/cmd/dero-wallet-cli/main.go b/cmd/dero-wallet-cli/main.go index 1982ca6c..8a4c1d3d 100644 --- a/cmd/dero-wallet-cli/main.go +++ b/cmd/dero-wallet-cli/main.go @@ -26,7 +26,7 @@ import "sync" import "strings" import "strconv" import "runtime" - +import "encoding/hex" import "sync/atomic" //import "io/ioutil" @@ -46,6 +46,8 @@ import "github.com/docopt/docopt-go" import "github.com/deroproject/derohe/config" //import "github.com/deroproject/derohe/crypto" +import "github.com/deroproject/derohe/cryptography/bn256" +import "github.com/deroproject/derohe/cryptography/crypto" import "github.com/deroproject/derohe/globals" import "github.com/deroproject/derohe/walletapi" import "github.com/deroproject/derohe/walletapi/mnemonics" @@ -65,15 +67,15 @@ Usage: --version Show version. --wallet-file= Use this file to restore or create new wallet --password= Use this password to unlock the wallet - --offline Run the wallet in completely offline mode - --offline_datafile= Use the data in offline mode default ("getoutputs.bin") in current dir + --offline Run the wallet in offline (signing) mode. An online (view only) wallet is required to create the transaction & sync to the network --prompt Disable menu and display prompt --testnet Run in testnet mode. --debug Debug mode enabled, print log messages --unlocked Keep wallet unlocked for cli commands (Does not confirm password before commands) - --generate-new-wallet Generate new wallet + --generate-new-wallet Generate new (random) wallet --restore-deterministic-wallet Restore wallet from previously saved recovery seed --electrum-seed= Seed to use while restoring wallet + --restore-viewonly-wallet Restore a view only wallet. The offline (signing) wallet contains the secret key & can export the view only key --socks-proxy= Use a proxy to connect to Daemon. --remote use hard coded remote daemon https://rwallet.dero.live --daemon-address= Use daemon instance at : or https://domain @@ -92,8 +94,6 @@ var wallet *walletapi.Wallet_Disk //= &walletapi.Account{} // all account data // var address string var sync_time time.Time // used to suitable update prompt -var default_offline_datafile string = "getoutputs.bin" - var logger logr.Logger = logr.Discard() // default discard all logs var color_black = "\033[30m" @@ -189,7 +189,11 @@ func main() { wallet_password = globals.Arguments["--password"].(string) // override with user specified settings } - // lets handle the arguments one by one + // lets handle the arguments one by one: + // Mutually exclusive commands: + // --restore-deterministic-wallet + // --generate-new-wallet + // if globals.Arguments["--restore-deterministic-wallet"].(bool) { // user wants to recover wallet, check whether seed is provided on command line, if not prompt now seed := "" @@ -210,9 +214,12 @@ func main() { password := "" if wallet_password == "" { password = ReadConfirmedPassword(l, "Enter password", "Confirm password") + } else { + //Use provided password from the command line + password = wallet_password } - wallet, err = walletapi.Create_Encrypted_Wallet(wallet_file, password, account.Keys.Secret) + wallet, err = walletapi.Create_Encrypted_Wallet(wallet_file, password, account) if err != nil { logger.Error(err, "Error occurred while restoring wallet") return @@ -220,22 +227,28 @@ func main() { logger.V(1).Info("Seed Language", "language", account.SeedLanguage) logger.Info("Successfully recovered wallet from seed") - } - - // generare new random account if requested - if globals.Arguments["--generate-new-wallet"] != nil && globals.Arguments["--generate-new-wallet"].(bool) { + } else if globals.Arguments["--generate-new-wallet"] != nil && globals.Arguments["--generate-new-wallet"].(bool) { + // generare new random account var filename string if globals.Arguments["--wallet-file"] != nil && len(globals.Arguments["--wallet-file"].(string)) > 0 { filename = globals.Arguments["--wallet-file"].(string) } else { filename = choose_file_name(l) } + // Check right at the beginning if the file exist + if _, err = os.Stat(filename); err == nil { + fmt.Printf("File '%s' already exists\n", filename) + return + } // ask user a pass, if not provided on command_line password := "" if wallet_password == "" { password = ReadConfirmedPassword(l, "Enter password", "Confirm password") - } + } else { + //Use provided password from the command line + password = wallet_password + } seed_language := choose_seed_language(l) _ = seed_language @@ -247,6 +260,94 @@ func main() { } logger.V(1).Info("Seed Language", "language", account.SeedLanguage) display_seed(l, wallet) + } else if globals.Arguments["--restore-viewonly-wallet"]!=nil && globals.Arguments["--restore-viewonly-wallet"].(bool) { + // Create a 'view only' account using the details obtained from the offline (signing) wallet + + filename := choose_file_name(l) + // Check right at the beginning if the file exist + if _, err = os.Stat(filename); err == nil { + fmt.Printf("File '%s' already exists\n", filename) + return + } + + // ask user a pass, if not provided on command_line + password := "" + if wallet_password == "" { + password = ReadConfirmedPassword(l, "Enter password", "Confirm password") + } else { + password = wallet_password + } + + //Format: [0] - preamble: viewkey + // [1] - Address + // [2] - Public key + // [3] - Public key internal data + // [4] - Checksum + var sViewOnly = read_line_with_prompt(l, "Enter the view only key (obtained from the offline (signing) wallet): ") + + //Strip off any newlines or extra spaces + sTmp := strings.ReplaceAll(sViewOnly,"\n","") + sViewOnly = strings.ReplaceAll(sTmp," ",""); + + saParts := strings.Split(sViewOnly, ";") + if (len(saParts)!=2) { + fmt.Printf("Invalid number of parts in the input. Expected 2 found %d\n",len(saParts)); + return + } + + sViewKey := saParts[0] + sProtocolChecksum := saParts[1] + iProtocolChecksum,err := strconv.Atoi(sProtocolChecksum) + if err!=nil { + fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer\n") + return + } + + //Regenerate checksum: + var iCalculatedChecksum=0 + for t := range sViewKey { + iCalculatedChecksum = iCalculatedChecksum + (int)(sViewKey[t]) + } + + // Check 1: Checksum + if (iProtocolChecksum != iCalculatedChecksum) { + fmt.Printf("Checksum calculation failed. Please check if you've imported the view key correctly\n"); + return + } + + saParts = strings.Split(sViewKey,",") + if (len(saParts) != 4) { + fmt.Fprintf(l.Stderr(), "Invalid number of parts. Expected 4, found %d\n", len(saParts)) + return + } + + if (saParts[0]!="viewkey") { + fmt.Fprintf(l.Stderr(), "Input doesn't start with 'viewkey'\n"); + return + } + + //Send: Public key, public key internals + account,err := walletapi.Generate_Account_From_ViewOnly_params(saParts[2],saParts[3], globals.IsMainnet() ) + if err != nil { + logger.Error(err, "Error while recovering view only parameters.") + return + } + + wallet, err = walletapi.Create_Encrypted_Wallet(filename, password, account) + + if err != nil { + logger.Error(err, "Error occurred while restoring wallet") + return + } + + //Double check that the restored public key generates the expected dero address + sAddress := fmt.Sprintf("%s",wallet.GetAddress().String() ) + if (sAddress != saParts[1]) { + logger.Error(err, "The addres containted in the viewing key (%s) doesn't match the restored address (%s)\n", saParts[1], sAddress); + return + } + + logger.Info("Successfully restored an online (view only) wallet\n") } if globals.Arguments["--rpc-login"] != nil { @@ -373,6 +474,16 @@ func update_prompt(l *readline.Instance) { last_daemon_height := int64(0) daemon_online := false last_update_time := int64(0) + + // show first 8 bytes of address + address_trim := "" + if wallet != nil { + tmp_addr := wallet.GetAddress().String() + address_trim = tmp_addr[0:8] + } else { + address_trim = "DERO Wallet" + } + for { time.Sleep(30 * time.Millisecond) // give user a smooth running number @@ -389,14 +500,7 @@ func update_prompt(l *readline.Instance) { prompt_mutex.Lock() // do not update if we can not lock the mutex - // show first 8 bytes of address - address_trim := "" - if wallet != nil { - tmp_addr := wallet.GetAddress().String() - address_trim = tmp_addr[0:8] - } else { - address_trim = "DERO Wallet" - } + if wallet == nil { l.SetPrompt(fmt.Sprintf("\033[1m\033[32m%s \033[0m"+color_green+"0/%d \033[32m>>>\033[0m ", address_trim, walletapi.Get_Daemon_Height())) @@ -410,8 +514,9 @@ func update_prompt(l *readline.Instance) { _ = daemon_online //fmt.Printf("chekcing if update is required\n") + // Dero blocktime ~18 seconds. Check for new blocks every 15 seconds if last_wallet_height != wallet.Get_Height() || last_daemon_height != walletapi.Get_Daemon_Height() || - /*daemon_online != wallet.IsDaemonOnlineCached() ||*/ (time.Now().Unix()-last_update_time) >= 1 { + (time.Now().Unix()-last_update_time) >= 15 { // choose color based on urgency color := "\033[32m" // default is green color if wallet.Get_Height() < wallet.Get_Daemon_Height() { @@ -453,6 +558,120 @@ func update_prompt(l *readline.Instance) { } prompt_mutex.Unlock() + + //test for an incomming request to interact with the secret key + //The online (view only) wallet uses this to reconstruct the account balance & transaction history + bOffline := globals.Arguments["--offline"].(bool) + if (bOffline==true) { + sFileRequest:="./offline_request" + if _, err := os.Stat(sFileRequest); err == nil { + fmt.Printf("\nIncoming sign request\n") + + baData, err := os.ReadFile(sFileRequest) + if err!=nil { + err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileRequest); + continue; + } + + _ = os.Remove(sFileRequest) + if _, err = os.Stat(sFileRequest); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileRequest) + continue; + } + + //Parameter [0]: header: scalar_mult + // [1]: Project - 'dero' + // [2]: Version - Layout of the command fields + // Version 1: [3] el.Right + // [4] Checksum of all the characters in the data stream + sInput := string(baData[:]) + saParts := strings.Split(sInput," ") + if (len(saParts) != 5) { + err = fmt.Errorf("Invalid number of parts in the transaction. Found %d, expected 5\n", len(saParts)) + continue; + } + + if (saParts[0] != "scalar_mult") { + err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") + continue; + } + + if (saParts[1] != "dero") { + err = fmt.Errorf("Expected a Dero transaction, Found %s\n",saParts[1]); + continue; + } + + if (saParts[2] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) + continue; + } + + sProtocolChecksum := saParts[4] + fmt.Printf("Evaluate the checksum %s\n",sProtocolChecksum); + + sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) + iCalculatedChecksum:=0x01; + for t := range sInput { + iVal := int(sInput[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + + if (sProtocolChecksum!=sCalculatedChecksum) { + err = fmt.Errorf("The checksum of the request data is invalid.\n") + continue + } + + baData,err = hex.DecodeString(saParts[3]) + if err!=nil { + err = fmt.Errorf("Could not hex decode the data portion\n"); + continue; + } + + keys := wallet.Get_Keys() + if (saParts[0]=="scalar_mult") { + var elRight *bn256.G1 + elRight = new(bn256.G1) + elRight.Unmarshal(baData) + + scalarMultResult := new(bn256.G1).ScalarMult(elRight, keys.Secret.BigInt()) + baData = scalarMultResult.Marshal() + + sOutput := fmt.Sprintf("scalar_mult_result dero 1 %x",baData) + var iCalculatedChecksum=0x01 + for t := range sOutput { + iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) + } + sOutput = fmt.Sprintf("%s %d",sOutput, iCalculatedChecksum) + baData = []byte(sOutput) + } else if (saParts[1]=="shared_secret") { + var peer_publickey *bn256.G1 + peer_publickey = new(bn256.G1) + peer_publickey.Unmarshal(baData) + + shared_key := crypto.GenerateSharedSecret(keys.Secret.BigInt(), peer_publickey) + + sOutput := fmt.Sprintf("shared_secret_result dero 1 %x",shared_key) + var iCalculatedChecksum=0x01 + for t := range sOutput { + iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) + } + sOutput = fmt.Sprintf("%s %d",sOutput, iCalculatedChecksum) + baData = []byte(sOutput) + + } else { + err = fmt.Errorf("Unknown type request. Only scalar_mult and shared_secret supported\n"); + continue + } + + err = os.WriteFile("./offline_response", baData, 0644) + if err!=nil { + err = fmt.Errorf("Error saving file. %s\n",err) + continue; + } + fmt.Printf("Saved signed result in ./offline_response\n") + } + } } @@ -469,7 +688,7 @@ func Create_New_Wallet(l *readline.Instance) (w *walletapi.Wallet_Disk, err erro account, _ := walletapi.Generate_Keys_From_Random() account.SeedLanguage = choose_seed_language(l) - w, err = walletapi.Create_Encrypted_Wallet(walletpath, walletpassword, account.Keys.Secret) + w, err = walletapi.Create_Encrypted_Wallet(walletpath, walletpassword, account) if err != nil { return diff --git a/cmd/dero-wallet-cli/prompt.go b/cmd/dero-wallet-cli/prompt.go index 4ffb1442..2d834997 100644 --- a/cmd/dero-wallet-cli/prompt.go +++ b/cmd/dero-wallet-cli/prompt.go @@ -344,7 +344,7 @@ func handle_prompt_command(l *readline.Instance, line string) { logger.Error(err, "Error Parsing burn amount", "raw", line_parts[1]) return } - if ConfirmYesNoDefaultNo(l, "Confirm Transaction (y/N)") { + if ConfirmYesNoDefaultNo(l, color_white+"Confirm Transaction (y/N)") { //uid, err := wallet.PoolTransferWithBurn(addr, send_amount, burn_amount, data, rpc.Arguments{}) @@ -534,11 +534,13 @@ func ReadAddress(l *readline.Instance, wallet *walletapi.Wallet_Disk) (a *rpc.Ad if len(line) >= 1 { _, err := globals.ParseValidateAddress(string(line)) - if err != nil { + if err == nil { + //Verify online, once a valid address is provided if linestr, err = wallet.NameToAddress(string(strings.TrimSpace(string(line)))); err != nil { - error_message = " " //err.Error() - } else { - + sTmp := fmt.Sprintf("%s", err.Error()) + if !strings.Contains(sTmp,"leaf not found") { + error_message = " " //err.Error() + } } } } @@ -997,10 +999,14 @@ func usage(w io.Writer) { // display seed to the user in his preferred language func display_seed(l *readline.Instance, wallet *walletapi.Wallet_Disk) { - seed := wallet.GetSeed() - fmt.Fprintf(l.Stderr(), color_green+"PLEASE NOTE: the following 25 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control."+color_white+"\n") - fmt.Fprintf(os.Stderr, color_red+"%s"+color_white+"\n", seed) + if (wallet.ViewOnly() == false) { + seed := wallet.GetSeed() + fmt.Fprintf(l.Stderr(), color_green+"PLEASE NOTE: the following 25 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control."+color_white+"\n") + fmt.Fprintf(os.Stderr, color_red+"%s"+color_white+"\n", seed) + } else { + fmt.Fprintf(os.Stderr,"This is a view only wallet. It doesn't contain the seed.\n") + } } // display spend key @@ -1009,10 +1015,34 @@ func display_seed(l *readline.Instance, wallet *walletapi.Wallet_Disk) { func display_spend_key(l *readline.Instance, wallet *walletapi.Wallet_Disk) { keys := wallet.Get_Keys() - h := "0000000000000000000000000000000000000000000000" + keys.Secret.Text(16) - fmt.Fprintf(os.Stderr, "secret key: "+color_red+"%s"+color_white+"\n", h[len(h)-64:]) + h := "0000000000000000000000000000000000000000000000" + keys.Secret.Text(16) - fmt.Fprintf(os.Stderr, "public key: %s\n", keys.Public.StringHex()) + var IsOffline = globals.Arguments["--offline"].(bool) + if (IsOffline==true) || (wallet.ViewOnly() == false) { + // Offline (signing) wallet + // Full featured online wallet + fmt.Fprintf(os.Stderr, "secret key: "+color_red+"%s"+color_white+"\n", h[len(h)-64:]) + } else { + // Online (view only) wallet + fmt.Fprintf(os.Stderr,"secret key: None -- View only wallet\n") + } + + // All wallets: + fmt.Fprintf(os.Stderr, "public key: %s\n", keys.Public.StringHex()) + + if (IsOffline==true) { + // Offline (signing) wallet + fmt.Printf("\nView only key - Import the complete text into the online (view only) wallet to set it up:\n") + sViewOnlyKey := fmt.Sprintf("viewkey,%s,%s,%x",wallet.GetAddress(), keys.Public.StringHex(), keys.Public.G1().Marshal()) + + //Append a simple checksum to the string to detect copy/paste errors + //during import into the online wallet: + var iChecksum=0 + for t := range sViewOnlyKey { + iChecksum = iChecksum + (int)(sViewOnlyKey[t]) + } + fmt.Printf("%s;%d\n\n",sViewOnlyKey, iChecksum) + } } // start a rescan from block 0 diff --git a/walletapi/balance_decoder.go b/walletapi/balance_decoder.go index 7839106a..519f56e2 100644 --- a/walletapi/balance_decoder.go +++ b/walletapi/balance_decoder.go @@ -21,7 +21,6 @@ import "fmt" import "sort" import "math/big" import "encoding/binary" - //import "github.com/mattn/go-isatty" //import "github.com/cheggaaa/pb/v3" @@ -178,9 +177,9 @@ func (t *LookupTable) Lookup(p *bn256.G1, previous_balance uint64) (balance uint } loop_counter++ - //if loop_counter >= 10 { - // break; - // } + if loop_counter >= 100 { + break; + } compressed := pcopy.EncodeCompressed() @@ -225,7 +224,7 @@ func (t *LookupTable) Lookup(p *bn256.G1, previous_balance uint64) (balance uint } - //panic(fmt.Sprintf("balance not yet found, work done %x", balance)) + panic(fmt.Sprintf("\nCould not decode the balance from the transaction data. Please verify that your secret key is correct\n\n")) //return balance } diff --git a/walletapi/daemon_communication.go b/walletapi/daemon_communication.go index cf0e9c4d..fe6abec3 100644 --- a/walletapi/daemon_communication.go +++ b/walletapi/daemon_communication.go @@ -23,7 +23,7 @@ package walletapi * * */ //import "io" -//import "os" +import "os" import ( "bytes" "context" @@ -34,7 +34,7 @@ import ( "strings" "sync" "time" - + "github.com/creachadair/jrpc2" "github.com/deroproject/derohe/block" "github.com/deroproject/derohe/config" @@ -246,7 +246,6 @@ func IsDaemonOnline() bool { // sync the wallet with daemon, this is instantaneous and can be done with a single call // we have now the apis to avoid polling func (w *Wallet_Memory) Sync_Wallet_Memory_With_Daemon_internal(scid crypto.Hash) (err error) { - if !IsDaemonOnline() { daemon_height = 0 daemon_topoheight = 0 @@ -261,7 +260,7 @@ func (w *Wallet_Memory) Sync_Wallet_Memory_With_Daemon_internal(scid crypto.Hash //fmt.Printf("data '%s' previous '%s' scid %s\n", w.account.Balance_Result[scid].Data, previous, scid) if w.getEncryptedBalanceresult(scid).Data != previous { b := w.DecodeEncryptedBalanceNow(e) // try to decode balance - + if scid.IsZero() { w.account.Balance_Mature = b } @@ -339,12 +338,197 @@ func (w *Wallet_Memory) SendTransaction(tx *transaction.Transaction) (err error) return } + + +type OfflineOperations_t struct { + iType int + baRequest []byte + baResult []byte +} +var saOfflineOperations []OfflineOperations_t + +func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) (result []byte, err error) { + if (w.ViewOnly()==false) { + err = fmt.Errorf("OfflineOperationWithSecretKey() should only be used by view only wallets\n") + return + } + //Clean up temporary files: + sFileResponse:="./offline_response" + _ = os.Remove(sFileResponse) + if _, err = os.Stat(sFileResponse); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileResponse) + return + } + err=nil + + sFileRequest:="./offline_request" + _ = os.Remove(sFileRequest) + if _, err = os.Stat(sFileRequest); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileRequest) + return + } + err=nil + + var sType string + if (iType==0) { + sType = "scalar_mult" + } else if (iType==1) { + sType = "shared_secret" + } else { + err = fmt.Errorf("Unsupported type: %d\n", iType) + return + } + + //During the processing of the blockchain data, the same transaction + //will appear mutiple times. Test to see if we can simply return the + //previously obtained result: + for t := range saOfflineOperations { + if (saOfflineOperations[t].iType == iType) { + if bytes.Equal(saOfflineOperations[t].baRequest,baData) { + result = make([]byte, len(saOfflineOperations[t].baResult)) + copy (result,saOfflineOperations[t].baResult) + return; + } + } + } + + //Parameter [0] action: 0=scalar mult, 1=shared secret + // [1] Project - 'dero' + // [2] Version - Layout of the command fields + // Version 1: [3] data + // [4] Checksum of all the characters in the data stream + sOutput := fmt.Sprintf("%s dero 1 %x",sType,baData) + var iCalculatedChecksum=0x01 + for t := range sOutput { + iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) + } + sOutput = fmt.Sprintf("%s %d",sOutput, iCalculatedChecksum) + + baOutput := []byte(sOutput) + + err = os.WriteFile(sFileRequest, baOutput, 0644) + if err!=nil { + err = fmt.Errorf("Error saving file. %s\n",err) + return + } + fmt.Printf("\nInteraction with offline wallet required. Saved request to: %s\nSearching for 60 seconds for the response at: %s\n",sFileRequest,sFileResponse) + + bFound:=0 + counter:=0 + for counter <= 60 { + if _, err := os.Stat(sFileResponse); err == nil { + bFound=1 + break; + } + counter++ + time.Sleep(1 * time.Second) + } + + if (bFound==0) { + err = fmt.Errorf("Could not find the response file.\n"); + return; + } + + baInput, err := os.ReadFile(sFileResponse) + if err!=nil { + err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileResponse); + return; + } + _ = os.Remove(sFileResponse) + if _, err = os.Stat(sFileResponse); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileResponse) + return + } + + //Parameter [0] header - scalar_mult_result or shared_secret_result + // [1] Project - 'dero' + // [2] Version - Layout of the command fields + // Version 1: [3] scalar multiply result used to decode the balance + // [4] Checksum of all the characters in the data stream + sInput := string(baInput[:]) + saParts := strings.Split(sInput," ") + if (len(saParts) != 5) { + err = fmt.Errorf("Invalid number of parts in the transaction. Found %d, expected 14\n", len(saParts)) + return; + } + + sCompare := fmt.Sprintf("%s_result", sType) + if (saParts[0] != sCompare) { + err = fmt.Errorf("Requested operation: '%s'. Expected back result: '%s', found: %s\n",sType, sCompare, saParts[0]) + return + } + + if (saParts[1] != "dero") { + err = fmt.Errorf("Expected Dero communication, Found %s\n",saParts[1]); + return; + } + + if (saParts[2] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) + return + } + + sProtocolChecksum := saParts[4] + sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) + iCalculatedChecksum=0x01; + for t := range sInput { + iVal := int(sInput[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + + if (sProtocolChecksum!=sCalculatedChecksum) { + err = fmt.Errorf("The checksum of the signed transaction data is invalid.\n") + return + } + + result,err = hex.DecodeString(saParts[3]) + if err!=nil { + err = fmt.Errorf("Could not decode the result from the offline wallet\n"); + } + + //Reconstruct type 0=scalar mult + // result := new(bn256.G1); + // result.Unmarshal(baResult) + //Reconstruct type 1=shared secret + // The result is a 32 byte array + + //Store the entry in the cache + var sOfflineOperations OfflineOperations_t + sOfflineOperations.iType = iType; + + sOfflineOperations.baRequest = make([]byte, len(baData)) + copy (sOfflineOperations.baRequest, baData) + + sOfflineOperations.baResult = make([]byte, len(result)) + copy (sOfflineOperations.baResult, result) + + saOfflineOperations = append(saOfflineOperations, sOfflineOperations) + + fmt.Printf("Response checks out.\n\n"); + return +} + // decode encrypted balance now // it may take a long time, its currently sing threaded, need to parallelize func (w *Wallet_Memory) DecodeEncryptedBalanceNow(el *crypto.ElGamal) uint64 { + ScalarMultResult := new(bn256.G1); + if (w.ViewOnly()==false) { + ScalarMultResult = new(bn256.G1).ScalarMult(el.Right, w.account.Keys.Secret.BigInt()) + } else { + // Need to perform this operation in the offline wallet: ScalarMultResult := new(bn256.G1).ScalarMult(el.Right, Secret.BigInt()) + baData := el.Right.Marshal(); + baResult,err := w.OfflineOperationWithSecretKey(0,baData) + if err!=nil { + fmt.Printf("Could not retrieve the balance\n") + return 0 + } + ScalarMultResult.Unmarshal(baResult) + } - balance_point := new(bn256.G1).Add(el.Left, new(bn256.G1).Neg(new(bn256.G1).ScalarMult(el.Right, w.account.Keys.Secret.BigInt()))) - return Balance_lookup_table.Lookup(balance_point, w.account.Balance_Mature) + balance_point := new(bn256.G1).Add( el.Left, new(bn256.G1).Neg( ScalarMultResult ) ) + balance := Balance_lookup_table.Lookup(balance_point, w.account.Balance_Mature) + return balance } func (w *Wallet_Memory) GetSelfEncryptedBalanceAtTopoHeight(scid crypto.Hash, topoheight int64) (r rpc.GetEncryptedBalance_Result, err error) { @@ -365,7 +549,6 @@ func (w *Wallet_Memory) GetSelfEncryptedBalanceAtTopoHeight(scid crypto.Hash, to // TODO in order to stop privacy leaks we must guess this information somehow on client side itself // maybe the server can broadcast a bloomfilter or something else from the mempool keyimages func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topoheight int64, accountaddr string) (bits int, lastused uint64, blid crypto.Hash, e *crypto.ElGamal, err error) { - defer func() { if r := recover(); r != nil { logger.V(1).Error(nil, "Recovered while GetEncryptedBalanceAtTopoHeight", "r", r, "stack", debug.Stack()) @@ -385,12 +568,14 @@ func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topohe //var params rpc.GetEncryptedBalance_Params var result rpc.GetEncryptedBalance_Result + + var WalletAddress = w.GetAddress().String() // Issue a call with a response. if err = rpc_client.Call("DERO.GetEncryptedBalance", rpc.GetEncryptedBalance_Params{SCID: scid, Address: accountaddr, TopoHeight: topoheight}, &result); err != nil { logger.Error(err, "DERO.GetEncryptedBalance Call failed:") - if strings.Contains(strings.ToLower(err.Error()), strings.ToLower(errormsg.ErrAccountUnregistered.Error())) && accountaddr == w.GetAddress().String() && scid.IsZero() { + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower(errormsg.ErrAccountUnregistered.Error())) && accountaddr == WalletAddress && scid.IsZero() { w.Error = errormsg.ErrAccountUnregistered //fmt.Printf("setting unregisterd111 err %s scid %s topoheight %d\n",err,scid, topoheight) //fmt.Printf("debug stack %s\n",debug.Stack()) @@ -415,8 +600,8 @@ func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topohe return } - // fmt.Printf("GetEncryptedBalance result %+v\n", result) - if scid.IsZero() && accountaddr == w.GetAddress().String() { + // fmt.Printf("GetEncryptedBalance result %+v\n", result) + if scid.IsZero() && accountaddr == WalletAddress { if result.Status == errormsg.ErrAccountUnregistered.Error() { w.Error = errormsg.ErrAccountUnregistered w.account.Registered = false @@ -425,7 +610,7 @@ func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topohe } } - // fmt.Printf("status '%s' err '%s' %+v %+v \n", result.Status , w.Error , result.Status == errormsg.ErrAccountUnregistered.Error() , accountaddr == w.account.GetAddress().String()) + // fmt.Printf("status '%s' err '%s' %+v %+v \n", result.Status , w.Error , result.Status == errormsg.ErrAccountUnregistered.Error() , accountaddr == WalletAddress) if scid.IsZero() && result.Status == errormsg.ErrAccountUnregistered.Error() { err = fmt.Errorf("%s", result.Status) @@ -438,8 +623,8 @@ func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topohe w.Merkle_Balance_TreeHash = result.DMerkle_Balance_TreeHash } - if topoheight == -1 && accountaddr == w.GetAddress().String() { - //fmt.Printf("topoheight %d accountaddr '%s' waddress '%s'\n ",topoheight,accountaddr,w.GetAddress().String()) + if topoheight == -1 && accountaddr == WalletAddress { + //fmt.Printf("topoheight %d accountaddr '%s' waddress '%s'\n ",topoheight,accountaddr,WalletAddress) w.setEncryptedBalanceresult(scid, result) w.account.TopoHeight = result.Topoheight @@ -455,7 +640,7 @@ func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topohe return } - if accountaddr == w.GetAddress().String() && scid.IsZero() { + if accountaddr == WalletAddress && scid.IsZero() { w.Error = nil } @@ -466,8 +651,23 @@ func (w *Wallet_Memory) GetEncryptedBalanceAtTopoHeight(scid crypto.Hash, topohe } func (w *Wallet_Memory) DecodeEncryptedBalance_Memory(el *crypto.ElGamal, hint uint64) (balance uint64) { + + ScalarMultResult := new(bn256.G1); + if (w.ViewOnly()==false) { + ScalarMultResult = new(bn256.G1).ScalarMult(el.Right, w.account.Keys.Secret.BigInt()) + } else { + // Need to perform this operation in the offline wallet: ScalarMultResult := new(bn256.G1).ScalarMult(el.Right, Secret.BigInt()) + baData := el.Right.Marshal(); + baResult,err := w.OfflineOperationWithSecretKey(0,baData) + if err!=nil { + fmt.Printf("Could not retrieve the balance") + return 0 + } + ScalarMultResult.Unmarshal(baResult) + } + var balance_point bn256.G1 - balance_point.Add(el.Left, new(bn256.G1).Neg(new(bn256.G1).ScalarMult(el.Right, w.account.Keys.Secret.BigInt()))) + balance_point.Add(el.Left, new(bn256.G1).Neg( ScalarMultResult )) return Balance_lookup_table.Lookup(&balance_point, hint) } @@ -639,6 +839,13 @@ func (w *Wallet_Memory) synchistory_internal_binary_search(level int, scid crypt var err error //defer fmt.Printf("end %d start %d err %s\n", end_topo, start_topo, err) + +// fmt.Printf("end %d start %d err %s\n", end_topo, start_topo, err) +// _, file, no, ok := runtime.Caller(1) +// if ok { +// fmt.Printf("called from %s#%d\n", file, no) +// } + if end_topo < 0 { return fmt.Errorf("done") @@ -706,7 +913,6 @@ func (w *Wallet_Memory) synchistory_internal_binary_search(level int, scid crypt // for a particular block // for the entire chain func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err error) { - var local_entries []rpc.Entry compressed_address := w.account.Keys.Public.EncodeCompressed() @@ -714,7 +920,7 @@ func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err err var previous_balance_e, current_balance_e *crypto.ElGamal var previous_balance, current_balance, total_sent, total_received uint64 - if topo <= 0 || w.getEncryptedBalanceresult(scid).Registration == topo { + if topo <= 0 || w.getEncryptedBalanceresult(scid).Registration == topo { previous_balance_e = crypto.ConstructElGamal(w.account.Keys.Public.G1(), crypto.ElGamal_BASE_G) } else { _, _, _, previous_balance_e, err = w.GetEncryptedBalanceAtTopoHeight(scid, topo-1, w.GetAddress().String()) @@ -881,7 +1087,28 @@ func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err err for l := range tx.Payloads[t].Statement.Publickeylist_compressed { rinputs = append(rinputs, tx.Payloads[t].Statement.Publickeylist_compressed[l][:]...) } - rencrypted := new(bn256.G1).ScalarMult(crypto.HashToPoint(crypto.HashtoNumber(append([]byte(crypto.PROTOCOL_CONSTANT), rinputs...))), w.account.Keys.Secret.BigInt()) + + hashtonumber := crypto.HashtoNumber( append( []byte(crypto.PROTOCOL_CONSTANT), rinputs... )) + + rencrypted := new(bn256.G1); + if (w.ViewOnly()==true) { + // Need to perform this operation in the offline wallet: rencrypted := new(bn256.G1).ScalarMult(crypto.HashToPoint( hashtonumber ) , Secret.BigInt() ) + baData := crypto.HashToPoint( hashtonumber ).Marshal() + + baResult,err := w.OfflineOperationWithSecretKey(0,baData) + if err!=nil { + fmt.Printf("Could not retrieve the balance") + continue + } + rencrypted = new(bn256.G1); + rencrypted.Unmarshal(baResult) + + + } else { + rencrypted = new(bn256.G1).ScalarMult(crypto.HashToPoint( hashtonumber ) , w.account.Keys.Secret.BigInt() ) + } + + r := crypto.ReducedHash(rencrypted.EncodeCompressed()) //fmt.Printf("t %d r calculated %s value amount %d burn %d\n", t, r.Text(16), entry.Amount,entry.Burn) @@ -970,7 +1197,7 @@ func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err err } - case previous_balance < changed_balance: // someone sentus this amount + case previous_balance < changed_balance: // someone sent us this amount entry.Amount = changed_balance - previous_balance entry.Incoming = true @@ -981,7 +1208,27 @@ func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err err blinder := &x - shared_key := crypto.GenerateSharedSecret(w.account.Keys.Secret.BigInt(), tx.Payloads[t].Statement.D) + var shared_key [32]byte + if (w.ViewOnly()==true) { + //shared_key = crypto.GenerateSharedSecret(w.account.Keys.Secret.BigInt(), tx.Payloads[t].Statement.D) + baData := tx.Payloads[t].Statement.D.Marshal() + baResult,err := w.OfflineOperationWithSecretKey(1,baData) + if err!=nil { + fmt.Printf("Could not retrieve the balance") + continue + } + if (len(baResult)!= 32) { + fmt.Printf("Invalid lenght in result. Expected 32 bytes, found %d\n",len(baResult)) + } + for t := range baResult { + shared_key[t] = baResult[t] + } + + fmt.Printf("Reassembled.\nOrig: %x\nNew : %x\n", baResult, shared_key) + + } else { + shared_key = crypto.GenerateSharedSecret(w.account.Keys.Secret.BigInt(), tx.Payloads[t].Statement.D) + } // enable receiver side proofs proof := rpc.NewAddressFromKeys((*crypto.Point)(blinder)) diff --git a/walletapi/transaction_build.go b/walletapi/transaction_build.go index 57387dd6..1665ff74 100644 --- a/walletapi/transaction_build.go +++ b/walletapi/transaction_build.go @@ -20,8 +20,7 @@ var GenerateProoffuncptr GenerateProofFunc = crypto.GenerateProof // generate proof etc func (w *Wallet_Memory) BuildTransaction(transfers []rpc.Transfer, emap [][][]byte, rings [][]*bn256.G1, block_hash crypto.Hash, height uint64, scdata rpc.Arguments, roothash []byte, max_bits int, fees uint64) *transaction.Transaction { - - sender := w.account.Keys.Public.G1() + sender := w.account.Keys.Public.G1() sender_secret := w.account.Keys.Secret.BigInt() var retry_count int @@ -114,8 +113,6 @@ rebuild_tx: } } - // fmt.Printf("len of publickeylist %d \n", len(publickeylist)) - // revealing r will disclose the amount and the sender and receiver and separate anonymous ring members // calculate r deterministically, so its different every transaction, in emergency it can be given to other, and still will not allows key attacks rinputs := append([]byte{}, roothash[:]...) @@ -211,11 +208,9 @@ rebuild_tx: } - // decode sender (our) balance now, it might have been updated + // decode sender (our) balance now, it might have been updated balance := w.DecodeEncryptedBalanceNow(ebalances_list[witness_index[0]]) - //fmt.Printf("t %d scid %s balance %d\n", t, transfers[t].SCID, balance) - // time for bullets-sigma fees_currentasset := uint64(0) if asset.SCID.IsZero() { @@ -245,7 +240,12 @@ rebuild_tx: balance = balance.Add(echanges) // homomorphic addition of changes umap[transfers[t].SCID.String()+publickeylist[i].String()] = balance.Serialize() // reserialize and store } - + + //Evaluate available balance after processing the transfer[] entry: + if (balance < (transfers[t].Amount + fees_currentasset)) { + fmt.Printf("Insufficient funds to process the transaction: Balance %d < Spend amount,fees,burn value: %d+%d+%d\n", balance, transfers[t].Amount, fees_currentasset,burn_value) + return nil + } } scid_map := map[crypto.Hash]int{} diff --git a/walletapi/wallet.go b/walletapi/wallet.go index be4a6f18..ca0b55ff 100644 --- a/walletapi/wallet.go +++ b/walletapi/wallet.go @@ -27,6 +27,7 @@ import ( "strings" "sync" "time" + "encoding/hex" "github.com/deroproject/derohe/cryptography/bn256" "github.com/deroproject/derohe/cryptography/crypto" @@ -184,6 +185,58 @@ func Generate_Account_From_Seed(Seed *crypto.BNRed) (user *Account, err error) { return } +func Generate_Account_From_ViewOnly_params(sPublicKey string, sPublicKeyG1 string, IsMainnet bool ) (user *Account, err error) { + user = &Account{Ringsize: 16, FeesMultiplier: 2.0} + + user.mainnet=IsMainnet + + //Secret: + var biSecret,ok = new(big.Int).SetString("0000000000000000000000000000000000000000000000000000000000000000",0) + if !ok { + err = fmt.Errorf("Cant assign secret") + return + } + user.Keys.Secret = crypto.GetBNRed(biSecret) + + //Public: + //Initialise the structure: + user.Keys.Public = crypto.GPoint.ScalarMult( user.Keys.Secret ) + + //Apply the imported public key: + baData, err := hex.DecodeString( sPublicKeyG1 ) + if err!=nil { + err = fmt.Errorf("Could not decode the hex input") + return + } + _, err = user.Keys.Public.G1().Unmarshal(baData) + if err!=nil { + err = fmt.Errorf("Could not process the public key") + return + } + + sDerivedPublic := fmt.Sprintf("%x",user.Keys.Public) + if (sDerivedPublic != sPublicKey) { + err = fmt.Errorf("The derived public key (%s) doesn't match the provided public key (%s) from the input\n", sDerivedPublic, sPublicKey) + return + } + + fmt.Printf(" Restored public key: %x\n", user.Keys.Public) + return +} + + +// Is this a 'view only' wallet? +// Return true: view only wallet with only a public key +// false: full function wallet with public & private key +func (w *Wallet_Memory) ViewOnly() bool { + if (len(w.account.Keys.Secret.String()) > 1) { + return false + } else { + return true + } +} + + // convert key to seed using language func (w *Wallet_Memory) GetSeed() (str string) { return mnemonics.Key_To_Words(w.account.Keys.Secret.BigInt(), w.account.SeedLanguage) diff --git a/walletapi/wallet_disk.go b/walletapi/wallet_disk.go index e8b059ea..ac33bac9 100644 --- a/walletapi/wallet_disk.go +++ b/walletapi/wallet_disk.go @@ -35,8 +35,8 @@ type Wallet_Disk struct { // when smart contracts are implemented, each will have it's own universe to track and maintain transactions // this file implements the encrypted data store at rest -func Create_Encrypted_Wallet(filename string, password string, seed *crypto.BNRed) (wd *Wallet_Disk, err error) { - +// By providing the Account as input, both full and view-only wallet types are supported +func Create_Encrypted_Wallet(filename string, password string, account *Account) (wd *Wallet_Disk, err error) { if _, err = os.Stat(filename); err == nil { err = fmt.Errorf("File '%s' already exists", filename) return @@ -50,7 +50,7 @@ func Create_Encrypted_Wallet(filename string, password string, seed *crypto.BNRe wd = &Wallet_Disk{filename: filename} // generate account keys - if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, seed); err != nil { + if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account); err != nil { return nil, err } wd.Wallet_Memory.wallet_disk = wd @@ -66,7 +66,13 @@ func Create_Encrypted_Wallet_From_Recovery_Words(filename string, password strin if err != nil { return } - if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, crypto.GetBNRed(seed)); err != nil { + + account,err2 := Generate_Account_From_Seed (crypto.GetBNRed(seed)) + if err2 != nil { + return + } + + if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account); err != nil { return nil, err } @@ -78,9 +84,16 @@ func Create_Encrypted_Wallet_From_Recovery_Words(filename string, password strin // create an encrypted wallet using using random data func Create_Encrypted_Wallet_Random(filename string, password string) (wd *Wallet_Disk, err error) { wd = &Wallet_Disk{filename: filename} - if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, crypto.RandomScalarBNRed()); err == nil { + + account,err2 := Generate_Account_From_Seed ( crypto.RandomScalarBNRed() ) + if err2 != nil { + return + } + + if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account ); err == nil { return wd, nil } + wd.Wallet_Memory.wallet_disk = wd return nil, err diff --git a/walletapi/wallet_memory.go b/walletapi/wallet_memory.go index 37e5a147..fea9d481 100644 --- a/walletapi/wallet_memory.go +++ b/walletapi/wallet_memory.go @@ -90,7 +90,8 @@ type Wallet_Memory struct { // when smart contracts are implemented, each will have it's own universe to track and maintain transactions // this file implements the encrypted data store at rest -func Create_Encrypted_Wallet_Memory(password string, seed *crypto.BNRed) (w *Wallet_Memory, err error) { +// By providing the Account as input, both full and view-only wallet types are supported +func Create_Encrypted_Wallet_Memory(password string, account *Account) (w *Wallet_Memory, err error) { w = &Wallet_Memory{} w.Version = config.Version @@ -98,12 +99,8 @@ func Create_Encrypted_Wallet_Memory(password string, seed *crypto.BNRed) (w *Wal return } - // generate account keys - w.account, err = Generate_Account_From_Seed(seed) - if err != nil { - return - } - + w.account = account + // generate a 64 byte key to be used as master Key w.master_password = make([]byte, 32, 32) _, err = rand.Read(w.master_password) @@ -133,8 +130,14 @@ func Create_Encrypted_Wallet_From_Recovery_Words_Memory(password string, electru if err != nil { return } - w, err = Create_Encrypted_Wallet_Memory(password, crypto.GetBNRed(seed)) + //Prepare account with private&public key + account,err2 := Generate_Account_From_Seed ( crypto.GetBNRed(seed) ) + if err2 != nil { + return + } + + w, err = Create_Encrypted_Wallet_Memory(password, account) if err != nil { return } @@ -145,11 +148,16 @@ func Create_Encrypted_Wallet_From_Recovery_Words_Memory(password string, electru // create an encrypted wallet using using random data func Create_Encrypted_Wallet_Random_Memory(password string) (w *Wallet_Memory, err error) { - w, err = Create_Encrypted_Wallet_Memory(password, crypto.RandomScalarBNRed()) + account,err2 := Generate_Account_From_Seed ( crypto.RandomScalarBNRed() ) + if err2 != nil { + return + } + w, err = Create_Encrypted_Wallet_Memory(password, account) if err != nil { return } + // TODO setup seed language, default is already english return } diff --git a/walletapi/wallet_transfer.go b/walletapi/wallet_transfer.go index 170eadae..88aea2ab 100644 --- a/walletapi/wallet_transfer.go +++ b/walletapi/wallet_transfer.go @@ -19,7 +19,10 @@ package walletapi import ( "encoding/hex" "fmt" - + "os" + "time" + "strings" + "github.com/deroproject/derohe/config" "github.com/deroproject/derohe/cryptography/bn256" "github.com/deroproject/derohe/cryptography/crypto" @@ -177,8 +180,8 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint total_amount_required[transfers[i].SCID] = total_amount_required[transfers[i].SCID] + transfers[i].Amount + transfers[i].Burn } + var current_balance uint64 for i := range transfers { - var current_balance uint64 current_balance, _, err = w.GetDecryptedBalanceAtTopoHeight(transfers[i].SCID, -1, w.GetAddress().String()) if err != nil { @@ -257,6 +260,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint // TODO, we should check nonce for base token and other tokens at the same time // right now, we are probably using a bit of luck here if daemon_topoheight >= int64(noncetopo)+3 { // if wallet has not been recently used, increase probability of user's tx being successfully mined + topoheight = daemon_topoheight - 3 } @@ -414,6 +418,314 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint } max_bits += 6 // extra 6 bits + + //If this is a view only wallet, prepare and send the transaction to the offline wallet for signing. + //Import the signed transaction again and continue with the normal work flow to submit the transaction + //to the network + if (w.ViewOnly()==true) { + // Calculate an estimate of the full transaction cost, to see if the balance has enough funds: + var spend uint64 + var fees uint64 + spend=0 + fees=0 + fees_done:=false + + len_publickeylist:=len(rings[0]) + + for t := range transfers { + spend = spend + transfers[t].Amount + transfers[t].Burn + + //From transaction builder, use the estimate fees calculator: + var asset transaction.AssetPayload + + asset.SCID = transfers[t].SCID + asset.BurnValue = transfers[t].Burn + + if fees == 0 && asset.SCID.IsZero() && !fees_done { + fees = fees + uint64(len(transfers)+2)*uint64((float64(config.FEE_PER_KB)*float64(float32(len_publickeylist/16)+w.GetFeeMultiplier()))) + if data, err := scdata.MarshalBinary(); err != nil { + panic(err) + } else { + fees = fees + (uint64(len(data))*15)/10 + } + fees_done = true + } + } + //Fee is applied for each transfer in the transaction: + fees = fees * uint64(len(transfers)) + +// fmt.Printf("spends: %d\n", spend); + if (current_balance < (spend+fees)) { + err = fmt.Errorf("Spend amount (%d) + estimated fees (%d) is more than your current balance: %d\n",spend,fees,current_balance) + return + } + + //Parameter [0]: Project - Dero='dero' + // [1]: Version - Layout of the command fields + // Version 1: [2] Array of transfers (outputs) + // [3] Array of ring balances + // [4] Array of rings + // [5] block_hash + // [6] height + // [7] Array of scdata + // [8] treehash + // [9] max_bits + // [10] gasstorage + // [11] Checksum of all the characters in the command. + var sReturn string + var sChecksumInput string + + sReturn="sign_offline dero 1 "; + sChecksumInput="dero 1 "; + + var counter=0 + +// fmt.Print("transfers: %d\n",len(transfers)) + sChecksumInput+="transfers:"; + sReturn=sReturn+"'["; + counter=0 + for t := range transfers { + baRPC, err := transfers[t].Payload_RPC.MarshalBinary() + if err!=nil { + panic("Could not convert payload_rpc to binary") + } + hexRPC := hex.EncodeToString(baRPC) + sTmp:=fmt.Sprintf("{\"SCID\":\"%s\",\"Destination\":\"%s\",\"Amount\":%d,\"Burn\":%d,\"RPC\":\"%s\"}", transfers[t].SCID, transfers[t].Destination, transfers[t].Amount, transfers[t].Burn, hexRPC ) + sReturn=sReturn+sTmp; + + sTmp=fmt.Sprintf("\"%s\" \"%s\" %d %d \"%s\"", transfers[t].SCID, transfers[t].Destination, transfers[t].Amount, transfers[t].Burn, hexRPC ) + sChecksumInput+=" "+sTmp + + //Last entry: Must close the array with ]' + //otherwide start the next entry with a , + if (counter == len(transfers)-1) { + sReturn=sReturn+"]' "; + } else { + sReturn=sReturn+","; + } + counter++ + } + +// fmt.Printf("rings_balances: %d\n",len(rings_balances)) + var counter1=0 + var counter2=0 + + sChecksumInput+=" rings_balances:" + sReturn=sReturn+"'[" + for t := range rings_balances { + //fmt.Printf("rings_balances{%d}:{%d} entries\n",counter1,len(rings_balances[t])) + sReturn=sReturn+"{"; + counter2=0 + for u := range rings_balances[t] { + sTmp := fmt.Sprintf("%x",rings_balances[t][u]) + sReturn = sReturn + sTmp + sChecksumInput+=" "+sTmp + + //Last entry: Must close the array with ]' + //otherwide start the next entry with a , + if (counter2 == len(rings_balances[t])-1) { + sReturn=sReturn+"}"; + } else { + sReturn=sReturn+","; + } + counter2++ + } + + //Last entry: Must close the array with ]' + //otherwide start the next entry with a , + if (counter1 == len(rings_balances)-1) { + sReturn=sReturn+"]' "; + } else { + sReturn=sReturn+","; + } + counter1++ + } + +// fmt.Printf("rings:{%d} entries\n", len(rings)) + sChecksumInput+=" rings:"; + sReturn=sReturn+"'["; + + counter1=0 + counter2=0 + for t := range rings { + //fmt.Printf("ring{%d}:{%d} entries\n",counter1,len(rings[t])) + sReturn=sReturn+"{"; + counter2=0 + for u := range rings[t] { + sTmp := fmt.Sprintf("%x",rings[t][u].Marshal() ) + sReturn = sReturn + sTmp + sChecksumInput+=" "+sTmp + + if (counter2 == len(rings_balances[t])-1) { + sReturn=sReturn+"}"; + } else { + sReturn=sReturn+","; + } + counter2++ + } + + if (counter1 == len(rings_balances)-1) { + sReturn=sReturn+"]' "; + } else { + sReturn=sReturn+","; + } + counter1++ + } + + + sTmp:=fmt.Sprintf("\"%s\" ",block_hash) + sReturn=sReturn + sTmp + sChecksumInput+=" "+sTmp + + sTmp=fmt.Sprintf("%d ",height) + sReturn=sReturn + sTmp + sChecksumInput+=sTmp + + sTmp=fmt.Sprintf("'%x' ",scdata) + sReturn=sReturn + sTmp + sChecksumInput+=sTmp + + sTmp=fmt.Sprintf("\"%x\" ",treehash_raw) + sReturn=sReturn + sTmp + sChecksumInput+=sTmp + + sTmp=fmt.Sprintf("%d ",max_bits) + sReturn=sReturn + sTmp + sChecksumInput+=sTmp + + sTmp=fmt.Sprintf("%x",gasstorage) + sReturn=sReturn + sTmp + sChecksumInput+=sTmp + + + //Parameter [12]: checksum + //A simple checksum of the full string, to detect copy/paste errors between the wallets + //The checksum equals the sum of the ASCII values of all the characters in the string: + iChecksum:=0x01; + for t := range sChecksumInput { + iVal := int(sChecksumInput[t]) + iChecksum = iChecksum + iVal; + } + sTmp = fmt.Sprintf(" %d",iChecksum) + sReturn=sReturn + sTmp + + //-------------------------------------------------------------------------------------- + // Compiling transaction data completed. Now need to exchange it with the offline wallet + // to get it signed + + _ = os.Remove("./transaction") + + if _, err = os.Stat("./transaction"); err == nil { + err = fmt.Errorf("Could not delete ./transaction") + return + } + + //The signed file is created by the offline wallet. We may not have permissions to erase the + // file. Let the user perform it manually + _ = os.Remove("./signed") + if _, err = os.Stat("./signed"); err == nil { + err = fmt.Errorf("Found old signed transaction at ./signed. Delete the file before starting a new transaction.\n") + return + } + + fmt.Printf("Saved transaction data to: ./transaction. Transfer it to the offline (signing) wallet and have it signed there.\n" ) + + baData := []byte(sReturn) + err = os.WriteFile("./transaction", baData, 0644) + if err!=nil { + err = fmt.Errorf("Error saving file. %s\n",err) + return + } + + bFound:=0 + counter=0 + //TODO: what is the longest we can wait to submit a transaction and still have it processed by the network? + fmt.Printf("Waiting 30 seconds for the signed transaction from the offline wallet at ./signed\n"); + for counter <= 30 { + if _, err := os.Stat("./signed"); err == nil { + bFound=1 + break; + } + counter++ + time.Sleep(1 * time.Second) + } + + if (bFound==0) { + err = fmt.Errorf("Could not find the signed transaction\n"); + return; + } + + baData, err = os.ReadFile("./signed") + if err!=nil { + err = fmt.Errorf("Could not read from ./signed. Check the file permissions.\n"); + return; + } + fmt.Printf("Read %d bytes from ./signed. ",len(baData)) + + //Parameter [0]: header: signed + // [1]: Project - 'dero' + // [2]: Version - Layout of the command fields + // Version 1: [3] Signed transaction + // [4] Checksum of all the characters in the data stream + sInput := string(baData[:]) + saParts := strings.Split(sInput," ") + if (len(saParts) != 5) { + err = fmt.Errorf("Invalid number of parts in the transaction. Found %d, expected 14\n", len(saParts)) + return; + } + + if (saParts[0] != "signed") { + err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") + return + } + + if (saParts[1] != "dero") { + err = fmt.Errorf("Expected Dero communication, Found %s\n",saParts[1]); + return; + } + + if (saParts[2] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) + return + } + + sProtocolChecksum := saParts[4] + sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) + iCalculatedChecksum:=0x01; + for t := range sInput { + iVal := int(sInput[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + + if (sProtocolChecksum!=sCalculatedChecksum) { + err = fmt.Errorf("The checksum of the signed transaction data is invalid.\n") + tx=nil + return + } + + + tx = new(transaction.Transaction) + baData,err = hex.DecodeString( saParts[3] ) + if err!= nil { + err = fmt.Errorf("Could not decode the signed transaction.\n") + return + } + err = tx.Deserialize(baData) + if err!=nil { + err = fmt.Errorf("Could not deserialise the signed transaction.\n") + return + } + + //Remove old files + _ = os.Remove("./signed") + + fmt.Printf("The checksum passed. Continue to submit the transaction\n\n") + + return; + } + + if !dry_run { tx = w.BuildTransaction(transfers, rings_balances, rings, block_hash, height, scdata, treehash_raw, max_bits, gasstorage) } From 0ad12745b62361282f65ed5cd319815ec61592ed Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sun, 29 Oct 2023 21:02:55 +0200 Subject: [PATCH 02/18] Update some printed messages --- cmd/dero-wallet-cli/easymenu_post_open.go | 2 +- cmd/dero-wallet-cli/main.go | 5 ++--- walletapi/daemon_communication.go | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cmd/dero-wallet-cli/easymenu_post_open.go b/cmd/dero-wallet-cli/easymenu_post_open.go index f3f276b7..34ba2027 100644 --- a/cmd/dero-wallet-cli/easymenu_post_open.go +++ b/cmd/dero-wallet-cli/easymenu_post_open.go @@ -83,7 +83,7 @@ func display_easymenu_post_open_command(l *readline.Instance) { io.WriteString(w, "\t\033[1m6\033[0m\tToken transfer to another wallet\n") } else { io.WriteString(w, "\t\033[1m5\033[0m\tPrepare (DERO) transaction (for the offline wallet to sign)\n") - io.WriteString(w, "\t\033[1m6\033[0m\tPrepare token transaction (for the offline wallet to sign)\n") +// Not yet implemented/tested io.WriteString(w, "\t\033[1m6\033[0m\tPrepare token transaction (for the offline wallet to sign)\n") } io.WriteString(w, "\n") } diff --git a/cmd/dero-wallet-cli/main.go b/cmd/dero-wallet-cli/main.go index 8a4c1d3d..3fd222d6 100644 --- a/cmd/dero-wallet-cli/main.go +++ b/cmd/dero-wallet-cli/main.go @@ -565,7 +565,7 @@ func update_prompt(l *readline.Instance) { if (bOffline==true) { sFileRequest:="./offline_request" if _, err := os.Stat(sFileRequest); err == nil { - fmt.Printf("\nIncoming sign request\n") + fmt.Printf("\nFound ./offline_request -- new decryption request\n") baData, err := os.ReadFile(sFileRequest) if err!=nil { @@ -607,7 +607,6 @@ func update_prompt(l *readline.Instance) { } sProtocolChecksum := saParts[4] - fmt.Printf("Evaluate the checksum %s\n",sProtocolChecksum); sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) iCalculatedChecksum:=0x01; @@ -669,7 +668,7 @@ func update_prompt(l *readline.Instance) { err = fmt.Errorf("Error saving file. %s\n",err) continue; } - fmt.Printf("Saved signed result in ./offline_response\n") + fmt.Printf("Saved result in ./offline_response\n") } } diff --git a/walletapi/daemon_communication.go b/walletapi/daemon_communication.go index fe6abec3..b16f4755 100644 --- a/walletapi/daemon_communication.go +++ b/walletapi/daemon_communication.go @@ -505,7 +505,7 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) saOfflineOperations = append(saOfflineOperations, sOfflineOperations) - fmt.Printf("Response checks out.\n\n"); + fmt.Printf("\nFound a valid response\n"); return } From c3b7cafebef47f293699f4372b85974991b4d546 Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sun, 29 Oct 2023 21:15:16 +0200 Subject: [PATCH 03/18] Guide on how to set up an online (view only) and offline (signing) wallet --- README_offline_transaction_signing.md | 349 ++++++++++++++++++++++++++ images/0_export_view_key.jpg | Bin 0 -> 208442 bytes images/1_import_viewing_key.jpg | Bin 0 -> 247245 bytes images/2_register_account.jpg | Bin 0 -> 176903 bytes images/3_spend_transaction.jpg | Bin 0 -> 213007 bytes 5 files changed, 349 insertions(+) create mode 100644 README_offline_transaction_signing.md create mode 100644 images/0_export_view_key.jpg create mode 100644 images/1_import_viewing_key.jpg create mode 100644 images/2_register_account.jpg create mode 100644 images/3_spend_transaction.jpg diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md new file mode 100644 index 00000000..41c33cd6 --- /dev/null +++ b/README_offline_transaction_signing.md @@ -0,0 +1,349 @@ +## Sign a transaction using an offline wallet +This README matches the behaviour of a modified release 140 + +## Introduction +The problem with traditional wallets and how Dero addresses these +shortfalls: +1. How traditional wallets work
+ A wallet file (wallet.db) stores your addresses. Each address consists of a public + and secret part. The public part is what you share with people, so they can + make payments to you. The secret key is required to unlock and spend the funds + associated with that address. + +2. Risk associated with traditional wallets
+ If somebody obtains your secret key they can spend your funds. The network will + process the transaction if the cryptographic signature is correct. The network + doesn't validate who sent the transaction or from where. + An attacker will aim to obtain your wallet file in order to steal your secret + keys, and per extension, your funds. Malware hidden in applications is an easy + way for hackers to scout your hard drive for wallet files, which they send to + themselves over your internet link.
+ + Apart from the risk of loosing your funds to an attacker it's also much more likely + you'll loose your wallet file due to neglect. There are countless horror stories + of people who have lost billions (yes, with a 'B') worth of Bitcoin due to + hard drive crashes, hard drives that were formatted to make room for a new + O/S or game installation or simply old machines that were thrown away.
+ + If you were diligent and made a backup of the wallet file, you have to remember + which addresses it contains. Each time you create a new addresses it is not + automatically added to the backup copy. + Upon restoring of an old backup you might discover that it doesn't contain all + the new addresses created since the backup. Access to those funds are lost forever.
+ +3. BIP39: Mnemonic phrase improvement
+ The problem of loosing addresses and their private keys were mitigated with the + implementation of BIP39 mnemonic seed phrases. A single master key is created. + All the addresses in that wallet are derived from the master key. To the user + the master key is presented as a random 24 word (natural language) phrase, + called a mnemonic. + + When the wallet is created this phrase must be written down and stored in a secure + manner. The storage medium must protect against fire and moisture damage. + + Do not use your phone to take a picture of the phrase. Synchronisation software + could upload your images to the 'cloud' where it can be intercepted in transit + or on the remote storage. Do not print it out either. In rare cases malware in + printer firmware has been found to recognise these seed phrases and send it of + to the hackers. + + Paranoia regarding protection of your seed phrase is not unwarrented. + + When it's time to restore your addresses in a new wallet all you have to do is + to type in the mnemonic. The application will convert it to the master key. + No software backup of the wallet file is required. By initialising the wallet + with a valid seed phrase all the addresses derived from it can be recreated. + + If you have funds in a traditional wallet thats not based on BIP39, you can + setup a second wallet that uses the BIP39 technology. You can pay the funds + from the old wallet addresses to the new wallet, thereby transferring the + funds to the new wallet. + +4. Encrypted wallets + As seen above, BIP39 guards against loosing access to your individual addresses. + It however does not provide additional protection of loosing the actual wallet + file to an attacker. + On Dero the wallet file can be encrypted with a password. If an attacker obtains + the wallet file, they will not be able to open it. Your security is based on + choosing a long, secure password which can withstand a brute force attack. + +5. Offline cold storage + Two computers are required for this setup. One is connected to the internet + while the other has no network connectivity. + + The machine without network access is called the offline machine. On it you + setup an encrypted wallet with mnemonic seed phrase. The machine doesn't have + a copy of the blockchain. + + The machine with internet access is called the online machine. This machine + is synchronised with the blockchain. + + This process adds two levels of complexity: + * How do you view the transactions & balance of an address in the offline wallet? + * How do you spend the funds of an address in the offline wallet? + + The Dero command line (CLI) wallet overcomes these obstacles as follow: + + Viewing the transaction history + ------------------------------- + The Dero blockchain is encrypted. None of the transaction data is visible on + the blockchain. You can't import an address into the online wallet and view + the activity that occurred on that address. The secret key is required to + decrypt the data that contains your transactions. + + Dero requires that your register your address on the network. This allows an + initial filter of the data so that your wallet client only receives data that + is related to its address. + + As the online wallet receives the data it will create a separate data file, which + needs to be copied to the offline wallet for decryption. The decrypted data must + be copied back to the online wallet where it is imported. The decrypted data + enables the wallet to extract the transaction data and to compile your account balance. + + If the online wallet is somehow stolen it's (almost) no deal - information + is leaked regarding the balance & transaction history of your address. This is + clearly not a desireable thing, but at least the attacker will not be able to spend + the funds, like they would have if the wallet contained the secret (private) + key as well. + + Spend the funds + --------------- + The online wallet can construct a transaction for its address. All the required + inputs are contained in this transaction. The transaction is stored in a data file. + The file must be copied to the offline machine. There the secret key authorises (signs) the transaction. The authorised transaction is copied back to the online wallet and submitted to the network for processing. + +6. Summary + Pirate's Treasure Chest wallet gives you access to these features today: + * BIP39 master seed + * Split addresses between two wallets. The offline contains the private keys + and the online the viewing and spending keys. + * Encrypted storage of the wallet on disk and encrypted communication + * All running on an encrypted blockchain + +## Software setup +1. You require two PCs, preferrably Intel i5 or faster. About 200mb of hard drive space + is required if you plan to connect to a remote node. The internet link speed isn't + very important if you connect to a remote node. 1mbps or faster is sufficient. + The machines can run Linux, Mac OS X or MS Windows. For this tutorial Linux is used. + +2. You can obtain the software from the official Dero website: + https://dero.io/download.html or a source copy from GitHUB at + https://github.com/deroproject/derohe + + At the moment only the cli (command line) wallet supports offline transaction signing. + + If you've downloaded the Linux CLI (command line interface) install archive, extract + it as follow: + $ tar -xvzf dero_linux_amd64.tar.gz + $ cd dero_linux_amd64 + $ ls + derod-linux-amd64 dero-miner-linux-amd64 dero-wallet-cli-linux-amd64 explorer-linux-amd64 simulator-linux-amd64 Start.md + + We'll use the dero-wallet-cli-* application + + To build from source, you'll need to Go language (golang) compiler on your machine + to compile the software. On a Debian based Linux installation, you can install the + package as follow: + # apt-get update + # apt-get install golang:amd64 + + If you want to check out a copy of the github source code: + $ git clone https://github.com/deroproject/derohe + $ cd derohe/cmd/dero-wallet-cli + $ go build + + The new application is called: dero-wallet-cli + +3 Offline machine +3.1 First run + From a terminal console, launch the application: ./dero-wallet-cli --help + We will use the following command line options: + --offline - Specify that this wallet is an offline (signing) wallet + + --wallet-file - The name of your wallet, i.e. offline.db + --password - The password with which to encypt the wallet. It needs to + be a strong password, which can withstand a password attack, + but note, you'll have to enter this password regularly, so it + still needs to be something practical to work with. + + --generate-new-wallet - Let the wallet create a new mnemonic seed phrase and address + or + --restore-deterministic-wallet - You'll provide the mnemonic seed phrase + --electrum-seed - Here you'll provide the mnemonic phrase + + An example will be: + $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw --restore-deterministic-wallet --electrum-seed="your 25 seedphrase words here" + + After the wallet starts up the menu will provide you with a couple of options. + At the top of the menu is a greeting to show you that it is running in offline mode: + Offline (signing) wallet: + 1. Setup the online wallet with the exported public key + 2. Generate a registration transaction for the online wallet + 3. Sign spend transactions for the online wallet + + Select '0' to exit the wallet. + Check to see if the wallet was saved to disk + $ ls + The output must contain your wallet file: offline.db + +3.2 Second run + Now that the wallet is already created, you don't provide the restore & seed CLI options anymore: + $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw + + Menu options: + 1 Display account Address -- Shows your account address. Share this with people so they can pay you: + Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3 + 2 Display seed -- This prints your mnemonic recovery seed. If somebody obtains this seed phrase, they can restore a wallet and spend all your funds. + 3 Display Keys -- This normally contains the public and secret keys. While you're running in offline mode, an additional entry is display: The 'view only' key. This key is used to set up the online (view only) wallet. + secret key: 1234567890abcdecbd05d9e1a7f52796da7bc2d931bd0034ee6facef8f46e9be + public key: 1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201 + View only key - Import the complete text into the online (view only) wallet to set it up: + viewkey,dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010 + + 4 Generate registration transaction -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address. + + Example output: + Generating registration transaction for wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3 + Searched 100000 hashes + ... + ... + Searched 24600000 hashes + Found transaction: + Found the registration transaction. Import the complete text into the online (view only) wallet: + registration,dero1qy0eqpxjp6prmcr67j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,010000011f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f934201001822f65724584421db9e860e740250450b8192b3036a351c343274253636e21ad69f267b3a23e0f1d271ab17c143be2019710e682d4671258bb5dacd07e958,00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993;24578 + + +4 Online machine +4.1 First run + From a terminal console, launch the application: ./dero-wallet-cli --help + We will use the following command line options: + --remote - Connect to a remote node. This is often called 'light weight mode', since you do + not maintain a full copy of the blockchain. + --wallet-file - The name of your wallet, i.e. viewonly.db + --password - The password with which to encypt the wallet. It needs to + be a strong password, which can withstand a password attack, + but note, you'll have to enter this password regularly, so it + still needs to be something practical to work with. + + --restore-viewonly-wallet - Set up the wallet with the viewing key obtained from the offline wallet + + An example will be: + $ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw --restore-viewonly-wallet + + The software will have these 2 prompts: + Enter wallet filename (default viewonly.db): Just press enter to accept the default + Enter the view only key (obtained from the offline (signing) wallet): Paste the viewing key here, i.e.: + viewkey,dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010 + + If the key is accepted, you'll get this greeting: INFO wallet Successfully restored an online (view only) wallet + + After the wallet starts up the menu will provide you with a couple of options. + At the top of the menu is a greeting to show you that it is running in view only mode: + Online (view only) wallet: + 1. Register you account, using registration transaction from the offline (signing) wallet. + 2. View your account balance & transaction history + 3. Generate transactions for the offline wallet to sign. + 4. Submit the signed transactions to the network. + + Select '0' to exit the wallet. + Check to see if the wallet was saved to disk + $ ls + The output must contain your wallet file: viewonly.db + +4.2 Second run + Now that the wallet is already created, you don't provide the restore & seed CLI options anymore: + $ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw + + Menu options: + 1 Display account Address -- Shows your account address. Share this with people so they can pay you. + Note: The address must be the same as that of the offline wallet + Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3 + 2 Display seed -- This option is not available in the view only wallet. + 3 Display Keys -- Only the public key is displayed. This must match the public key in the offline wallet + 4 Account registration to blockchain -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address. + + Enter the registration transaction (obtained from the offline (signing) wallet): registration,dero1...,...,...;24578 + Registration TXID 00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993 + registration tx dispatched successfully + + Note: After the account was registered, the wallet needs to synchronise your account balance. + In order to accomplish this, interaction with the offline wallet is required. + +## Using the Online / Offline wallet configuration + For the demonstration to work effectively, fund your newly created address with some + Dero by sending some cents (0.xx) to it, either from an online exchange or from one + of your existing wallets with a balance. + +1. Balance enquiry and transaction history + The blockchain data is received by the online (view only) wallet. The data needs + to be decrypted before the information can be processed. The secret key, located + in the offline (signing) wallet, is required to accomplish this. + + Each time the online wallet receives a block which contains transaction information + for your address, a part of the information needs to be send to the offline wallet + for decryption. + + The online wallet will automatically create a file called 'offline_request' in the + current working directory, where the wallet is running. + + For testing purposes, if you run the online & offline copies in the same directory, + on the same machine, then the file created by the online wallet (offline_request) + will immediately be detected by the offline (signing) wallet and automatically + processed. If you run a production setup where the two wallets are completely + separate, then you'll have to copy the file (offline_request) from the online machine + to the offline machine yourself. + + The prompts are as follow: + Online wallet: + The blockchain interaction occurs in the background. After a block is detected this + text will appear: + Interaction with offline wallet required. Saved request to: ./offline_request + Searching for 60 seconds for the response at: ./offline_response + The 'offline_request' file must be copied to the offline wallet. + + Offline wallet: + After the 'offline_request' file is copied to its home directory, the wallet + will detect the presense of the file automatically and process it automatically: + Found ./offline_request -- new decryption request + Saved result in ./offline_response + The 'offline_response' file must be copied back to the online wallet + + Online wallet: + Found a valid response + + This exchange happens for each transaction that you receive or spend on your + address. Your balance will be shown as part of the command prompt. You can + view the transaction history under menu entry 13: Show transaction history + +2. Spend transaction + In order to spend your hard earned Dero you first need to fund your address, + as suggested at the top of this chapter. The online (view only) wallet will + pick up the transaction from the remote node. The transaction history and + account balance will be updated, after you've decrypted the data files as + described above in 5.1 + + The prompts are as follow: + Online wallet: + Select option '5' to prepare the transaction. + Enter the destination address, amount, destination port and comment + After the transaction is confirmed, the wallet prepares all the data and + saves it to 'transaction' in the current working directory where the + wallet is executing. + + This file must be copied to the offline wallet and placed in its working + directory. + + Offline wallet: + Select optio '5' to tell the wallet to sign the transaction. The output + of the wallet is: + Read 4680 bytes from ./transaction + Saved signed transaction to ./signed. Return it to the online (view only) + wallet to complete the transaction. + + Online wallet: + As per instruction, return ./signed to the online wallet. When the wallet + detect the file it will print a message: + Read 6465 bytes from ./signed. The checksum passed. Continue to submit the transaction + INFO wallet Dispatched tx {"txid": "c3cf9c408b43d7a7a9d2bcd603acdb6e70d89418014546e1bdbba755ac1ce427"} + +Congratulations, you've successfully created and send a transaction using an offline wallet diff --git a/images/0_export_view_key.jpg b/images/0_export_view_key.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e81aba42299bd9b4c6427c6046491d7ce7c68bb1 GIT binary patch literal 208442 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 s&dszhnWAlxlhZcJ|Ceoc{d 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 z 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

~5M4G-fr=3zK-_bNk)RI$vM(>gM%dNV9pm@u2yO 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≈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 z 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%0Dt2fKoU)LU?A_Nru% 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 EKRitt$^ZZW literal 0 HcmV?d00001 diff --git a/images/2_register_account.jpg b/images/2_register_account.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f95695612864100f3365e3f0e70e0df863f7447d GIT binary patch literal 176903 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 literal 0 HcmV?d00001 diff --git a/images/3_spend_transaction.jpg b/images/3_spend_transaction.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1282733c7824afb194f4b837372d0914b38fcb69 GIT binary patch literal 213007 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

1i52h|M1r8MYeUbu#6YO~E{}v?@ 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έ+ZHm- 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 literal 0 HcmV?d00001 From 3e33382a8395d32772b6821867dd9b69fcc17870 Mon Sep 17 00:00:00 2001 From: Mullroy <81013624+mullroy@users.noreply.github.com> Date: Sun, 29 Oct 2023 21:46:22 +0200 Subject: [PATCH 04/18] Update README_offline_transaction_signing.md Touching up layout --- README_offline_transaction_signing.md | 147 ++++++++++++-------------- 1 file changed, 65 insertions(+), 82 deletions(-) diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md index 41c33cd6..38c37d51 100644 --- a/README_offline_transaction_signing.md +++ b/README_offline_transaction_signing.md @@ -83,9 +83,8 @@ shortfalls: * How do you spend the funds of an address in the offline wallet? The Dero command line (CLI) wallet overcomes these obstacles as follow: - - Viewing the transaction history - ------------------------------- + + Viewing the transaction history
The Dero blockchain is encrypted. None of the transaction data is visible on the blockchain. You can't import an address into the online wallet and view the activity that occurred on that address. The secret key is required to @@ -106,13 +105,13 @@ shortfalls: the funds, like they would have if the wallet contained the secret (private) key as well. - Spend the funds - --------------- + Spend the funds
The online wallet can construct a transaction for its address. All the required inputs are contained in this transaction. The transaction is stored in a data file. - The file must be copied to the offline machine. There the secret key authorises (signs) the transaction. The authorised transaction is copied back to the online wallet and submitted to the network for processing. + The file must be copied to the offline machine. There the secret key authorises (signs) the transaction. + The authorised transaction is copied back to the online wallet and submitted to the network for processing. -6. Summary +7. Summary Pirate's Treasure Chest wallet gives you access to these features today: * BIP39 master seed * Split addresses between two wallets. The offline contains the private keys @@ -133,88 +132,72 @@ shortfalls: At the moment only the cli (command line) wallet supports offline transaction signing. If you've downloaded the Linux CLI (command line interface) install archive, extract - it as follow: - $ tar -xvzf dero_linux_amd64.tar.gz - $ cd dero_linux_amd64 - $ ls - derod-linux-amd64 dero-miner-linux-amd64 dero-wallet-cli-linux-amd64 explorer-linux-amd64 simulator-linux-amd64 Start.md - + it as follow:
+ $ tar -xvzf dero_linux_amd64.tar.gz
+ $ cd dero_linux_amd64
+ $ ls
+ derod-linux-amd64 dero-miner-linux-amd64 dero-wallet-cli-linux-amd64 explorer-linux-amd64 simulator-linux-amd64 Start.md
+

We'll use the dero-wallet-cli-* application To build from source, you'll need to Go language (golang) compiler on your machine to compile the software. On a Debian based Linux installation, you can install the - package as follow: - # apt-get update - # apt-get install golang:amd64 - - If you want to check out a copy of the github source code: - $ git clone https://github.com/deroproject/derohe - $ cd derohe/cmd/dero-wallet-cli - $ go build - + package as follow:
+ $ sudo apt-get update
+ $ sudo apt-get install golang:amd64

+ + If you want to check out a copy of the github source code:
+ $ git clone https://github.com/deroproject/derohe
+ $ cd derohe/cmd/dero-wallet-cli
+ $ go build

The new application is called: dero-wallet-cli -3 Offline machine -3.1 First run - From a terminal console, launch the application: ./dero-wallet-cli --help - We will use the following command line options: - --offline - Specify that this wallet is an offline (signing) wallet - - --wallet-file - The name of your wallet, i.e. offline.db - --password - The password with which to encypt the wallet. It needs to - be a strong password, which can withstand a password attack, - but note, you'll have to enter this password regularly, so it - still needs to be something practical to work with. - - --generate-new-wallet - Let the wallet create a new mnemonic seed phrase and address - or - --restore-deterministic-wallet - You'll provide the mnemonic seed phrase - --electrum-seed - Here you'll provide the mnemonic phrase - - An example will be: - $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw --restore-deterministic-wallet --electrum-seed="your 25 seedphrase words here" - - After the wallet starts up the menu will provide you with a couple of options. - At the top of the menu is a greeting to show you that it is running in offline mode: - Offline (signing) wallet: - 1. Setup the online wallet with the exported public key - 2. Generate a registration transaction for the online wallet - 3. Sign spend transactions for the online wallet - - Select '0' to exit the wallet. - Check to see if the wallet was saved to disk - $ ls - The output must contain your wallet file: offline.db - -3.2 Second run - Now that the wallet is already created, you don't provide the restore & seed CLI options anymore: - $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw - - Menu options: - 1 Display account Address -- Shows your account address. Share this with people so they can pay you: - Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3 - 2 Display seed -- This prints your mnemonic recovery seed. If somebody obtains this seed phrase, they can restore a wallet and spend all your funds. - 3 Display Keys -- This normally contains the public and secret keys. While you're running in offline mode, an additional entry is display: The 'view only' key. This key is used to set up the online (view only) wallet. - secret key: 1234567890abcdecbd05d9e1a7f52796da7bc2d931bd0034ee6facef8f46e9be - public key: 1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201 - View only key - Import the complete text into the online (view only) wallet to set it up: - viewkey,dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010 - - 4 Generate registration transaction -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address. - - Example output: - Generating registration transaction for wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3 - Searched 100000 hashes - ... - ... - Searched 24600000 hashes - Found transaction: - Found the registration transaction. Import the complete text into the online (view only) wallet: - registration,dero1qy0eqpxjp6prmcr67j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,010000011f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f934201001822f65724584421db9e860e740250450b8192b3036a351c343274253636e21ad69f267b3a23e0f1d271ab17c143be2019710e682d4671258bb5dacd07e958,00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993;24578 - +3 Offline machine
+3.1 First run
+ From a terminal console, launch the application: ./dero-wallet-cli --help
+ We will use the following command line options:
+ --offline - Specify that this wallet is an offline (signing) wallet
+ --wallet-file - The name of your wallet, i.e. offline.db

+ --password - The password with which to encypt the wallet. It needs to be a strong password, which can withstand a password attack, but note, you'll have to enter this password regularly, so it still needs to be something practical to work with.
+ --generate-new-wallet - Let the wallet create a new mnemonic seed phrase and address
+ or
+ --restore-deterministic-wallet - You'll provide the mnemonic seed phrase
+ --electrum-seed - Here you'll provide the mnemonic phrase
+ An example will be:
+ $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw --restore-deterministic-wallet --electrum-seed="your 25 seedphrase words here"
+ After the wallet starts up the menu will provide you with a couple of options. At the top of the menu is a greeting to show you that it is running in offline mode:
+   Offline (signing) wallet:
+   1. Setup the online wallet with the exported public key
+   2. Generate a registration transaction for the online wallet
+   3. Sign spend transactions for the online wallet
+ Select '0' to exit the wallet.
+ Check to see if the wallet was saved to disk: $ ls
+ The output must contain your wallet file: offline.db
+ +3.2 Second run
+ Now that the wallet is already created, you don't provide the restore & seed CLI options anymore:
+ $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw
+   Menu options:
+   1 Display account Address -- Shows your account address. Share this with people so they can send Dero to you: Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
+   2 Display seed -- This prints your mnemonic recovery seed. If somebody obtains this seed phrase, they can restore a wallet and spend all your funds.
+   3 Display Keys -- This normally contains the public and secret keys. While you're running in offline mode, an dditional entry is display: The 'view only' key. This key is used to set up the online (view only) wallet.
+   secret key: 1234567890abcdecbd05d9e1a7f52796da7bc2d931bd0034ee6facef8f46e9be
+   public key: 1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201
+   View only key - Import the complete text into the online (view only) wallet to set it up:
+   viewkey,dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010
+   4 Generate registration transaction -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address.
+Example output:
+   Generating registration transaction for wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
+   Searched 100000 hashes
+   ...
+   ...
+   Searched 24600000 hashes
+   Found transaction:
+   Found the registration transaction. Import the complete text into the online (view only) wallet:
+
   registration,dero1qy0eqpxjp6prmcr67j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,010000011f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f934201001822f65724584421db9e860e740250450b8192b3036a351c343274253636e21ad69f267b3a23e0f1d271ab17c143be2019710e682d4671258bb5dacd07e958,00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993;24578
-4 Online machine -4.1 First run +4 Online machine
+4.1 First run
From a terminal console, launch the application: ./dero-wallet-cli --help We will use the following command line options: --remote - Connect to a remote node. This is often called 'light weight mode', since you do From d52883dc1b6a5489bee2e2d40fc6c90d9fe4749a Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sat, 4 Nov 2023 12:22:38 +0200 Subject: [PATCH 05/18] Offline mode: Test if the provided file has a secret key --- cmd/dero-wallet-cli/easymenu_pre_open.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cmd/dero-wallet-cli/easymenu_pre_open.go b/cmd/dero-wallet-cli/easymenu_pre_open.go index 6aa2f156..4fcf9362 100644 --- a/cmd/dero-wallet-cli/easymenu_pre_open.go +++ b/cmd/dero-wallet-cli/easymenu_pre_open.go @@ -22,7 +22,6 @@ import "time" import "strconv" import "strings" import "encoding/hex" - import "github.com/chzyer/readline" import "github.com/deroproject/derohe/cryptography/crypto" @@ -224,7 +223,15 @@ func handle_easymenu_pre_open_command(l *readline.Instance, line string) { // sets online mode, starts RPC server etc func common_processing(wallet *walletapi.Wallet_Disk) { if globals.Arguments["--offline"].(bool) == true { - //offline_mode = true + // For an offline (signing) wallet, we require the secret key: + account := wallet.GetAccount() + sSecret := fmt.Sprintf("%x", account.Keys.Secret.BigInt() ) + if ( len(sSecret)==1 ) { + fmt.Printf("Your wallet doesn't have a secret key. Did you specify a view-only wallet (%s)?\n", globals.Arguments["--wallet-file"]) + //Exit application + globals.Exit_In_Progress = true + return + } } else { wallet.SetOnlineMode() } From a3bf7cf8ef4d3ed1ed9487fbe6bd0db00b1a2cc3 Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sat, 11 Nov 2023 13:22:28 +0200 Subject: [PATCH 06/18] Fix bug in Create_Encrypted_Wallet_Random() for evaluation of 'err'. Verbose feedback if any error is detected during wallet creation. Save wallet to disk immediately after its creation --- walletapi/wallet_disk.go | 48 +++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/walletapi/wallet_disk.go b/walletapi/wallet_disk.go index ac33bac9..9c995055 100644 --- a/walletapi/wallet_disk.go +++ b/walletapi/wallet_disk.go @@ -39,7 +39,7 @@ type Wallet_Disk struct { func Create_Encrypted_Wallet(filename string, password string, account *Account) (wd *Wallet_Disk, err error) { if _, err = os.Stat(filename); err == nil { err = fmt.Errorf("File '%s' already exists", filename) - return + return nil,err } else if os.IsNotExist(err) { // path/to/whatever does *not* exist @@ -50,11 +50,18 @@ func Create_Encrypted_Wallet(filename string, password string, account *Account) wd = &Wallet_Disk{filename: filename} // generate account keys - if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account); err != nil { + wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account) + if err != nil { + fmt.Printf("Could not create wallet: %s\n",err); return nil, err } wd.Wallet_Memory.wallet_disk = wd + // Flush wallet to disk, otherwise wallet file will only be created once the + // user exits the wallet menu back to the shell. During that time the wallet + // file is not on the disk yet, which can lead to data loss. + wd.Save_Wallet() + return } @@ -62,22 +69,30 @@ func Create_Encrypted_Wallet(filename string, password string, account *Account) func Create_Encrypted_Wallet_From_Recovery_Words(filename string, password string, electrum_seed string) (wd *Wallet_Disk, err error) { wd = &Wallet_Disk{filename: filename} - language, seed, err := mnemonics.Words_To_Key(electrum_seed) - if err != nil { - return + language, seed, err2 := mnemonics.Words_To_Key(electrum_seed) + if err2 != nil { + fmt.Printf("Could not convert phrase to a key: %s\n",err2); + return nil,err2 } - account,err2 := Generate_Account_From_Seed (crypto.GetBNRed(seed)) - if err2 != nil { - return + var account *Account + account,err = Generate_Account_From_Seed (crypto.GetBNRed(seed)) + if err != nil { + fmt.Printf("Could not create account: %s\n",err) + return nil,err } if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account); err != nil { + fmt.Printf("Could not create wallet:\n",err) return nil, err } wd.Wallet_Memory.account.SeedLanguage = language wd.Wallet_Memory.wallet_disk = wd + + //Save to disk + wd.Save_Wallet() + return } @@ -85,16 +100,23 @@ func Create_Encrypted_Wallet_From_Recovery_Words(filename string, password strin func Create_Encrypted_Wallet_Random(filename string, password string) (wd *Wallet_Disk, err error) { wd = &Wallet_Disk{filename: filename} - account,err2 := Generate_Account_From_Seed ( crypto.RandomScalarBNRed() ) - if err2 != nil { - return + var account *Account + account,err = Generate_Account_From_Seed ( crypto.RandomScalarBNRed() ) + if err != nil { + fmt.Printf("Could not generate random seed: %s\n", err) + return nil,err } - if wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account ); err == nil { - return wd, nil + wd.Wallet_Memory, err = Create_Encrypted_Wallet_Memory(password, account ) + if err != nil { + fmt.Printf("Could not create wallet\n") + return nil,err } wd.Wallet_Memory.wallet_disk = wd + + //Save to disk + wd.Save_Wallet() return nil, err } From cd1fdbc2bfd975401629895aad22c30caa9d304c Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sun, 12 Nov 2023 17:19:53 +0200 Subject: [PATCH 07/18] Initialise checksum value with 0x01 --- cmd/dero-wallet-cli/prompt.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/cmd/dero-wallet-cli/prompt.go b/cmd/dero-wallet-cli/prompt.go index 2d834997..a95eeeb1 100644 --- a/cmd/dero-wallet-cli/prompt.go +++ b/cmd/dero-wallet-cli/prompt.go @@ -1033,13 +1033,22 @@ func display_spend_key(l *readline.Instance, wallet *walletapi.Wallet_Disk) { if (IsOffline==true) { // Offline (signing) wallet fmt.Printf("\nView only key - Import the complete text into the online (view only) wallet to set it up:\n") + display_viewing_key(wallet) + } +} + +func display_viewing_key (wallet *walletapi.Wallet_Disk) { + var IsOffline = globals.Arguments["--offline"].(bool) + + if (IsOffline==true) || (wallet.ViewOnly() == false) { + keys := wallet.Get_Keys() sViewOnlyKey := fmt.Sprintf("viewkey,%s,%s,%x",wallet.GetAddress(), keys.Public.StringHex(), keys.Public.G1().Marshal()) - //Append a simple checksum to the string to detect copy/paste errors - //during import into the online wallet: - var iChecksum=0 - for t := range sViewOnlyKey { - iChecksum = iChecksum + (int)(sViewOnlyKey[t]) + //Append a simple checksum to the string to detect copy/paste errors + //during import into the online wallet: + var iChecksum=1 + for t := range sViewOnlyKey { + iChecksum = iChecksum + (int)(sViewOnlyKey[t]) } fmt.Printf("%s;%d\n\n",sViewOnlyKey, iChecksum) } From 24c8a6c7fe2d1a040bd3e3c2647c6b2a2d1b3917 Mon Sep 17 00:00:00 2001 From: Mullroy Date: Sun, 12 Nov 2023 17:21:36 +0200 Subject: [PATCH 08/18] Test if the wallet has a secret key. Apply wallet default save interval (300 seconds) if parameter isn't specified --- cmd/dero-wallet-cli/easymenu_pre_open.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/dero-wallet-cli/easymenu_pre_open.go b/cmd/dero-wallet-cli/easymenu_pre_open.go index 4fcf9362..87483865 100644 --- a/cmd/dero-wallet-cli/easymenu_pre_open.go +++ b/cmd/dero-wallet-cli/easymenu_pre_open.go @@ -226,8 +226,8 @@ func common_processing(wallet *walletapi.Wallet_Disk) { // For an offline (signing) wallet, we require the secret key: account := wallet.GetAccount() sSecret := fmt.Sprintf("%x", account.Keys.Secret.BigInt() ) - if ( len(sSecret)==1 ) { - fmt.Printf("Your wallet doesn't have a secret key. Did you specify a view-only wallet (%s)?\n", globals.Arguments["--wallet-file"]) + if ( len(sSecret)<=1 ) { + fmt.Printf("Your wallet doesn't have a secret key. Did you specify an online (view only) wallet (%s)?\n", globals.Arguments["--wallet-file"]) //Exit application globals.Exit_In_Progress = true return @@ -258,7 +258,11 @@ func common_processing(wallet *walletapi.Wallet_Disk) { wallet.SetSaveDuration(time.Duration(s) * time.Second) logger.Info("Wallet changes will be saved every", "duration (seconds)", wallet.SetSaveDuration(-1)) } + } else { + //Initialise save duration to the duration in the --help menu: 300 seconds + wallet.SetSaveDuration(300 * time.Second) } + wallet.SetNetwork(!globals.Arguments["--testnet"].(bool)) From 1d182a5a74d7adf85e962111047a2075de3260ed Mon Sep 17 00:00:00 2001 From: Mullroy Date: Tue, 14 Nov 2023 14:57:52 +0200 Subject: [PATCH 09/18] Update transaction file layout --- walletapi/wallet_transfer.go | 96 +++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/walletapi/wallet_transfer.go b/walletapi/wallet_transfer.go index 88aea2ab..3dc4abea 100644 --- a/walletapi/wallet_transfer.go +++ b/walletapi/wallet_transfer.go @@ -462,21 +462,22 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint //Parameter [0]: Project - Dero='dero' // [1]: Version - Layout of the command fields - // Version 1: [2] Array of transfers (outputs) - // [3] Array of ring balances - // [4] Array of rings - // [5] block_hash - // [6] height - // [7] Array of scdata - // [8] treehash - // [9] max_bits - // [10] gasstorage - // [11] Checksum of all the characters in the command. + // [2]: Command: sign_offline + // Version 1: [3] Array of transfers (outputs) + // [4] Array of ring balances + // [5] Array of rings + // [6] block_hash + // [7] height + // [8] Array of scdata + // [9] treehash + // [10] max_bits + // [11] gasstorage + // [12] Checksum of all the characters in the command. var sReturn string var sChecksumInput string - sReturn="sign_offline dero 1 "; - sChecksumInput="dero 1 "; + sReturn="dero 1 sign_offline "; + sChecksumInput="dero 1 sign_offline "; var counter=0 @@ -606,7 +607,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint iVal := int(sChecksumInput[t]) iChecksum = iChecksum + iVal; } - sTmp = fmt.Sprintf(" %d",iChecksum) + sTmp = fmt.Sprintf(";%d",iChecksum) sReturn=sReturn + sTmp //-------------------------------------------------------------------------------------- @@ -662,58 +663,65 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint } fmt.Printf("Read %d bytes from ./signed. ",len(baData)) - //Parameter [0]: header: signed - // [1]: Project - 'dero' - // [2]: Version - Layout of the command fields + tx=nil + //Parameter [0]: Project - 'dero' + // [1]: Version - Layout of the command fields + // [2]: Command: signed // Version 1: [3] Signed transaction // [4] Checksum of all the characters in the data stream sInput := string(baData[:]) - saParts := strings.Split(sInput," ") - if (len(saParts) != 5) { - err = fmt.Errorf("Invalid number of parts in the transaction. Found %d, expected 14\n", len(saParts)) + saParts := strings.Split(sInput,";") + + if (len(saParts) != 2) { + fmt.Printf("Invalid number of parts in the transaction. Expected 2, found %d\n", len(saParts)) + return + } + + sProtocolChecksum := saParts[1] + iCalculatedChecksum:=0x01; + for t := range saParts[0] { + iVal := int(saParts[0][t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + + if (sProtocolChecksum!=sCalculatedChecksum) { + fmt.Printf("The checksum of the request data is invalid. Protocol: '%s', Calculates: '%s'\n", sProtocolChecksum, sCalculatedChecksum) + return + } + + saFields := strings.Split(saParts[0]," ") + if (len(saFields) != 4) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 4, found %d\n", len(saFields)) return; } - - if (saParts[0] != "signed") { - err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") - return - } - if (saParts[1] != "dero") { - err = fmt.Errorf("Expected Dero communication, Found %s\n",saParts[1]); + if (saFields[0] != "dero") { + err = fmt.Errorf("Expected Dero communication, Found %s\n",saFields[1]); return; } - if (saParts[2] != "1") { - err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) + if (saFields[1] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saFields[2]) return } - sProtocolChecksum := saParts[4] - sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) - iCalculatedChecksum:=0x01; - for t := range sInput { - iVal := int(sInput[t]) - iCalculatedChecksum = iCalculatedChecksum + iVal; + if (saFields[2] != "signed") { + err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") + return } - sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) - - if (sProtocolChecksum!=sCalculatedChecksum) { - err = fmt.Errorf("The checksum of the signed transaction data is invalid.\n") - tx=nil - return - } - - + tx = new(transaction.Transaction) - baData,err = hex.DecodeString( saParts[3] ) + baData,err = hex.DecodeString( saFields[3] ) if err!= nil { err = fmt.Errorf("Could not decode the signed transaction.\n") + tx=nil return } err = tx.Deserialize(baData) if err!=nil { err = fmt.Errorf("Could not deserialise the signed transaction.\n") + tx=nil return } From 16dff00ae32d706d12d07145da7a6f7f66c10ad1 Mon Sep 17 00:00:00 2001 From: Mullroy Date: Tue, 14 Nov 2023 14:58:42 +0200 Subject: [PATCH 10/18] Update structure of online/offline file --- walletapi/daemon_communication.go | 81 ++++++++++++++++--------------- 1 file changed, 42 insertions(+), 39 deletions(-) diff --git a/walletapi/daemon_communication.go b/walletapi/daemon_communication.go index b16f4755..fbfefd53 100644 --- a/walletapi/daemon_communication.go +++ b/walletapi/daemon_communication.go @@ -392,17 +392,17 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) } } - //Parameter [0] action: 0=scalar mult, 1=shared secret - // [1] Project - 'dero' - // [2] Version - Layout of the command fields + //Parameter [0] Project - 'dero' + // [1] Version - Layout of the command fields + // [2] action: 0=scalar mult, 1=shared secret // Version 1: [3] data // [4] Checksum of all the characters in the data stream - sOutput := fmt.Sprintf("%s dero 1 %x",sType,baData) + sOutput := fmt.Sprintf("dero 1 %s %x",sType,baData) var iCalculatedChecksum=0x01 for t := range sOutput { iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) } - sOutput = fmt.Sprintf("%s %d",sOutput, iCalculatedChecksum) + sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) baOutput := []byte(sOutput) @@ -411,7 +411,7 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) err = fmt.Errorf("Error saving file. %s\n",err) return } - fmt.Printf("\nInteraction with offline wallet required. Saved request to: %s\nSearching for 60 seconds for the response at: %s\n",sFileRequest,sFileResponse) + fmt.Printf("\nInteraction with offline wallet required. Saved request to: %s\nWaiting 60 seconds for the response at: %s\n",sFileRequest,sFileResponse) bFound:=0 counter:=0 @@ -425,7 +425,7 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) } if (bFound==0) { - err = fmt.Errorf("Could not find the response file.\n"); + err = fmt.Errorf("Timeout: No result from the offline wallet.\n"); return; } @@ -440,39 +440,22 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) return } - //Parameter [0] header - scalar_mult_result or shared_secret_result - // [1] Project - 'dero' - // [2] Version - Layout of the command fields + //Parameter [0] Project - 'dero' + // [1] Version - Layout of the command fields + // [2] header - scalar_mult_result or shared_secret_result // Version 1: [3] scalar multiply result used to decode the balance // [4] Checksum of all the characters in the data stream sInput := string(baInput[:]) - saParts := strings.Split(sInput," ") - if (len(saParts) != 5) { - err = fmt.Errorf("Invalid number of parts in the transaction. Found %d, expected 14\n", len(saParts)) - return; - } - - sCompare := fmt.Sprintf("%s_result", sType) - if (saParts[0] != sCompare) { - err = fmt.Errorf("Requested operation: '%s'. Expected back result: '%s', found: %s\n",sType, sCompare, saParts[0]) - return - } - - if (saParts[1] != "dero") { - err = fmt.Errorf("Expected Dero communication, Found %s\n",saParts[1]); + saParts := strings.Split(sInput,";") + if (len(saParts) != 2) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 2, found %d\n", len(saParts)) //14 return; } - if (saParts[2] != "1") { - err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) - return - } - - sProtocolChecksum := saParts[4] - sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) + sProtocolChecksum := saParts[1] iCalculatedChecksum=0x01; - for t := range sInput { - iVal := int(sInput[t]) + for t := range saParts[0] { + iVal := int(saParts[0][t]) iCalculatedChecksum = iCalculatedChecksum + iVal; } sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) @@ -480,9 +463,33 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) if (sProtocolChecksum!=sCalculatedChecksum) { err = fmt.Errorf("The checksum of the signed transaction data is invalid.\n") return + } + + saFields := strings.Split(saParts[0]," ") + if (len(saFields) != 4) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 4, found %d\n", len(saFields)) + return; } - result,err = hex.DecodeString(saParts[3]) + + + if (saFields[0] != "dero") { + err = fmt.Errorf("Expected Dero communication, Found %s\n",saFields[1]); + return; + } + + if (saFields[1] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saFields[2]) + return + } + + sCompare := fmt.Sprintf("%s_result", sType) + if (saFields[2] != sCompare) { + err = fmt.Errorf("Requested operation: '%s'. Expected back result: '%s', found: %s\n",sType, sCompare, saFields[0]) + return + } + + result,err = hex.DecodeString(saFields[3]) if err!=nil { err = fmt.Errorf("Could not decode the result from the offline wallet\n"); } @@ -520,7 +527,7 @@ func (w *Wallet_Memory) DecodeEncryptedBalanceNow(el *crypto.ElGamal) uint64 { baData := el.Right.Marshal(); baResult,err := w.OfflineOperationWithSecretKey(0,baData) if err!=nil { - fmt.Printf("Could not retrieve the balance\n") + fmt.Printf("Could not retrieve the balance: %s\n",err) return 0 } ScalarMultResult.Unmarshal(baResult) @@ -1210,7 +1217,6 @@ func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err err var shared_key [32]byte if (w.ViewOnly()==true) { - //shared_key = crypto.GenerateSharedSecret(w.account.Keys.Secret.BigInt(), tx.Payloads[t].Statement.D) baData := tx.Payloads[t].Statement.D.Marshal() baResult,err := w.OfflineOperationWithSecretKey(1,baData) if err!=nil { @@ -1223,9 +1229,6 @@ func (w *Wallet_Memory) synchistory_block(scid crypto.Hash, topo int64) (err err for t := range baResult { shared_key[t] = baResult[t] } - - fmt.Printf("Reassembled.\nOrig: %x\nNew : %x\n", baResult, shared_key) - } else { shared_key = crypto.GenerateSharedSecret(w.account.Keys.Secret.BigInt(), tx.Payloads[t].Statement.D) } From 18c59f8e4f06340890bcdcf7b4a0b90bf641f85b Mon Sep 17 00:00:00 2001 From: Mullroy Date: Tue, 14 Nov 2023 15:06:03 +0200 Subject: [PATCH 11/18] Update file format beteen online/offline wallet data exchange --- cmd/dero-wallet-cli/easymenu_post_open.go | 72 ++++++++++---- cmd/dero-wallet-cli/main.go | 112 +++++++++++++--------- 2 files changed, 118 insertions(+), 66 deletions(-) diff --git a/cmd/dero-wallet-cli/easymenu_post_open.go b/cmd/dero-wallet-cli/easymenu_post_open.go index 34ba2027..83b3ca28 100644 --- a/cmd/dero-wallet-cli/easymenu_post_open.go +++ b/cmd/dero-wallet-cli/easymenu_post_open.go @@ -55,7 +55,7 @@ func display_easymenu_post_open_command(l *readline.Instance) { } if (bOffline==true) { io.WriteString(w, "Offline (signing) wallet:\n") - io.WriteString(w, " 1. Setup the online wallet with the exported public key\n") + io.WriteString(w, " 1. Exported public key to setup the online (view only) wallet\n") io.WriteString(w, " 2. Generate a registration transaction for the online wallet\n"); io.WriteString(w, " 3. Sign spend transactions for the online wallet\n"); } @@ -185,6 +185,11 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce //The view only online wallet received the registration transaction from the offline wallet. sRegistration := read_line_with_prompt(l, fmt.Sprintf("Enter the registration transaction (obtained from the offline (signing) wallet): ")) + if (len(sRegistration)==0) { + //No input provided + break; + } + //Strip off any newlines or extra spaces sTmp := strings.ReplaceAll(sRegistration,"\n","") sRegistration = strings.ReplaceAll(sTmp," ",""); @@ -436,9 +441,9 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce _ = os.Remove("./transaction") - //Parameter [0]: header: sign_offline - // [1]: Project - 'dero' - // [2]: Version - Layout of the command fields + //Parameter [0] Project - 'dero' + // [1] Version - Layout of the command fields + // [2] Command: sign_offline // Version 1: [3] Array of transfers (outputs) // [4] Array of ring balances // [5] Array of rings @@ -449,27 +454,57 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce // [10] max_bits // [11] gasstorage // [12] Checksum of all the characters in the command. - saParts := strings.Split(sTransaction," ") - if (len(saParts)!=13) { - fmt.Printf("Invalid number of parts in the transaction. Found %d, expected 13\n", len(saParts)) + + //Split string on ';' + saParts := strings.Split(sTransaction,";") + if (len(saParts) != 2) { + fmt.Fprintf(l.Stderr(), "Invalid number of parts. Expected 2, found %d\n\n", len(saParts)) + break; + } + + sTransaction = saParts[0] + sProtocolChecksum := saParts[1] + iProtocolChecksum,err := strconv.Atoi(sProtocolChecksum) + if err!=nil { + fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer\n\n") + break + } +/* + //Regenerate checksum: + var iCalculatedChecksum=0x01 + for t := range sTransaction { + iCalculatedChecksum = iCalculatedChecksum + (int)(sTransaction[t]) + } + + fmt.Printf("Checksum input\n'%s'\n\n",sTransaction); + // Check 1: Checksum + if (iProtocolChecksum != iCalculatedChecksum) { + fmt.Fprintf(l.Stderr(), "Checksum calculation failed. Please check if you've imported the transaction correctly. Protocol: %d, calculated: %d\n\n", iProtocolChecksum, iCalculatedChecksum) + break + } +*/ + saParts = strings.Split(sTransaction," ") + if (len(saParts)!=12) { + fmt.Printf("Invalid number of parts in the transaction. Expected 13, found %d\n", len(saParts)) break; } - if (saParts[0] != "sign_offline") { - fmt.Printf("Transaction doesn't start with 'sign_offline'\n") - break; - } - if (saParts[1] != "dero") { + if (saParts[0] != "dero") { fmt.Printf("Expected a Dero transaction, Found %s\n",saParts[1]); break; } - if (saParts[2] != "1") { + if (saParts[1] != "1") { fmt.Printf("Only transaction version 1 supported. Found %s\n",saParts[2]) break; } - sChecksumInput:="dero 1 "; + if (saParts[2] != "sign_offline") { + fmt.Printf("Transaction doesn't start with 'sign_offline'\n") + break; + } + + sChecksumInput:="dero 1 sign_offline "; //--------------------------------------------------------------------------------------------------------------------- var transfers []rpc.Transfer @@ -720,10 +755,6 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce gasstorage, err = strconv.ParseUint(saParts[11],10,64) sChecksumInput+=" "+saParts[11] - //[12] Checksum - var iProtocolChecksum int - iProtocolChecksum, err = strconv.Atoi(saParts[12]) - iCalculatedChecksum:=0x01; for t := range sChecksumInput { iVal := int(sChecksumInput[t]) @@ -731,6 +762,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce } if (iCalculatedChecksum != iProtocolChecksum) { + fmt.Printf("Checksum input\n'%s'\n\n",sChecksumInput) fmt.Printf("The checksum for the transaction data is invalid. Please provide the transaction again.\n\n") break } @@ -742,7 +774,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce } sTxSerialized := tx.Serialize() - sOutput := fmt.Sprintf("signed dero 1 %x",sTxSerialized) + sOutput := fmt.Sprintf("dero 1 signed %x",sTxSerialized) iCalculatedChecksum=0x01; for t := range sOutput { @@ -750,7 +782,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce iCalculatedChecksum = iCalculatedChecksum + iVal; } sChecksum := fmt.Sprintf("%d",iCalculatedChecksum) - sOutput+=" "+sChecksum + sOutput+=";"+sChecksum baData = []byte( sOutput ) err = os.WriteFile("./signed", baData, 0666) diff --git a/cmd/dero-wallet-cli/main.go b/cmd/dero-wallet-cli/main.go index 3fd222d6..fdf92210 100644 --- a/cmd/dero-wallet-cli/main.go +++ b/cmd/dero-wallet-cli/main.go @@ -68,14 +68,15 @@ Usage: --wallet-file= Use this file to restore or create new wallet --password= Use this password to unlock the wallet --offline Run the wallet in offline (signing) mode. An online (view only) wallet is required to create the transaction & sync to the network + --viewingkey Offline wallet: Print the viewing key and exit --prompt Disable menu and display prompt --testnet Run in testnet mode. --debug Debug mode enabled, print log messages --unlocked Keep wallet unlocked for cli commands (Does not confirm password before commands) - --generate-new-wallet Generate new (random) wallet + --generate-new-wallet Create a new wallet, using a randomly generated seed + --restore-viewonly-wallet Restore a view only wallet. The offline (signing) wallet contains the secret key & can export the view only key --restore-deterministic-wallet Restore wallet from previously saved recovery seed --electrum-seed= Seed to use while restoring wallet - --restore-viewonly-wallet Restore a view only wallet. The offline (signing) wallet contains the secret key & can export the view only key --socks-proxy= Use a proxy to connect to Daemon. --remote use hard coded remote daemon https://rwallet.dero.live --daemon-address= Use daemon instance at : or https://domain @@ -304,7 +305,7 @@ func main() { } //Regenerate checksum: - var iCalculatedChecksum=0 + var iCalculatedChecksum=1 for t := range sViewKey { iCalculatedChecksum = iCalculatedChecksum + (int)(sViewKey[t]) } @@ -347,7 +348,13 @@ func main() { return } - logger.Info("Successfully restored an online (view only) wallet\n") + fmt.Printf("Successfully restored an online (view only) wallet\n") + fmt.Printf(" Address: %s\n",sAddress) + fmt.Printf(" Public key: %s\n", wallet.Get_Keys().Public.StringHex()) + + //Exit application so the wallet save properly to disk + globals.Exit_In_Progress = true + } if globals.Arguments["--rpc-login"] != nil { @@ -397,6 +404,12 @@ func main() { common_processing(wallet) } go walletapi.Keep_Connectivity() // maintain connectivity + + bOffline := globals.Arguments["--viewingkey"].(bool) + if (bOffline==true) { + display_viewing_key(wallet) + return; + } //pipe_reader, pipe_writer = io.Pipe() // create pipes @@ -484,6 +497,9 @@ func update_prompt(l *readline.Instance) { address_trim = "DERO Wallet" } + + + for { time.Sleep(30 * time.Millisecond) // give user a smooth running number @@ -569,66 +585,72 @@ func update_prompt(l *readline.Instance) { baData, err := os.ReadFile(sFileRequest) if err!=nil { - err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileRequest); + fmt.Printf("Could not read from %s. Check the file permissions.\n",sFileRequest); continue; } _ = os.Remove(sFileRequest) if _, err = os.Stat(sFileRequest); err == nil { - err = fmt.Errorf("Could not delete %s\n",sFileRequest) + fmt.Printf("Could not delete %s\n",sFileRequest) continue; } - //Parameter [0]: header: scalar_mult - // [1]: Project - 'dero' - // [2]: Version - Layout of the command fields + //Parameter [0]: Project - 'dero' + // [1]: Version - Layout of the command fields + // [2]: Command scalar_mult // Version 1: [3] el.Right // [4] Checksum of all the characters in the data stream sInput := string(baData[:]) - saParts := strings.Split(sInput," ") - if (len(saParts) != 5) { - err = fmt.Errorf("Invalid number of parts in the transaction. Found %d, expected 5\n", len(saParts)) - continue; + sInput = strings.TrimSpace(sInput) + saParts := strings.Split(sInput,";") + if (len(saParts) != 2) { + fmt.Printf("Invalid number of parts in the transaction. Expected 2, found %d\n", len(saParts)) + continue } + + sProtocolChecksum := saParts[1] + iCalculatedChecksum:=0x01; + for t := range saParts[0] { + iVal := int(saParts[0][t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + + if (sProtocolChecksum!=sCalculatedChecksum) { + fmt.Printf("The checksum of the request data is invalid. Protocol: '%s', Calculates: '%s'\n", sProtocolChecksum, sCalculatedChecksum) + continue + } - if (saParts[0] != "scalar_mult") { - err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") + saFields := strings.Split(saParts[0]," ") + + if (len(saFields) != 4) { + fmt.Printf("Invalid number of parts in the transaction. Expected 4, found %d\n", len(saFields)) continue; } - - if (saParts[1] != "dero") { - err = fmt.Errorf("Expected a Dero transaction, Found %s\n",saParts[1]); + + if (saFields[0] != "dero") { + fmt.Printf("Expected a Dero transaction, Found %s\n",saFields[1]); continue; } - if (saParts[2] != "1") { - err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) + if (saFields[1] != "1") { + fmt.Printf("Only transaction version 1 supported. Found %s\n",saFields[2]) continue; } - sProtocolChecksum := saParts[4] - - sInput=fmt.Sprintf("%s %s %s %s",saParts[0], saParts[1], saParts[2], saParts[3]) - iCalculatedChecksum:=0x01; - for t := range sInput { - iVal := int(sInput[t]) - iCalculatedChecksum = iCalculatedChecksum + iVal; - } - sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) - - if (sProtocolChecksum!=sCalculatedChecksum) { - err = fmt.Errorf("The checksum of the request data is invalid.\n") - continue - } + if ((saFields[2] != "scalar_mult") && (saFields[2] != "shared_secret")) { + fmt.Printf("Transaction doesn't start with 'scalar_mult' or 'shared_secret'\n") + continue; + } - baData,err = hex.DecodeString(saParts[3]) + baData,err = hex.DecodeString(saFields[3]) if err!=nil { - err = fmt.Errorf("Could not hex decode the data portion\n"); + fmt.Printf("Could not hex decode the data portion\n"); continue; } keys := wallet.Get_Keys() - if (saParts[0]=="scalar_mult") { + if (saFields[2]=="scalar_mult") { var elRight *bn256.G1 elRight = new(bn256.G1) elRight.Unmarshal(baData) @@ -636,44 +658,42 @@ func update_prompt(l *readline.Instance) { scalarMultResult := new(bn256.G1).ScalarMult(elRight, keys.Secret.BigInt()) baData = scalarMultResult.Marshal() - sOutput := fmt.Sprintf("scalar_mult_result dero 1 %x",baData) + sOutput := fmt.Sprintf("dero 1 scalar_mult_result %x",baData) var iCalculatedChecksum=0x01 for t := range sOutput { iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) } - sOutput = fmt.Sprintf("%s %d",sOutput, iCalculatedChecksum) + sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) baData = []byte(sOutput) - } else if (saParts[1]=="shared_secret") { + } else if (saFields[2]=="shared_secret") { var peer_publickey *bn256.G1 peer_publickey = new(bn256.G1) peer_publickey.Unmarshal(baData) shared_key := crypto.GenerateSharedSecret(keys.Secret.BigInt(), peer_publickey) - sOutput := fmt.Sprintf("shared_secret_result dero 1 %x",shared_key) + sOutput := fmt.Sprintf("dero 1 shared_secret_result %x",shared_key) var iCalculatedChecksum=0x01 for t := range sOutput { iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) } - sOutput = fmt.Sprintf("%s %d",sOutput, iCalculatedChecksum) + sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) baData = []byte(sOutput) } else { - err = fmt.Errorf("Unknown type request. Only scalar_mult and shared_secret supported\n"); + fmt.Printf("Unknown type request. Only scalar_mult and shared_secret supported\n"); continue } err = os.WriteFile("./offline_response", baData, 0644) if err!=nil { - err = fmt.Errorf("Error saving file. %s\n",err) + fmt.Printf("Error saving file. %s\n",err) continue; } fmt.Printf("Saved result in ./offline_response\n") } } - } - } // create a new wallet from scratch from random numbers From 8719591712ad8b7d71346097db7a17b415fb5991 Mon Sep 17 00:00:00 2001 From: Mullroy Date: Tue, 14 Nov 2023 15:33:51 +0200 Subject: [PATCH 12/18] Add burn_value to total expenditure evaluation --- walletapi/transaction_build.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/walletapi/transaction_build.go b/walletapi/transaction_build.go index 1665ff74..fde64a5f 100644 --- a/walletapi/transaction_build.go +++ b/walletapi/transaction_build.go @@ -242,7 +242,7 @@ rebuild_tx: } //Evaluate available balance after processing the transfer[] entry: - if (balance < (transfers[t].Amount + fees_currentasset)) { + if (balance < (transfers[t].Amount + fees_currentasset + burn_value)) { fmt.Printf("Insufficient funds to process the transaction: Balance %d < Spend amount,fees,burn value: %d+%d+%d\n", balance, transfers[t].Amount, fees_currentasset,burn_value) return nil } From 65c9c8c756a687d7591b598b99d1d192def3e14e Mon Sep 17 00:00:00 2001 From: Mullroy Date: Thu, 14 Dec 2023 13:06:30 +0200 Subject: [PATCH 13/18] Updates during h/w wallet integration --- cmd/dero-wallet-cli/easymenu_post_open.go | 401 +---------- cmd/dero-wallet-cli/main.go | 842 +++++++++++++++++----- cmd/dero-wallet-cli/prompt.go | 32 +- walletapi/daemon_communication.go | 56 +- walletapi/transaction_build.go | 31 +- walletapi/wallet.go | 50 +- walletapi/wallet_disk.go | 2 +- walletapi/wallet_transfer.go | 97 +-- 8 files changed, 889 insertions(+), 622 deletions(-) diff --git a/cmd/dero-wallet-cli/easymenu_post_open.go b/cmd/dero-wallet-cli/easymenu_post_open.go index 83b3ca28..a9607ac6 100644 --- a/cmd/dero-wallet-cli/easymenu_post_open.go +++ b/cmd/dero-wallet-cli/easymenu_post_open.go @@ -30,7 +30,6 @@ import ( "encoding/hex" "github.com/chzyer/readline" - "github.com/deroproject/derohe/cryptography/bn256" "github.com/deroproject/derohe/cryptography/crypto" "github.com/deroproject/derohe/globals" "github.com/deroproject/derohe/rpc" @@ -203,22 +202,24 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce sTransaction := saParts[0] sProtocolChecksum := saParts[1] - iProtocolChecksum,err := strconv.Atoi(sProtocolChecksum) + iTmp,err := strconv.Atoi(sProtocolChecksum) if err!=nil { - fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer\n\n") + fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer: "+sProtocolChecksum+"\n") break } - + iProtocolChecksum:=uint16(iTmp); + //Regenerate checksum: - var iCalculatedChecksum=0 - for t := range sTransaction { - iCalculatedChecksum = iCalculatedChecksum + (int)(sTransaction[t]) - } - - // Check 1: Checksum - if (iProtocolChecksum != iCalculatedChecksum) { - fmt.Fprintf(l.Stderr(), "Checksum calculation failed. Please check if you've imported the transaction correctly\n\n"); - break + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x01 + for t := range sTransaction { + iCalculatedChecksum = iCalculatedChecksum + (uint16)(sTransaction[t]) + } + + // Check 1: Checksum + if (iProtocolChecksum != iCalculatedChecksum) { + fmt.Fprintf(l.Stderr(), "Checksum calculation failed. Protocol=%d, Calculated=%d. Please check if you've imported the transaction correctly\n\n", iProtocolChecksum, iCalculatedChecksum); + break } saParts = strings.Split(sTransaction,",") @@ -336,7 +337,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce //Append a simple checksum to the string to detect copy/paste errors //during import into the online wallet: - var iChecksum=0 + var iChecksum=0x01 for t := range sTransaction { iChecksum = iChecksum + (int)(sTransaction[t]) } @@ -428,369 +429,37 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce break } - _ = os.Remove("./signed") + remote_request_prefix="." + if globals.Arguments["--prefix"] != nil { + remote_request_prefix = globals.Arguments["--prefix"].(string) // override with user specified settings + } + + sFileIn:=remote_request_prefix+"/transaction" + sFileOut:=remote_request_prefix+"/offline_response" + _ = os.Remove(sFileOut) - baData, err := os.ReadFile("./transaction") + baData, err := os.ReadFile(sFileIn) if err!=nil { - fmt.Printf("Cant read from the transaction file: ./transaction\n\n"); + fmt.Printf("Can't read from the transaction file: %s\n",sFileIn); break; } - fmt.Printf("Read %d bytes from ./transaction\n",len(baData)) + fmt.Printf("Read %d bytes from %s\n",len(baData),sFileIn) sTransaction := string(baData[:]) - _ = os.Remove("./transaction") + _ = os.Remove(sFileIn) - - //Parameter [0] Project - 'dero' - // [1] Version - Layout of the command fields - // [2] Command: sign_offline - // Version 1: [3] Array of transfers (outputs) - // [4] Array of ring balances - // [5] Array of rings - // [6] block_hash - // [7] height - // [8] Array of scdata - // [9] treehash - // [10] max_bits - // [11] gasstorage - // [12] Checksum of all the characters in the command. - - //Split string on ';' - saParts := strings.Split(sTransaction,";") - if (len(saParts) != 2) { - fmt.Fprintf(l.Stderr(), "Invalid number of parts. Expected 2, found %d\n\n", len(saParts)) - break; - } - - sTransaction = saParts[0] - sProtocolChecksum := saParts[1] - iProtocolChecksum,err := strconv.Atoi(sProtocolChecksum) - if err!=nil { - fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer\n\n") - break - } -/* - //Regenerate checksum: - var iCalculatedChecksum=0x01 - for t := range sTransaction { - iCalculatedChecksum = iCalculatedChecksum + (int)(sTransaction[t]) - } - - fmt.Printf("Checksum input\n'%s'\n\n",sTransaction); - // Check 1: Checksum - if (iProtocolChecksum != iCalculatedChecksum) { - fmt.Fprintf(l.Stderr(), "Checksum calculation failed. Please check if you've imported the transaction correctly. Protocol: %d, calculated: %d\n\n", iProtocolChecksum, iCalculatedChecksum) - break - } -*/ - saParts = strings.Split(sTransaction," ") - if (len(saParts)!=12) { - fmt.Printf("Invalid number of parts in the transaction. Expected 13, found %d\n", len(saParts)) - break; - } - - if (saParts[0] != "dero") { - fmt.Printf("Expected a Dero transaction, Found %s\n",saParts[1]); - break; - } - - if (saParts[1] != "1") { - fmt.Printf("Only transaction version 1 supported. Found %s\n",saParts[2]) - break; - } - - if (saParts[2] != "sign_offline") { - fmt.Printf("Transaction doesn't start with 'sign_offline'\n") + baData,err=sign_remote_transaction(sTransaction); + if err!=nil { + fmt.Printf("Error signing transaction: %s\n",err) break; } - sChecksumInput:="dero 1 sign_offline "; - //--------------------------------------------------------------------------------------------------------------------- - var transfers []rpc.Transfer - - sTmp := strings.ReplaceAll(saParts[3],"'","") - sTmp1:= strings.ReplaceAll(sTmp, "[","") - sTmp = strings.ReplaceAll(sTmp1,"]","") - - saTransfers := strings.SplitAfter(sTmp, "}") - //fmt.Printf("transfers:%d\n",len(saTransfers)-1); - sChecksumInput+="transfers:"; - for t:=range saTransfers { - if len(saTransfers[t])>0 { - var transfer rpc.Transfer - - sTmp1 = strings.ReplaceAll(saTransfers[t], ",{","") - sTmp = strings.ReplaceAll(sTmp1, "{","") - sTransfer := strings.ReplaceAll(sTmp,"}","") - - saParts := strings.Split(sTransfer,",") - if (len(saParts)!=5) { - fmt.Printf("Parse error. Invalid number of parts in transfers. Expected 5, found %d\n", len(saParts)); - break; - } - - sTmp:=strings.ReplaceAll(saParts[0],"\"","") - saItemValue:=strings.Split(sTmp,":") - if (saItemValue[0]!="SCID") { - fmt.Printf("Parse error. Could not find SCID in transfers\n"); - break; - } - err = transfer.SCID.UnmarshalText([]byte(string(saItemValue[1]))) - if err != nil { - fmt.Printf("Parse error. Could not assign SCID to transfers\n"); - break; - } - sChecksumInput+=" \""+saItemValue[1]+"\"" - - - sTmp=strings.ReplaceAll(saParts[1],"\"","") - saItemValue=strings.Split(sTmp,":") - if (saItemValue[0]!="Destination") { - fmt.Printf("Parse error. Could not find destination in transfers\n"); - break; - } - transfer.Destination = saItemValue[1] - sChecksumInput+=" \""+saItemValue[1]+"\"" - - sTmp=strings.ReplaceAll(saParts[2],"\"","") - saItemValue=strings.Split(sTmp,":") - if (saItemValue[0]!="Amount") { - fmt.Printf("Parse error. Could not find amount in transfers\n"); - break; - } - transfer.Amount, err = strconv.ParseUint(saItemValue[1],10,64) - sChecksumInput+=" "+saItemValue[1] - - sTmp=strings.ReplaceAll(saParts[3],"\"","") - saItemValue=strings.Split(sTmp,":") - if (saItemValue[0]!="Burn") { - fmt.Printf("Parse error. Could not find burn in transfers\n"); - break; - } - transfer.Burn, err = strconv.ParseUint(saItemValue[1],10,64) - sChecksumInput+=" "+saItemValue[1] - - sTmp=strings.ReplaceAll(saParts[4],"\"","") - saItemValue=strings.Split(sTmp,":") - if (saItemValue[0]!="RPC") { - fmt.Printf("Parse error. Could not find rpc in transfers\n"); - break; - } - hexRPC, err2 := hex.DecodeString(saItemValue[1]) - if err2 != nil { - fmt.Printf("Parse error. Could not hex decode the rpc field of the transfers\n"); - break; - } - err2 = transfer.Payload_RPC.UnmarshalBinary(hexRPC) - if err2 != nil { - fmt.Printf("Parse error. Could not assign the rpc field of the transfers\n"); - break; - } - sChecksumInput+=" \""+saItemValue[1]+"\"" - - transfers = append(transfers, transfer) - } - } - - //--------------------------------------------------------------------------------------------------------------------- - var rings_balances [][][]byte //initialize all maps - - sTmp = strings.ReplaceAll(saParts[4],"'","") - sTmp1 = strings.ReplaceAll(sTmp, "[","") - sTmp = strings.ReplaceAll(sTmp1,"]","") - - saRingBalances := strings.SplitAfter(sTmp, "}") - //fmt.Printf(":%d\n",len(saRingBalances)-1); - - sChecksumInput+=" rings_balances:" - for t:=range saRingBalances { - if len(saRingBalances[t])>0 { - var ring_balances [][]byte - - sTmp1 = strings.ReplaceAll(saRingBalances[t], ",{","") - sTmp = strings.ReplaceAll(sTmp1, "{","") - sRingBalance := strings.ReplaceAll(sTmp,"}","") - - saRingBalances:=strings.Split(sRingBalance,",") - if ( len(saRingBalances)<16) { - fmt.Printf("Expected at least 16 ring balances. Found %d\n", len(saRingBalances)) - break; - } - - for t := range saRingBalances { - baData,_ := hex.DecodeString( saRingBalances[t] ) - ring_balances = append(ring_balances,baData) - - sChecksumInput+=" "+saRingBalances[t] - } - rings_balances = append(rings_balances, ring_balances) - } - } - /* - fmt.Printf("rings_balances:{%d} entries\n",len(rings_balances)) - var counter1=0 - var counter2=0 - for t := range rings_balances { - fmt.Printf("rings_balances{%d}:{%d} entries\n",counter1,len(rings_balances[t])) - counter2=0 - for u := range rings_balances[t] { - fmt.Printf(" ring balance[%d]=\"%x\"\n",counter2,rings_balances[t][u]) - counter2++ - } - counter1++ - } - */ - //--------------------------------------------------------------------------------------------------------------------- - var rings [][]*bn256.G1 - sChecksumInput+=" rings:"; - - sTmp = strings.ReplaceAll(saParts[5],"'","") - sTmp1 = strings.ReplaceAll(sTmp, "[","") - sTmp = strings.ReplaceAll(sTmp1,"]","") - - saRings := strings.SplitAfter(sTmp, "}") - //fmt.Printf("Rings:%d\n",len(saRings)-1); - - for t:=range saRings { - if len(saRings[t])>0 { - var ring []*bn256.G1 - var oG1 *bn256.G1 - - sTmp1 = strings.ReplaceAll(saRings[t], ",{","") - sTmp = strings.ReplaceAll(sTmp1, "{","") - sRing := strings.ReplaceAll(sTmp,"}","") - - saRing:=strings.Split(sRing,",") - //fmt.Printf("saRing=%d\n",len(saRing)) - if ( len(saRing)<16) { - fmt.Printf("Expected at least 16 rings. Found %d\n\n", len(saRing)) - break - } - - for t := range saRing { - //fmt.Printf("Processing: '%s'\n", saRing[t]) - baData,err := hex.DecodeString( saRing[t] ) - if err!=nil { - fmt.Printf("Could not decode ring entry: %s\n\n", saRing[t]) - break - } - oG1 = new(bn256.G1); - _,err = oG1.Unmarshal(baData); - if err != nil { - fmt.Printf("Could not assign ring data\n\n"); - break - }; - ring = append(ring,oG1) - - sChecksumInput+=" "+saRing[t] - } - rings = append(rings, ring) - } - } - /* - fmt.Printf("rings:{%d} entries\n",len(rings)) - counter1=0 - counter2=0 - for t := range rings { - fmt.Printf("ring{%d}:{%d} entries\n",counter1,len(rings[t])) - counter2=0 - for u := range rings[t] { - fmt.Printf(" ring[%d]=\"%x\"\n",counter2,rings[t][u].Marshal() ) - counter2++ - } - counter1++ - } - */ - //--------------------------------------------------------------------------------------------------------------------- - //[6] block_hash - sTmp = strings.ReplaceAll(saParts[6],"\"","") - block_hash := crypto.HashHexToHash(sTmp) - sChecksumInput+=" "+saParts[6] - - //[7] height - var height uint64 - height, err = strconv.ParseUint(saParts[7],10,64) + err = os.WriteFile(sFileOut, baData, 0644) if err!=nil { - fmt.Printf("Parse error. Could not assign height to transfers\n\n"); - } - sChecksumInput+=" "+saParts[7] - - //[8] Array of scdata - var scdata rpc.Arguments - sTmp = strings.ReplaceAll(saParts[8],"'","") - sTmp1 = strings.ReplaceAll(sTmp, "[","") - sTmp = strings.ReplaceAll(sTmp1,"]","") - if (len(sTmp) > 0) { - hexSCData, err2 := hex.DecodeString(sTmp) - if err2!=nil { - fmt.Printf("Parse error. Could not decode the SCData\n\n"); - break; - } - if (len(hexSCData)>0) { - err = scdata.UnmarshalBinary(hexSCData) - if err!=nil { - fmt.Printf("Parse error. Could not decode the SCData\n\n"); - break; - } - } - } - sChecksumInput+=" "+saParts[8] - - //[9] treehash - sTmp = strings.ReplaceAll(saParts[9],"\"","") - treehash_raw, err := hex.DecodeString(sTmp) - if err != nil { - fmt.Printf("Parse error. Could not decode treehash_raw\n\n") + err = fmt.Errorf("Error saving to %s: %s\n",sFileOut,err) break; } - sChecksumInput+=" "+saParts[9] - - //[10] max_bits - var max_bits int - max_bits, err = strconv.Atoi(saParts[10]) - sChecksumInput+=" "+saParts[10] - - //[11] gasstorage - var gasstorage uint64 - gasstorage, err = strconv.ParseUint(saParts[11],10,64) - sChecksumInput+=" "+saParts[11] - - iCalculatedChecksum:=0x01; - for t := range sChecksumInput { - iVal := int(sChecksumInput[t]) - iCalculatedChecksum = iCalculatedChecksum + iVal; - } - - if (iCalculatedChecksum != iProtocolChecksum) { - fmt.Printf("Checksum input\n'%s'\n\n",sChecksumInput) - fmt.Printf("The checksum for the transaction data is invalid. Please provide the transaction again.\n\n") - break - } - - tx := wallet.BuildTransaction(transfers, rings_balances, rings, block_hash, height, scdata, treehash_raw, max_bits, gasstorage) - if tx == nil { - fmt.Printf("somehow the tx could not be built, please retry\n\n") - break - } - - sTxSerialized := tx.Serialize() - sOutput := fmt.Sprintf("dero 1 signed %x",sTxSerialized) - - iCalculatedChecksum=0x01; - for t := range sOutput { - iVal := int(sOutput[t]) - iCalculatedChecksum = iCalculatedChecksum + iVal; - } - sChecksum := fmt.Sprintf("%d",iCalculatedChecksum) - sOutput+=";"+sChecksum - - baData = []byte( sOutput ) - err = os.WriteFile("./signed", baData, 0666) - if err!=nil { - fmt.Printf("Error saving file to ./signed: %s\n",err) - break - } - fmt.Printf("Saved signed transaction to ./signed. Return it to the online (view only) wallet to complete the transaction.\n\n") + fmt.Printf("Saved result in %s\n",sFileOut) break; } @@ -819,6 +488,7 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce // { rpc.RPC_EXPIRY , rpc.DataTime, time.Now().Add(time.Hour).UTC()}, // { rpc.RPC_COMMENT , rpc.DataString, "Purchase XYZ"}, } + if a.IsIntegratedAddress() { // read everything from the address if a.Arguments.Validate_Arguments() != nil { @@ -947,7 +617,8 @@ func handle_easymenu_post_open_command(l *readline.Instance, line string) (proce //src_port := uint64(0xffffffffffffffff) - tx, err := wallet.TransferPayload0([]rpc.Transfer{{Amount: amount_to_transfer, Destination: a.String(), Payload_RPC: arguments}}, 0, false, rpc.Arguments{}, 0, false) // empty SCDATA + tx, err := wallet.TransferPayload0([]rpc.Transfer{{Amount: amount_to_transfer, Destination: a.String(), Payload_RPC: arguments}}, + 0, false, rpc.Arguments{}, 0, false) // empty SCDATA if err != nil { logger.Error(err, "Error while building Transaction") diff --git a/cmd/dero-wallet-cli/main.go b/cmd/dero-wallet-cli/main.go index fdf92210..49971eae 100644 --- a/cmd/dero-wallet-cli/main.go +++ b/cmd/dero-wallet-cli/main.go @@ -28,32 +28,20 @@ import "strconv" import "runtime" import "encoding/hex" import "sync/atomic" - -//import "io/ioutil" -//import "bufio" -//import "bytes" -//import "net/http" +import "github.com/deroproject/derohe/transaction" import "github.com/go-logr/logr" - import "github.com/chzyer/readline" import "github.com/docopt/docopt-go" -//import "github.com/vmihailenco/msgpack" - -//import "github.com/deroproject/derosuite/address" - import "github.com/deroproject/derohe/config" - -//import "github.com/deroproject/derohe/crypto" import "github.com/deroproject/derohe/cryptography/bn256" import "github.com/deroproject/derohe/cryptography/crypto" import "github.com/deroproject/derohe/globals" +import "github.com/deroproject/derohe/rpc" import "github.com/deroproject/derohe/walletapi" import "github.com/deroproject/derohe/walletapi/mnemonics" -//import "encoding/json" - var command_line string = `dero-wallet-cli DERO : A secure, private blockchain with smart-contracts @@ -65,31 +53,36 @@ Usage: Options: -h --help Show this screen. --version Show version. - --wallet-file= Use this file to restore or create new wallet + --wallet-file= Use this file to restore or create new wallet --password= Use this password to unlock the wallet --offline Run the wallet in offline (signing) mode. An online (view only) wallet is required to create the transaction & sync to the network - --viewingkey Offline wallet: Print the viewing key and exit + Full wallet & offline wallet: + --viewingkey Print the viewing key and exit + --regtx Generate the registration transaction with required POW and exit + --remotetx Process a balance or transaction sign request from a view only wallet and exit + --prefix=<.> The path to search for the remotetx requests. --prompt Disable menu and display prompt - --testnet Run in testnet mode. + --testnet Run in testnet mode. --debug Debug mode enabled, print log messages --unlocked Keep wallet unlocked for cli commands (Does not confirm password before commands) - --generate-new-wallet Create a new wallet, using a randomly generated seed - --restore-viewonly-wallet Restore a view only wallet. The offline (signing) wallet contains the secret key & can export the view only key - --restore-deterministic-wallet Restore wallet from previously saved recovery seed - --electrum-seed= Seed to use while restoring wallet - --socks-proxy= Use a proxy to connect to Daemon. + --generate-new-wallet Create a new wallet, using a randomly generated seed + --restore-viewonly-wallet Restore a view only wallet. The offline (signing) wallet contains the secret key & can export the view only key + --restore-deterministic-wallet Restore wallet from previously saved recovery seed + --electrum-seed= Seed to use while restoring wallet + --socks-proxy= Use a proxy to connect to Daemon. --remote use hard coded remote daemon https://rwallet.dero.live - --daemon-address= Use daemon instance at : or https://domain - --rpc-server Run rpc server, so wallet is accessible using api - --rpc-bind=<127.0.0.1:20209> Wallet binds on this ip address and port + --daemon-address= Use daemon instance at : or https://domain + --rpc-server Run rpc server, so wallet is accessible using api + --rpc-bind=<127.0.0.1:20209> Wallet binds on this ip address and port --rpc-login= RPC server will grant access based on these credentials - --allow-rpc-password-change RPC server will change password if you send "Pass" header with new password - --scan-top-n-blocks=<100000> Only scan top N blocks - --save-every-x-seconds=<300> Save wallet every x seconds + --allow-rpc-password-change RPC server will change password if you send "Pass" header with new password + --scan-top-n-blocks=<100000> Only scan top N blocks + --save-every-x-seconds=<300> Save wallet every x seconds ` var menu_mode bool = true // default display menu mode // var account_valid bool = false // if an account has been opened, do not allow to create new account in this session var offline_mode bool // whether we are in offline mode +var remote_request_prefix string var sync_in_progress int // whether sync is in progress with daemon var wallet *walletapi.Wallet_Disk //= &walletapi.Account{} // all account data is available here // var address string @@ -180,6 +173,8 @@ func main() { menu_mode = false } + offline_mode = globals.Arguments["--offline"].(bool) + wallet_file := "wallet.db" //dero.wallet" if globals.Arguments["--wallet-file"] != nil { wallet_file = globals.Arguments["--wallet-file"].(string) // override with user specified settings @@ -226,8 +221,13 @@ func main() { return } - logger.V(1).Info("Seed Language", "language", account.SeedLanguage) - logger.Info("Successfully recovered wallet from seed") + if (offline_mode==false) { + logger.V(1).Info("Seed Language", "language", account.SeedLanguage) + logger.Info("Successfully recovered wallet from seed") + } else { + fmt.Printf("Successfully recovered wallet from seed. Your address: %s\n", wallet.GetAddress() ) + globals.Exit_In_Progress=true + } } else if globals.Arguments["--generate-new-wallet"] != nil && globals.Arguments["--generate-new-wallet"].(bool) { // generare new random account var filename string @@ -259,6 +259,10 @@ func main() { wallet = nil return } + if wallet==nil { + logger.Error(err, "Internal error: Could not initialise the wallet.") + return + } logger.V(1).Info("Seed Language", "language", account.SeedLanguage) display_seed(l, wallet) } else if globals.Arguments["--restore-viewonly-wallet"]!=nil && globals.Arguments["--restore-viewonly-wallet"].(bool) { @@ -298,16 +302,18 @@ func main() { sViewKey := saParts[0] sProtocolChecksum := saParts[1] - iProtocolChecksum,err := strconv.Atoi(sProtocolChecksum) + iTmp,err := strconv.Atoi(sProtocolChecksum) if err!=nil { - fmt.Fprintf(l.Stderr(), "Could not convert the checksum back to an integer\n") + fmt.Fprintf(l.Stderr(),"Could not convert the checksum back to an integer: "+sProtocolChecksum+"\n") return - } - + } + iProtocolChecksum:=uint16(iTmp) + //Regenerate checksum: - var iCalculatedChecksum=1 + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x1 for t := range sViewKey { - iCalculatedChecksum = iCalculatedChecksum + (int)(sViewKey[t]) + iCalculatedChecksum = iCalculatedChecksum + (uint16)(sViewKey[t]) } // Check 1: Checksum @@ -351,10 +357,6 @@ func main() { fmt.Printf("Successfully restored an online (view only) wallet\n") fmt.Printf(" Address: %s\n",sAddress) fmt.Printf(" Public key: %s\n", wallet.Get_Keys().Public.StringHex()) - - //Exit application so the wallet save properly to disk - globals.Exit_In_Progress = true - } if globals.Arguments["--rpc-login"] != nil { @@ -392,25 +394,97 @@ func main() { } } } - //globals.Logger.Debugf("Seed Language %s", account.SeedLanguage) //globals.Logger.Infof("Successfully recovered wallet from seed") - } } - // check if offline mode requested - if wallet != nil { - common_processing(wallet) + if wallet == nil { + logger.Error(err, "Error occurred while opening wallet.") + return } + common_processing(wallet) + go walletapi.Keep_Connectivity() // maintain connectivity - bOffline := globals.Arguments["--viewingkey"].(bool) - if (bOffline==true) { - display_viewing_key(wallet) - return; - } + bResult := globals.Arguments["--viewingkey"].(bool) + if (bResult==true) { + display_viewing_key(wallet) + return; + } + bResult = globals.Arguments["--regtx"].(bool) + if (bResult==true) { + if (wallet.ViewOnly() == true) { + fmt.Fprintf(l.Stderr(), "A view only wallet cannot generate the registration transaction\n"); + return; + } + fmt.Fprintf(l.Stderr(), "Generating registration transaction for wallet address : "+color_green+"%s"+color_white+"\n", wallet.GetAddress()) + + successful_regs := make(chan *transaction.Transaction) + counter := 0 + counter2 := 0 + var reg_tx *transaction.Transaction + for i := 0; i < runtime.GOMAXPROCS(0); i++ { + go func() { + for counter == 0 { + lreg_tx := wallet.GetRegistrationTX() + hash := lreg_tx.GetHash() + + if hash[0] == 0 && hash[1] == 0 && hash[2] == 0 { + fmt.Printf("Found transaction:\n"); + successful_regs <- lreg_tx + counter++ + break + } else { + counter2++ + if ((counter2 % 10000) == 0) { + //Match usually found round about 2 million mark + fmt.Printf("Searched %d hashes\n",counter2) + } + } + } + }() + } + + reg_tx = <-successful_regs + + // Offline wallet: print the prepared transaction, to be used in the online wallet + fmt.Printf("Found the registration transaction. Import the complete text into the online (view only) wallet:\n"); + sTransaction := fmt.Sprintf("registration,%s,%x,%s",wallet.GetAddress().String(), reg_tx.Serialize(), reg_tx.GetHash()) + + //Append a simple checksum to the string to detect copy/paste errors + //during import into the online wallet: + var iChecksum=1 + for t := range sTransaction { + iChecksum = iChecksum + (int)(sTransaction[t]) + } + + fmt.Printf("%s;%d\n\n",sTransaction, iChecksum) + return + } + + //Any remote request to decrypt/sign? + // The 'remote_request' file must already be present on the filesystem + remote_request_prefix="." + if globals.Arguments["--prefix"] != nil { + remote_request_prefix = globals.Arguments["--prefix"].(string) // override with user specified settings + } + + bResult = globals.Arguments["--remotetx"].(bool) + if (bResult==true) { + if (wallet.ViewOnly() == true) { + fmt.Fprintf(l.Stderr(), "A view only wallet cannot process remote transactions\n"); + return; + } + + err = process_remote_requests(true,remote_request_prefix) + if err!=nil { + fmt.Printf("\n\nRemote request error: %s\n",err) + } + return + } + //pipe_reader, pipe_writer = io.Pipe() // create pipes // reader ready to parse any data from the file @@ -576,122 +650,11 @@ func update_prompt(l *readline.Instance) { prompt_mutex.Unlock() //test for an incomming request to interact with the secret key - //The online (view only) wallet uses this to reconstruct the account balance & transaction history - bOffline := globals.Arguments["--offline"].(bool) - if (bOffline==true) { - sFileRequest:="./offline_request" - if _, err := os.Stat(sFileRequest); err == nil { - fmt.Printf("\nFound ./offline_request -- new decryption request\n") - - baData, err := os.ReadFile(sFileRequest) - if err!=nil { - fmt.Printf("Could not read from %s. Check the file permissions.\n",sFileRequest); - continue; - } - - _ = os.Remove(sFileRequest) - if _, err = os.Stat(sFileRequest); err == nil { - fmt.Printf("Could not delete %s\n",sFileRequest) - continue; - } - - //Parameter [0]: Project - 'dero' - // [1]: Version - Layout of the command fields - // [2]: Command scalar_mult - // Version 1: [3] el.Right - // [4] Checksum of all the characters in the data stream - sInput := string(baData[:]) - sInput = strings.TrimSpace(sInput) - saParts := strings.Split(sInput,";") - if (len(saParts) != 2) { - fmt.Printf("Invalid number of parts in the transaction. Expected 2, found %d\n", len(saParts)) - continue - } - - sProtocolChecksum := saParts[1] - iCalculatedChecksum:=0x01; - for t := range saParts[0] { - iVal := int(saParts[0][t]) - iCalculatedChecksum = iCalculatedChecksum + iVal; - } - sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) - - if (sProtocolChecksum!=sCalculatedChecksum) { - fmt.Printf("The checksum of the request data is invalid. Protocol: '%s', Calculates: '%s'\n", sProtocolChecksum, sCalculatedChecksum) - continue - } - - saFields := strings.Split(saParts[0]," ") - - if (len(saFields) != 4) { - fmt.Printf("Invalid number of parts in the transaction. Expected 4, found %d\n", len(saFields)) - continue; - } - - if (saFields[0] != "dero") { - fmt.Printf("Expected a Dero transaction, Found %s\n",saFields[1]); - continue; - } - - if (saFields[1] != "1") { - fmt.Printf("Only transaction version 1 supported. Found %s\n",saFields[2]) - continue; - } - - if ((saFields[2] != "scalar_mult") && (saFields[2] != "shared_secret")) { - fmt.Printf("Transaction doesn't start with 'scalar_mult' or 'shared_secret'\n") - continue; - } - - baData,err = hex.DecodeString(saFields[3]) - if err!=nil { - fmt.Printf("Could not hex decode the data portion\n"); - continue; - } - - keys := wallet.Get_Keys() - if (saFields[2]=="scalar_mult") { - var elRight *bn256.G1 - elRight = new(bn256.G1) - elRight.Unmarshal(baData) - - scalarMultResult := new(bn256.G1).ScalarMult(elRight, keys.Secret.BigInt()) - baData = scalarMultResult.Marshal() - - sOutput := fmt.Sprintf("dero 1 scalar_mult_result %x",baData) - var iCalculatedChecksum=0x01 - for t := range sOutput { - iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) - } - sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) - baData = []byte(sOutput) - } else if (saFields[2]=="shared_secret") { - var peer_publickey *bn256.G1 - peer_publickey = new(bn256.G1) - peer_publickey.Unmarshal(baData) - - shared_key := crypto.GenerateSharedSecret(keys.Secret.BigInt(), peer_publickey) - - sOutput := fmt.Sprintf("dero 1 shared_secret_result %x",shared_key) - var iCalculatedChecksum=0x01 - for t := range sOutput { - iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) - } - sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) - baData = []byte(sOutput) - - } else { - fmt.Printf("Unknown type request. Only scalar_mult and shared_secret supported\n"); - continue - } - - err = os.WriteFile("./offline_response", baData, 0644) - if err!=nil { - fmt.Printf("Error saving file. %s\n",err) - continue; - } - fmt.Printf("Saved result in ./offline_response\n") - } + //The online (view only) wallet uses this to reconstruct the account balance & transaction history + var err error; + err=process_remote_requests(false,remote_request_prefix) + if err!=nil { + fmt.Printf("Remote request error: %s\n",err) } } } @@ -857,3 +820,550 @@ func filterInput(r rune) (rune, bool) { } return r, true } + +//Look for a request file (./offline_request) from the online wallet. The wallet with +//the secret key (full wallet or offline wallet) can process the request. +//The online (view only) wallet uses the response to reconstruct the account balance, +//transaction history and to broadcast signed transactions +//Input: bSignTransactions - If starting app with --remotetx then balance requests and +// transaction sign requests will be processed. +// - If running interactively (without --remotetx) then only +// balance requests will be processed automatically. The user +// has to choose explicitly from the menu to sign a transaction +func process_remote_requests(bSignTransactions bool,sPrefix string) (err error) { + if (wallet.ViewOnly() == false) { + sFileRequest:=sPrefix+"/offline_request" + + if _, err := os.Stat(sFileRequest); err != nil { + return nil + } + + fmt.Printf("Found %s/offline_request -- new decryption request\n",sPrefix) + + baData, err := os.ReadFile(sFileRequest) + if err!=nil { + err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileRequest); + return err + } + + _ = os.Remove(sFileRequest) + if _, err = os.Stat(sFileRequest); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileRequest) + return err + } + + //Parameter [0]: Project - 'dero' + // [1]: Version - Layout of the command fields + // [2]: header: scalar_mult, shared_secret, sign_offline + // Version 1: + // scalar_mult & shared_secret: + // [3] el.Right + // sign_offline + // [3]..[11] + // ; Checksum of all the characters in the data stream + sInput := string(baData[:]) + sInput = strings.TrimSpace(sInput) + saParts := strings.Split(sInput,";") + if (len(saParts) != 2) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 2, found %d\n", len(saParts)) + return err + } + + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x01; + for t := range saParts[0] { + iVal := uint16(saParts[0][t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + + sProtocolChecksum := saParts[1] + iTmp,err := strconv.Atoi(sProtocolChecksum) + if err!=nil { + err = fmt.Errorf("Could not convert the checksum back to an integer: "+saParts[1]+" ; "+sProtocolChecksum+"\n") + return err + } + iProtocolChecksum:=uint16(iTmp) + + + if (iProtocolChecksum!=iCalculatedChecksum) { + err = fmt.Errorf("The checksum of the request data is invalid. Protocol: %u, Calculates: %u\n", iProtocolChecksum, iCalculatedChecksum) + return err + } + + saFields := strings.Split(saParts[0]," ") + if (len(saFields) < 4) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected at least 4, found %d\n", len(saFields)) + return err + } + + if (saFields[0] != "dero") { + err = fmt.Errorf("Expected a Dero transaction, Found %s\n",saFields[0]); + return err + } + + if (saFields[1] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saFields[1]) + return err + } + + if ((saFields[2] != "scalar_mult") && + (saFields[2] != "shared_secret") && + (saFields[2] != "sign_offline")) { + err = fmt.Errorf("Transaction doesn't start with 'scalar_mult', 'shared_secret' or 'sign_offline'\n") + return err + } + + keys := wallet.Get_Keys() + if (saFields[2]=="scalar_mult") { + if (len(saFields) != 4) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 4, found %d\n", len(saFields)) + return err + } + + baData,err = hex.DecodeString(saFields[3]) + if err!=nil { + err = fmt.Errorf("Could not hex decode the data portion\n"); + return err + } + + var elRight *bn256.G1 + elRight = new(bn256.G1) + elRight.Unmarshal(baData) + + scalarMultResult := new(bn256.G1).ScalarMult(elRight, keys.Secret.BigInt()) + baData = scalarMultResult.Marshal() + + sOutput := fmt.Sprintf("dero 1 scalar_mult_result %x",baData) + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x01 + for t := range sOutput { + iCalculatedChecksum = iCalculatedChecksum + (uint16)(sOutput[t]) + } + sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) + baData = []byte(sOutput) + } else if (saFields[2]=="shared_secret") { + if (len(saFields) != 4) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 4, found %d\n", len(saFields)) + return err + } + + baData,err = hex.DecodeString(saFields[3]) + if err!=nil { + err = fmt.Errorf("Could not hex decode the data portion\n"); + return err + } + + fmt.Printf("processing shared_secret request\n"); + var peer_publickey *bn256.G1 + peer_publickey = new(bn256.G1) + peer_publickey.Unmarshal(baData) + + shared_key := crypto.GenerateSharedSecret(keys.Secret.BigInt(), peer_publickey) + + sOutput := fmt.Sprintf("dero 1 shared_secret_result %x",shared_key) + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x01 + for t := range sOutput { + iCalculatedChecksum = iCalculatedChecksum + (uint16)(sOutput[t]) + } + sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) + baData = []byte(sOutput) + } else if (saFields[2]=="sign_offline") { + if (len(saFields) < 12) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 12, found %d\n", len(saFields)) + return err + } + + if (bSignTransactions==false) { + //Process sign transaction request. If running in interactive mode, + //the user must select 'sign' from the menu to authorise the activity + //During interactive mode, the input filename is 'transaction' + err = os.WriteFile(sPrefix+"/transaction", baData, 0644) + if err!=nil { + err = fmt.Errorf("Error saving file: %s\n",err) + return err + } + + fmt.Printf("Detected new transaction sign request. Authorise the request with menu option '5: Sign'.\n"); + //User must authorise the signature through the menu system: + // 5. Sign (DERO) transaction, prepared by the online (view only) wallet + return nil + } else { + //Sign the transaction when launching app with --remotetx flag: + sOutput:=string(baData[:]) + baData,err = sign_remote_transaction(sOutput) + if err!=nil { + err = fmt.Errorf("Error signing transaction: %s\n",err) + return err; + } + } + } else { + err = fmt.Errorf("Unknown type request. Only scalar_mult and shared_secret supported\n"); + return err + } + + err = os.WriteFile(sPrefix+"/offline_response", baData, 0644) + if err!=nil { + err = fmt.Errorf("Error saving file. %s\n",err) + return err + } + fmt.Printf("Saved result in %s/offline_response\n",sPrefix) + } + + return nil +} + +func sign_remote_transaction(sTransaction string) (baData []byte, err error){ + // Transaction structure in the file: + //Parameter [0] Project - 'dero' + // [1] Version - Layout of the command fields + // [2] Command: sign_offline + // Version 1: [3] Array of transfers (outputs) + // [4] Array of ring balances + // [5] Array of rings + // [6] block_hash + // [7] height + // [8] Array of scdata + // [9] treehash + // [10] max_bits + // [11] gasstorage + // [12] account balance + // ; Checksum of all the characters in the command. + + //Split string on ';' + saParts := strings.Split(sTransaction,";") + if (len(saParts) != 2) { + err = fmt.Errorf("Invalid number of parts. Expected 2, found %d\n\n", len(saParts)) + return nil,err + } + + sTransaction = saParts[0] + sProtocolChecksum := saParts[1] + iTmp,err := strconv.Atoi(sProtocolChecksum) + if err!=nil { + err = fmt.Errorf("Could not convert the checksum back to an integer: "+sProtocolChecksum+"\n") + return nil,err + } + iProtocolChecksum := uint16(iTmp) + + //Regenerate checksum: + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x01 + for t := range sTransaction { + iCalculatedChecksum = iCalculatedChecksum + (uint16)(sTransaction[t]) + } + + //fmt.Printf("Checksum input\n'%s'\n\n",sTransaction); + // Check 1: Checksum + if (iProtocolChecksum != iCalculatedChecksum) { + err = fmt.Errorf("Checksum calculation failed. Please check if you've imported the transaction correctly. Protocol: %u, calculated: %u\n\n", iProtocolChecksum, iCalculatedChecksum) + return nil,err + } + + saParts = strings.Split(sTransaction," ") + if (len(saParts)!=13) { + err = fmt.Errorf("Invalid number of parts in the transaction. Expected 13, found %d\n", len(saParts)) + return nil,err + } + + if (saParts[0] != "dero") { + err = fmt.Errorf("Expected a Dero transaction, Found %s\n",saParts[1]); + return nil,err + } + + if (saParts[1] != "1") { + err = fmt.Errorf("Only transaction version 1 supported. Found %s\n",saParts[2]) + return nil,err + } + + if (saParts[2] != "sign_offline") { + err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") + return nil,err + } + + //sChecksumInput:="dero 1 sign_offline "; + //--------------------------------------------------------------------------------------------------------------------- + var transfers []rpc.Transfer + + sTmp := strings.ReplaceAll(saParts[3],"'","") + sTmp1:= strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + + saTransfers := strings.SplitAfter(sTmp, "}") + //fmt.Printf("transfers:%d\n",len(saTransfers)-1); + //sChecksumInput+="transfers:"; + for t:=range saTransfers { + if len(saTransfers[t])>0 { + var transfer rpc.Transfer + + sTmp1 = strings.ReplaceAll(saTransfers[t], ",{","") + sTmp = strings.ReplaceAll(sTmp1, "{","") + sTransfer := strings.ReplaceAll(sTmp,"}","") + + saParts := strings.Split(sTransfer,",") + if (len(saParts)!=5) { + err = fmt.Errorf("Parse error. Invalid number of parts in transfers. Expected 5, found %d\n", len(saParts)); + return nil,err + } + + sTmp:=strings.ReplaceAll(saParts[0],"\"","") + saItemValue:=strings.Split(sTmp,":") + if (saItemValue[0]!="SCID") { + err = fmt.Errorf("Parse error. Could not find SCID in transfers\n"); + return nil,err + } + err = transfer.SCID.UnmarshalText([]byte(string(saItemValue[1]))) + if err != nil { + err = fmt.Errorf("Parse error. Could not assign SCID to transfers\n"); + return nil,err + } + //sChecksumInput+=" \""+saItemValue[1]+"\"" + + + sTmp=strings.ReplaceAll(saParts[1],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="Destination") { + err = fmt.Errorf("Parse error. Could not find destination in transfers\n"); + return nil,err + } + transfer.Destination = saItemValue[1] + //sChecksumInput+=" \""+saItemValue[1]+"\"" + + sTmp=strings.ReplaceAll(saParts[2],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="Amount") { + err = fmt.Errorf("Parse error. Could not find amount in transfers\n"); + return nil,err + } + transfer.Amount, err = strconv.ParseUint(saItemValue[1],10,64) + //sChecksumInput+=" "+saItemValue[1] + + sTmp=strings.ReplaceAll(saParts[3],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="Burn") { + err = fmt.Errorf("Parse error. Could not find burn in transfers\n"); + return nil,err + } + transfer.Burn, err = strconv.ParseUint(saItemValue[1],10,64) + //sChecksumInput+=" "+saItemValue[1] + + sTmp=strings.ReplaceAll(saParts[4],"\"","") + saItemValue=strings.Split(sTmp,":") + if (saItemValue[0]!="RPC") { + err = fmt.Errorf("Parse error. Could not find rpc in transfers\n"); + return nil,err + } + hexRPC, err2 := hex.DecodeString(saItemValue[1]) + if err2 != nil { + err = fmt.Errorf("Parse error. Could not hex decode the rpc field of the transfers\n"); + return nil,err + } + err2 = transfer.Payload_RPC.UnmarshalBinary(hexRPC) + if err2 != nil { + err = fmt.Errorf("Parse error. Could not assign the rpc field of the transfers\n"); + return nil,err + } + //sChecksumInput+=" \""+saItemValue[1]+"\"" + + transfers = append(transfers, transfer) + } + } + + //--------------------------------------------------------------------------------------------------------------------- + var rings_balances [][][]byte //initialize all maps + + sTmp = strings.ReplaceAll(saParts[4],"'","") + sTmp1 = strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + + saRingBalances := strings.SplitAfter(sTmp, "}") + + //sChecksumInput+=" rings_balances:" + for t:=range saRingBalances { + if len(saRingBalances[t])>0 { + var ring_balances [][]byte + + sTmp1 = strings.ReplaceAll(saRingBalances[t], ",{","") + sTmp = strings.ReplaceAll(sTmp1, "{","") + sRingBalance := strings.ReplaceAll(sTmp,"}","") + + saRingBalances:=strings.Split(sRingBalance,",") + if ( len(saRingBalances)<16) { + err = fmt.Errorf("Expected at least 16 ring balances. Found %d\n", len(saRingBalances)) + return nil,err + } + + for t := range saRingBalances { + baData,_ := hex.DecodeString( saRingBalances[t] ) + ring_balances = append(ring_balances,baData) + //sChecksumInput+=" "+saRingBalances[t] + } + rings_balances = append(rings_balances, ring_balances) + } + } + /* + fmt.Printf("rings_balances:{%d} entries\n",len(rings_balances)) + var counter1=0 + var counter2=0 + for t := range rings_balances { + fmt.Printf("rings_balances{%d}:{%d} entries\n",counter1,len(rings_balances[t])) + counter2=0 + for u := range rings_balances[t] { + fmt.Printf(" ring balance[%d]=\"%x\"\n",counter2,rings_balances[t][u]) + counter2++ + } + counter1++ + } + */ + //--------------------------------------------------------------------------------------------------------------------- + var rings [][]*bn256.G1 + //sChecksumInput+=" rings:"; + + sTmp = strings.ReplaceAll(saParts[5],"'","") + sTmp1 = strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + + saRings := strings.SplitAfter(sTmp, "}") + //fmt.Printf("Rings:%d\n",len(saRings)-1); + + for t:=range saRings { + if len(saRings[t])>0 { + var ring []*bn256.G1 + var oG1 *bn256.G1 + + sTmp1 = strings.ReplaceAll(saRings[t], ",{","") + sTmp = strings.ReplaceAll(sTmp1, "{","") + sRing := strings.ReplaceAll(sTmp,"}","") + + saRing:=strings.Split(sRing,",") + //fmt.Printf("saRing=%d\n",len(saRing)) + if ( len(saRing)<16) { + err = fmt.Errorf("Expected at least 16 rings. Found %d\n\n", len(saRing)) + return nil,err + } + + for t := range saRing { + //fmt.Printf("Processing: '%s'\n", saRing[t]) + baData,err := hex.DecodeString( saRing[t] ) + if err!=nil { + err = fmt.Errorf("Could not decode ring entry: %s\n\n", saRing[t]) + return nil,err + } + oG1 = new(bn256.G1); + _,err = oG1.Unmarshal(baData); + if err != nil { + err = fmt.Errorf("Could not assign ring data\n\n"); + return nil,err + }; + ring = append(ring,oG1) + + //sChecksumInput+=" "+saRing[t] + } + rings = append(rings, ring) + } + } + /* + fmt.Printf("rings:{%d} entries\n",len(rings)) + counter1=0 + counter2=0 + for t := range rings { + fmt.Printf("ring{%d}:{%d} entries\n",counter1,len(rings[t])) + counter2=0 + for u := range rings[t] { + fmt.Printf(" ring[%d]=\"%x\"\n",counter2,rings[t][u].Marshal() ) + counter2++ + } + counter1++ + } + */ + //--------------------------------------------------------------------------------------------------------------------- + //[6] block_hash + sTmp = strings.ReplaceAll(saParts[6],"\"","") + block_hash := crypto.HashHexToHash(sTmp) + //sChecksumInput+=" "+saParts[6] + + //[7] height + var height uint64 + height, err = strconv.ParseUint(saParts[7],10,64) + if err!=nil { + err = fmt.Errorf("Parse error. Could not assign height to transfers\n\n"); + return nil,err + } + //sChecksumInput+=" "+saParts[7] + + //[8] Array of scdata + var scdata rpc.Arguments + sTmp = strings.ReplaceAll(saParts[8],"'","") + sTmp1 = strings.ReplaceAll(sTmp, "[","") + sTmp = strings.ReplaceAll(sTmp1,"]","") + if (len(sTmp) > 0) { + hexSCData, err2 := hex.DecodeString(sTmp) + if err2!=nil { + err = fmt.Errorf("Parse error. Could not decode the SCData\n\n"); + return nil,err + } + if (len(hexSCData)>0) { + err = scdata.UnmarshalBinary(hexSCData) + if err!=nil { + err = fmt.Errorf("Parse error. Could not decode the SCData\n\n"); + return nil,err + } + } + } + //sChecksumInput+=" "+saParts[8] + + //[9] treehash + sTmp = strings.ReplaceAll(saParts[9],"\"","") + treehash_raw, err := hex.DecodeString(sTmp) + if err != nil { + err = fmt.Errorf("Parse error. Could not decode treehash_raw\n\n") + return nil,err + } + //sChecksumInput+=" "+saParts[9] + + //[10] max_bits + var max_bits int + max_bits, err = strconv.Atoi(saParts[10]) + if err != nil { + err = fmt.Errorf("Parse error. Could not decode max_bits\n\n") + return nil,err + } + + //[11] gasstorage + var gasstorage uint64 + gasstorage, err = strconv.ParseUint(saParts[11],16,64) + if err != nil { + err = fmt.Errorf("Parse error. Could not decode gasstorage\n\n") + return nil,err + } + + //[12] current balance + var current_balance uint64 + current_balance, err = strconv.ParseUint(saParts[12],16,64) + if err != nil { + err = fmt.Errorf("Parse error. Could not decode current_balancew\n\n") + return nil,err + } + fmt.Printf("Account balance: %s\n", globals.FormatMoney(current_balance) ) + + tx := wallet.BuildTransaction(transfers, rings_balances, rings, block_hash, height, scdata, treehash_raw, max_bits, gasstorage) + if tx == nil { + err = fmt.Errorf("The transaction could not be reconstructed, please retry\n\n") + return nil,err + } + + sTxSerialized := tx.Serialize() + sOutput := fmt.Sprintf("dero 1 signed %x",sTxSerialized) + + iCalculatedChecksum=0x01; + for t := range sOutput { + iVal := uint16(sOutput[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + } + sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + sOutput+=";"+sCalculatedChecksum + + baData = []byte( sOutput ) + + return baData,nil +} diff --git a/cmd/dero-wallet-cli/prompt.go b/cmd/dero-wallet-cli/prompt.go index a95eeeb1..0d2a671f 100644 --- a/cmd/dero-wallet-cli/prompt.go +++ b/cmd/dero-wallet-cli/prompt.go @@ -999,7 +999,10 @@ func usage(w io.Writer) { // display seed to the user in his preferred language func display_seed(l *readline.Instance, wallet *walletapi.Wallet_Disk) { - + if (wallet==nil) { + fmt.Fprintf(os.Stderr,"The wallet file is uninitialised!\n") + os.Exit(0) + } if (wallet.ViewOnly() == false) { seed := wallet.GetSeed() fmt.Fprintf(l.Stderr(), color_green+"PLEASE NOTE: the following 25 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control."+color_white+"\n") @@ -1038,20 +1041,21 @@ func display_spend_key(l *readline.Instance, wallet *walletapi.Wallet_Disk) { } func display_viewing_key (wallet *walletapi.Wallet_Disk) { - var IsOffline = globals.Arguments["--offline"].(bool) - - if (IsOffline==true) || (wallet.ViewOnly() == false) { - keys := wallet.Get_Keys() - sViewOnlyKey := fmt.Sprintf("viewkey,%s,%s,%x",wallet.GetAddress(), keys.Public.StringHex(), keys.Public.G1().Marshal()) - - //Append a simple checksum to the string to detect copy/paste errors - //during import into the online wallet: - var iChecksum=1 - for t := range sViewOnlyKey { - iChecksum = iChecksum + (int)(sViewOnlyKey[t]) - } - fmt.Printf("%s;%d\n\n",sViewOnlyKey, iChecksum) + if (wallet.ViewOnly() == true) { + fmt.Printf("A view only wallet cannot generate the viewing key\n"); + return; + } + + keys := wallet.Get_Keys() + sViewOnlyKey := fmt.Sprintf("viewkey,%s,%s,%x",wallet.GetAddress(), keys.Public.StringHex(), keys.Public.G1().Marshal()) + + //Append a simple checksum to the string to detect copy/paste errors + //during import into the online wallet: + var iChecksum=1 + for t := range sViewOnlyKey { + iChecksum = iChecksum + (int)(sViewOnlyKey[t]) } + fmt.Printf("%s;%d\n\n",sViewOnlyKey, iChecksum) } // start a rescan from block 0 diff --git a/walletapi/daemon_communication.go b/walletapi/daemon_communication.go index fbfefd53..09b71232 100644 --- a/walletapi/daemon_communication.go +++ b/walletapi/daemon_communication.go @@ -32,6 +32,7 @@ import ( "math/big" "runtime/debug" "strings" + "strconv" "sync" "time" @@ -352,19 +353,25 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) err = fmt.Errorf("OfflineOperationWithSecretKey() should only be used by view only wallets\n") return } + + remote_request_prefix:="." + if globals.Arguments["--prefix"] != nil { + remote_request_prefix = globals.Arguments["--prefix"].(string) // override with user specified settings + } + //Clean up temporary files: - sFileResponse:="./offline_response" - _ = os.Remove(sFileResponse) - if _, err = os.Stat(sFileResponse); err == nil { - err = fmt.Errorf("Could not delete %s\n",sFileResponse) + sFileIn:=remote_request_prefix+"/offline_response" + _ = os.Remove(sFileIn) + if _, err = os.Stat(sFileIn); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileIn) return } err=nil - sFileRequest:="./offline_request" - _ = os.Remove(sFileRequest) - if _, err = os.Stat(sFileRequest); err == nil { - err = fmt.Errorf("Could not delete %s\n",sFileRequest) + sFileOut:=remote_request_prefix+"/offline_request" + _ = os.Remove(sFileOut) + if _, err = os.Stat(sFileOut); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileOut) return } err=nil @@ -398,25 +405,26 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) // Version 1: [3] data // [4] Checksum of all the characters in the data stream sOutput := fmt.Sprintf("dero 1 %s %x",sType,baData) - var iCalculatedChecksum=0x01 + var iCalculatedChecksum uint16 + iCalculatedChecksum=0x01 for t := range sOutput { - iCalculatedChecksum = iCalculatedChecksum + (int)(sOutput[t]) + iCalculatedChecksum = iCalculatedChecksum + (uint16)(sOutput[t]) } sOutput = fmt.Sprintf("%s;%d",sOutput, iCalculatedChecksum) baOutput := []byte(sOutput) - err = os.WriteFile(sFileRequest, baOutput, 0644) + err = os.WriteFile(sFileOut, baOutput, 0644) if err!=nil { err = fmt.Errorf("Error saving file. %s\n",err) return } - fmt.Printf("\nInteraction with offline wallet required. Saved request to: %s\nWaiting 60 seconds for the response at: %s\n",sFileRequest,sFileResponse) + fmt.Printf("\nInteraction with offline wallet required. Saved request to: %s\nWaiting 60 seconds for the response at: %s\n",sFileOut,sFileIn) bFound:=0 counter:=0 for counter <= 60 { - if _, err := os.Stat(sFileResponse); err == nil { + if _, err := os.Stat(sFileIn); err == nil { bFound=1 break; } @@ -429,14 +437,14 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) return; } - baInput, err := os.ReadFile(sFileResponse) + baInput, err := os.ReadFile(sFileIn) if err!=nil { - err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileResponse); + err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileIn); return; } - _ = os.Remove(sFileResponse) - if _, err = os.Stat(sFileResponse); err == nil { - err = fmt.Errorf("Could not delete %s\n",sFileResponse) + _ = os.Remove(sFileIn) + if _, err = os.Stat(sFileIn); err == nil { + err = fmt.Errorf("Could not delete %s\n",sFileIn) return } @@ -453,14 +461,20 @@ func (w *Wallet_Memory) OfflineOperationWithSecretKey(iType int, baData []byte) } sProtocolChecksum := saParts[1] + iTmp,err := strconv.Atoi(sProtocolChecksum) + if err!=nil { + err = fmt.Errorf("Could not convert the checksum back to an integer:"+sProtocolChecksum+"\n") + return + } + iProtocolChecksum:=uint16(iTmp) + iCalculatedChecksum=0x01; for t := range saParts[0] { - iVal := int(saParts[0][t]) + iVal := uint16(saParts[0][t]) iCalculatedChecksum = iCalculatedChecksum + iVal; } - sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) - if (sProtocolChecksum!=sCalculatedChecksum) { + if (iProtocolChecksum!=iCalculatedChecksum) { err = fmt.Errorf("The checksum of the signed transaction data is invalid.\n") return } diff --git a/walletapi/transaction_build.go b/walletapi/transaction_build.go index fde64a5f..41703cbf 100644 --- a/walletapi/transaction_build.go +++ b/walletapi/transaction_build.go @@ -55,6 +55,10 @@ rebuild_tx: panic("currently we cannot use more than 240 bits") } + var account_balance uint64 + account_balance=0 + balance_unassigned:=false + for t, _ := range transfers { var publickeylist, C, CLn, CRn []*bn256.G1 @@ -132,6 +136,7 @@ rebuild_tx: value := transfers[t].Amount burn_value := transfers[t].Burn + if fees == 0 && asset.SCID.IsZero() && !fees_done { fees = fees + uint64(len(transfers)+2)*uint64((float64(config.FEE_PER_KB)*float64(float32(len(publickeylist)/16)+w.GetFeeMultiplier()))) if data, err := scdata.MarshalBinary(); err != nil { @@ -208,8 +213,14 @@ rebuild_tx: } - // decode sender (our) balance now, it might have been updated - balance := w.DecodeEncryptedBalanceNow(ebalances_list[witness_index[0]]) + // decode sender (our) balance now, it might have been updated + // Note: As the loop iterates over []transfers, the balance is updated to reflect each spend + balance := w.DecodeEncryptedBalanceNow(ebalances_list[witness_index[0]]) + if (balance_unassigned==false) { + balance_unassigned=true + account_balance=balance + } + //fmt.Printf("balance: %u\n", balance) // time for bullets-sigma fees_currentasset := uint64(0) @@ -221,7 +232,15 @@ rebuild_tx: copy(statement.Roothash[:], roothash[:]) statement.Bytes_per_publickey = byte(max_bits / 8) - witness := GenerateWitness(sender_secret, r, value, balance-value-fees_currentasset-burn_value, witness_index) + //Evaluate available balance: + if (balance < (value+fees_currentasset+burn_value)) { + fmt.Printf("Insufficient funds to process the transaction.\nBalance %d < sum(spend amount,fees,burn value)", account_balance) + return nil + } + + //Account balance is decreases with the amount of the transfer each time w.DecodeEncryptedBalanceNow() is called. + remaining_balance := balance-value-fees_currentasset-burn_value + witness := GenerateWitness(sender_secret, r, value, remaining_balance, witness_index) witness_list = append(witness_list, witness) @@ -240,12 +259,6 @@ rebuild_tx: balance = balance.Add(echanges) // homomorphic addition of changes umap[transfers[t].SCID.String()+publickeylist[i].String()] = balance.Serialize() // reserialize and store } - - //Evaluate available balance after processing the transfer[] entry: - if (balance < (transfers[t].Amount + fees_currentasset + burn_value)) { - fmt.Printf("Insufficient funds to process the transaction: Balance %d < Spend amount,fees,burn value: %d+%d+%d\n", balance, transfers[t].Amount, fees_currentasset,burn_value) - return nil - } } scid_map := map[crypto.Hash]int{} diff --git a/walletapi/wallet.go b/walletapi/wallet.go index ca0b55ff..1f35c463 100644 --- a/walletapi/wallet.go +++ b/walletapi/wallet.go @@ -165,10 +165,52 @@ func Generate_Keys_From_Seed(Seed *crypto.BNRed) (keys _Keys) { // generate user account using recovery seeds func Generate_Account_From_Recovery_Words(words string) (user *Account, err error) { user = &Account{Ringsize: 16, FeesMultiplier: 2.0} - language, seed, err := mnemonics.Words_To_Key(words) - if err != nil { - return - } + + var language string + var seed *big.Int + var baData []byte + + saParts:=strings.Split(words,";") + + if (len(saParts)==1) { + //25 word mnemonic + language, seed, err = mnemonics.Words_To_Key(words) + if err != nil { + return + } + } else { + //raw 32 byte seed with a checksum + if (len(saParts)!=2) { + err = fmt.Errorf("raw seed requires 2 parts.") + return + } + if (len(saParts[0]) != 64) { + err = fmt.Errorf("raw seed must be 64 characters long") + return + } + baData, err = hex.DecodeString( saParts[0] ) + if err!=nil { + err = fmt.Errorf("Could not decode the hex seedphrase to binary") + return + } + + iChecksum:=0x01; + for t := range baData { + iVal := int(baData[t]) + iChecksum = iChecksum + iVal; + } + sCalculatedChecksum:= fmt.Sprintf("%d",iChecksum) + sProtocolChecksum:= saParts[1] + + if (sCalculatedChecksum!=sProtocolChecksum) { + err = fmt.Errorf("Checksum mismatch for the raw seed") + return + } + seed = new(big.Int) + seed.SetBytes(baData) + + language="English" + } user.SeedLanguage = language user.Keys = Generate_Keys_From_Seed(crypto.GetBNRed(seed)) diff --git a/walletapi/wallet_disk.go b/walletapi/wallet_disk.go index 9c995055..6ee1eb16 100644 --- a/walletapi/wallet_disk.go +++ b/walletapi/wallet_disk.go @@ -118,7 +118,7 @@ func Create_Encrypted_Wallet_Random(filename string, password string) (wd *Walle //Save to disk wd.Save_Wallet() - return nil, err + return wd, err } // wallet must already be open diff --git a/walletapi/wallet_transfer.go b/walletapi/wallet_transfer.go index 3dc4abea..3103cf7b 100644 --- a/walletapi/wallet_transfer.go +++ b/walletapi/wallet_transfer.go @@ -21,11 +21,13 @@ import ( "fmt" "os" "time" +// "strconv" "strings" "github.com/deroproject/derohe/config" "github.com/deroproject/derohe/cryptography/bn256" "github.com/deroproject/derohe/cryptography/crypto" + "github.com/deroproject/derohe/globals" "github.com/deroproject/derohe/rpc" "github.com/deroproject/derohe/transaction" ) @@ -192,7 +194,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint return } } - + for t := range transfers { if transfers[t].Destination == "" { // user skipped destination @@ -426,8 +428,10 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint // Calculate an estimate of the full transaction cost, to see if the balance has enough funds: var spend uint64 var fees uint64 + var burn_value uint64 spend=0 fees=0 + burn_value=0 fees_done:=false len_publickeylist:=len(rings[0]) @@ -440,6 +444,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint asset.SCID = transfers[t].SCID asset.BurnValue = transfers[t].Burn + burn_value+=asset.BurnValue if fees == 0 && asset.SCID.IsZero() && !fees_done { fees = fees + uint64(len(transfers)+2)*uint64((float64(config.FEE_PER_KB)*float64(float32(len_publickeylist/16)+w.GetFeeMultiplier()))) @@ -455,8 +460,8 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint fees = fees * uint64(len(transfers)) // fmt.Printf("spends: %d\n", spend); - if (current_balance < (spend+fees)) { - err = fmt.Errorf("Spend amount (%d) + estimated fees (%d) is more than your current balance: %d\n",spend,fees,current_balance) + if (current_balance < (spend+fees+burn_value)) { + err = fmt.Errorf("Spend amount (%d) + burn value (%d) + estimated fees (%d) is more than your current balance: %d\n",spend,burn_value,fees,current_balance) return } @@ -472,7 +477,8 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint // [9] treehash // [10] max_bits // [11] gasstorage - // [12] Checksum of all the characters in the command. + // [12] account_balance + // ; Checksum of all the characters in the command. var sReturn string var sChecksumInput string @@ -481,7 +487,6 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint var counter=0 -// fmt.Print("transfers: %d\n",len(transfers)) sChecksumInput+="transfers:"; sReturn=sReturn+"'["; counter=0 @@ -507,14 +512,13 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint counter++ } -// fmt.Printf("rings_balances: %d\n",len(rings_balances)) var counter1=0 var counter2=0 sChecksumInput+=" rings_balances:" sReturn=sReturn+"'[" for t := range rings_balances { - //fmt.Printf("rings_balances{%d}:{%d} entries\n",counter1,len(rings_balances[t])) + //fmt.Printf("rings_balances{%d}:{%d} entries\n",counter1,len(rings_balances[t])) sReturn=sReturn+"{"; counter2=0 for u := range rings_balances[t] { @@ -542,7 +546,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint counter1++ } -// fmt.Printf("rings:{%d} entries\n", len(rings)) + //fmt.Printf("rings:{%d} entries\n", len(rings)) sChecksumInput+=" rings:"; sReturn=sReturn+"'["; @@ -594,45 +598,55 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint sReturn=sReturn + sTmp sChecksumInput+=sTmp - sTmp=fmt.Sprintf("%x",gasstorage) + sTmp=fmt.Sprintf("%x ",gasstorage) sReturn=sReturn + sTmp sChecksumInput+=sTmp + + sTmp=fmt.Sprintf("%x",current_balance) + sReturn=sReturn + sTmp + sChecksumInput+=sTmp - - //Parameter [12]: checksum + //Parameter [13]: checksum //A simple checksum of the full string, to detect copy/paste errors between the wallets //The checksum equals the sum of the ASCII values of all the characters in the string: - iChecksum:=0x01; - for t := range sChecksumInput { - iVal := int(sChecksumInput[t]) - iChecksum = iChecksum + iVal; + iCalculatedChecksum:=0x01; + iCount:=0 + for t := range sReturn { + iVal := int(sReturn[t]) + iCalculatedChecksum = iCalculatedChecksum + iVal; + + iCount++; } - sTmp = fmt.Sprintf(";%d",iChecksum) - sReturn=sReturn + sTmp + sTmp = fmt.Sprintf(";%d", uint16(iCalculatedChecksum)) + sReturn=sReturn + sTmp //-------------------------------------------------------------------------------------- // Compiling transaction data completed. Now need to exchange it with the offline wallet // to get it signed - - _ = os.Remove("./transaction") + remote_request_prefix:="." + if globals.Arguments["--prefix"] != nil { + remote_request_prefix = globals.Arguments["--prefix"].(string) // override with user specified settings + } + + sFileOut:=remote_request_prefix+"/offline_request" + _ = os.Remove(sFileOut) // ./transaction - if _, err = os.Stat("./transaction"); err == nil { - err = fmt.Errorf("Could not delete ./transaction") + if _, err = os.Stat(sFileOut); err == nil { + err = fmt.Errorf("Could not delete "+sFileOut) return } - //The signed file is created by the offline wallet. We may not have permissions to erase the - // file. Let the user perform it manually - _ = os.Remove("./signed") - if _, err = os.Stat("./signed"); err == nil { - err = fmt.Errorf("Found old signed transaction at ./signed. Delete the file before starting a new transaction.\n") + sFileIn:=remote_request_prefix+"/offline_response" + _ = os.Remove(sFileIn) + if _, err = os.Stat(sFileIn); err == nil { + err = fmt.Errorf("Found old response file at "+sFileIn+". Delete the file before starting a new transaction.\n") return } - fmt.Printf("Saved transaction data to: ./transaction. Transfer it to the offline (signing) wallet and have it signed there.\n" ) + fmt.Printf("Saved transaction data to: "+sFileOut+". Transfer it to the offline (signing) wallet and have it signed there.\n" ) baData := []byte(sReturn) - err = os.WriteFile("./transaction", baData, 0644) + err = os.WriteFile(sFileOut, baData, 0644) if err!=nil { err = fmt.Errorf("Error saving file. %s\n",err) return @@ -641,9 +655,9 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint bFound:=0 counter=0 //TODO: what is the longest we can wait to submit a transaction and still have it processed by the network? - fmt.Printf("Waiting 30 seconds for the signed transaction from the offline wallet at ./signed\n"); - for counter <= 30 { - if _, err := os.Stat("./signed"); err == nil { + fmt.Printf("Waiting 80 seconds for the signed transaction from the offline wallet at %s\n",sFileIn); + for counter <= 80 { + if _, err := os.Stat(sFileIn); err == nil { bFound=1 break; } @@ -656,19 +670,21 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint return; } - baData, err = os.ReadFile("./signed") + baData, err = os.ReadFile(sFileIn) if err!=nil { - err = fmt.Errorf("Could not read from ./signed. Check the file permissions.\n"); + err = fmt.Errorf("Could not read from %s. Check the file permissions.\n",sFileIn); return; } - fmt.Printf("Read %d bytes from ./signed. ",len(baData)) + fmt.Printf("Read %d bytes from %s\n",len(baData),sFileIn) + //Remove old files + _ = os.Remove(sFileIn) tx=nil //Parameter [0]: Project - 'dero' // [1]: Version - Layout of the command fields // [2]: Command: signed // Version 1: [3] Signed transaction - // [4] Checksum of all the characters in the data stream + // ; Checksum of all the characters in the data stream sInput := string(baData[:]) saParts := strings.Split(sInput,";") @@ -678,12 +694,12 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint } sProtocolChecksum := saParts[1] - iCalculatedChecksum:=0x01; + iCalculatedChecksum=0x01; for t := range saParts[0] { iVal := int(saParts[0][t]) iCalculatedChecksum = iCalculatedChecksum + iVal; } - sCalculatedChecksum := fmt.Sprintf("%d",iCalculatedChecksum) + sCalculatedChecksum := fmt.Sprintf("%d", uint16(iCalculatedChecksum)) if (sProtocolChecksum!=sCalculatedChecksum) { fmt.Printf("The checksum of the request data is invalid. Protocol: '%s', Calculates: '%s'\n", sProtocolChecksum, sCalculatedChecksum) @@ -707,7 +723,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint } if (saFields[2] != "signed") { - err = fmt.Errorf("Transaction doesn't start with 'sign_offline'\n") + err = fmt.Errorf("Transaction doesn't start with 'signed'\n") return } @@ -725,10 +741,7 @@ func (w *Wallet_Memory) TransferPayload0(transfers []rpc.Transfer, ringsize uint return } - //Remove old files - _ = os.Remove("./signed") - - fmt.Printf("The checksum passed. Continue to submit the transaction\n\n") + fmt.Printf("Ready to broadcast the transaction\n\n") return; } From ea9fc895b5e1eec2e2862f78519313281aea2cb4 Mon Sep 17 00:00:00 2001 From: Mullroy <81013624+mullroy@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:57:02 +0200 Subject: [PATCH 14/18] Update README_offline_transaction_signing.md --- README_offline_transaction_signing.md | 98 ++++++++++++--------------- 1 file changed, 45 insertions(+), 53 deletions(-) diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md index 38c37d51..8fb7e840 100644 --- a/README_offline_transaction_signing.md +++ b/README_offline_transaction_signing.md @@ -198,60 +198,52 @@ Example output:
4 Online machine
4.1 First run
- From a terminal console, launch the application: ./dero-wallet-cli --help - We will use the following command line options: - --remote - Connect to a remote node. This is often called 'light weight mode', since you do - not maintain a full copy of the blockchain. - --wallet-file - The name of your wallet, i.e. viewonly.db - --password - The password with which to encypt the wallet. It needs to - be a strong password, which can withstand a password attack, - but note, you'll have to enter this password regularly, so it - still needs to be something practical to work with. - - --restore-viewonly-wallet - Set up the wallet with the viewing key obtained from the offline wallet - - An example will be: - $ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw --restore-viewonly-wallet - - The software will have these 2 prompts: - Enter wallet filename (default viewonly.db): Just press enter to accept the default - Enter the view only key (obtained from the offline (signing) wallet): Paste the viewing key here, i.e.: - viewkey,dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010 - - If the key is accepted, you'll get this greeting: INFO wallet Successfully restored an online (view only) wallet - - After the wallet starts up the menu will provide you with a couple of options. - At the top of the menu is a greeting to show you that it is running in view only mode: - Online (view only) wallet: - 1. Register you account, using registration transaction from the offline (signing) wallet. - 2. View your account balance & transaction history - 3. Generate transactions for the offline wallet to sign. - 4. Submit the signed transactions to the network. - - Select '0' to exit the wallet. - Check to see if the wallet was saved to disk - $ ls - The output must contain your wallet file: viewonly.db - + From a terminal console, launch the application: ./dero-wallet-cli --help
+ We will use the following command line options:
+ --remote - Connect to a remote node. This is often called 'light weight mode', since you do not maintain a full copy of the blockchain.
+ --wallet-file - The name of your wallet, i.e. viewonly.db
+ --password - The password with which to encypt the wallet. It needs to be a strong password, which can withstand a password attack, but note, you'll have to enter this password regularly, so it still needs to be something practical to work with.
+ --restore-viewonly-wallet - Set up the wallet with the viewing key obtained from the offline wallet
+An example will be:
+ $ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw --restore-viewonly-wallet
+ The software will have these 2 prompts:
+ Enter wallet filename (default viewonly.db): Just press enter to accept the default
+ Enter the view only key (obtained from the offline (signing) wallet): Paste the viewing key here, i.e.:
+viewkey,dero1bcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010
+
+If the key was accepted, you'll get this confirmation:
+   Successfully restored an online (view only) wallet
+   Address: dero1<your address>
+   Public key: <your public key>
+
+After the wallet starts up the menu will provide you with a couple of options.
+At the top of the menu is a greeting to show you that it is running in view only mode:
+   Online (view only) wallet:
+   1. Register you account, using registration transaction from the offline (signing) wallet.
+   2. View your account balance & transaction history
+   3. Generate transactions for the offline wallet to sign.
+   4. Submit the signed transactions to the network.
+
+Select '0' to exit the wallet.
+
4.2 Second run - Now that the wallet is already created, you don't provide the restore & seed CLI options anymore: - $ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw - - Menu options: - 1 Display account Address -- Shows your account address. Share this with people so they can pay you. - Note: The address must be the same as that of the offline wallet - Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3 - 2 Display seed -- This option is not available in the view only wallet. - 3 Display Keys -- Only the public key is displayed. This must match the public key in the offline wallet - 4 Account registration to blockchain -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address. - - Enter the registration transaction (obtained from the offline (signing) wallet): registration,dero1...,...,...;24578 - Registration TXID 00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993 - registration tx dispatched successfully - - Note: After the account was registered, the wallet needs to synchronise your account balance. - In order to accomplish this, interaction with the offline wallet is required. - + Now that the wallet is already created, you don't provide the restore & seed CLI options anymore:
+ $ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw
+
+   Menu options:
+   1 Display account Address -- Shows your account address. Share this with people so they can pay you.
+   Note: The address must be the same as that of the offline wallet
+   Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
+   2 Display seed -- This option is not available in the view only wallet.
+   3 Display Keys -- Only the public key is displayed. This must match the public key in the offline wallet
+   4 Account registration to blockchain -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address.
+
+Enter the registration transaction (obtained from the offline (signing) wallet): registration,dero1...,...,...;24578
+   Registration TXID 00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993
+   registration tx dispatched successfully
+
+Note: After the account was registered, the wallet needs to synchronise your account balance. In order to accomplish this, interaction with the offline wallet is required.
+
## Using the Online / Offline wallet configuration For the demonstration to work effectively, fund your newly created address with some Dero by sending some cents (0.xx) to it, either from an online exchange or from one From 1a670d30ef6a59a97c5ce5d4b1caefddd1bfd81a Mon Sep 17 00:00:00 2001 From: Mullroy <81013624+mullroy@users.noreply.github.com> Date: Thu, 14 Dec 2023 15:54:47 +0200 Subject: [PATCH 15/18] Update README_offline_transaction_signing.md --- README_offline_transaction_signing.md | 102 +++++++++++++------------- 1 file changed, 52 insertions(+), 50 deletions(-) diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md index 8fb7e840..3852349a 100644 --- a/README_offline_transaction_signing.md +++ b/README_offline_transaction_signing.md @@ -157,8 +157,10 @@ shortfalls: From a terminal console, launch the application: ./dero-wallet-cli --help
We will use the following command line options:
--offline - Specify that this wallet is an offline (signing) wallet
- --wallet-file - The name of your wallet, i.e. offline.db

- --password - The password with which to encypt the wallet. It needs to be a strong password, which can withstand a password attack, but note, you'll have to enter this password regularly, so it still needs to be something practical to work with.
+ --wallet-file - The name of your wallet, i.e. offline.db
+ --password - The password with which to encypt the wallet. It needs to be a strong password, + which can withstand a password attack, but note, you'll have to enter this password regularly, so it + still needs to be something practical to work with.
--generate-new-wallet - Let the wallet create a new mnemonic seed phrase and address
or
--restore-deterministic-wallet - You'll provide the mnemonic seed phrase
@@ -166,36 +168,39 @@ shortfalls: An example will be:
$ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw --restore-deterministic-wallet --electrum-seed="your 25 seedphrase words here"
After the wallet starts up the menu will provide you with a couple of options. At the top of the menu is a greeting to show you that it is running in offline mode:
-   Offline (signing) wallet:
+ Offline (signing) wallet:
   1. Setup the online wallet with the exported public key
   2. Generate a registration transaction for the online wallet
   3. Sign spend transactions for the online wallet
Select '0' to exit the wallet.
- Check to see if the wallet was saved to disk: $ ls
- The output must contain your wallet file: offline.db
3.2 Second run
Now that the wallet is already created, you don't provide the restore & seed CLI options anymore:
$ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw
-   Menu options:
-   1 Display account Address -- Shows your account address. Share this with people so they can send Dero to you: Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
-   2 Display seed -- This prints your mnemonic recovery seed. If somebody obtains this seed phrase, they can restore a wallet and spend all your funds.
-   3 Display Keys -- This normally contains the public and secret keys. While you're running in offline mode, an dditional entry is display: The 'view only' key. This key is used to set up the online (view only) wallet.
-   secret key: 1234567890abcdecbd05d9e1a7f52796da7bc2d931bd0034ee6facef8f46e9be
-   public key: 1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201
-   View only key - Import the complete text into the online (view only) wallet to set it up:
-   viewkey,dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010
-   4 Generate registration transaction -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address.
-Example output:
-   Generating registration transaction for wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
-   Searched 100000 hashes
-   ...
-   ...
-   Searched 24600000 hashes
-   Found transaction:
-   Found the registration transaction. Import the complete text into the online (view only) wallet:
-
   registration,dero1qy0eqpxjp6prmcr67j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,010000011f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f934201001822f65724584421db9e860e740250450b8192b3036a351c343274253636e21ad69f267b3a23e0f1d271ab17c143be2019710e682d4671258bb5dacd07e958,00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993;24578
- + Menu options:
+ 1 Display account Address
+ Display your account address. Share this with people so they can send Dero to you:
+   Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
+ 2 Display seed
+ This prints your mnemonic recovery seed. If somebody obtains this seed phrase, they can restore a wallet and spend all your funds.
+ 3 Display Keys
+ This normally contains the public and secret keys. While you're running in offline mode, an additional entry is display, the 'view only' key. This key is used to set up the online (view only) wallet.
+   secret key: <Your secret key>
+   public key: <Your public key>
+   View only key - Import the complete text into the online (view only) wallet to set it up:
+   viewkey,<key parts>;20010
+ 4 Generate registration transaction
+ In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address on it.
+ Example output:
+    Generating registration transaction for wallet address : dero1<Your address>
+    Searched 100000 hashes
+    ...
+    ...
+    Searched 24600000 hashes
+    Found transaction:
+    Found the registration transaction. Import the complete text into the online (view only) wallet:
+    registration,dero1<registration text>;24578

+
4 Online machine
4.1 First run
From a terminal console, launch the application: ./dero-wallet-cli --help
@@ -207,42 +212,39 @@ Example output:
An example will be:
$ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw --restore-viewonly-wallet
The software will have these 2 prompts:
- Enter wallet filename (default viewonly.db): Just press enter to accept the default
- Enter the view only key (obtained from the offline (signing) wallet): Paste the viewing key here, i.e.:
-viewkey,dero1bcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3,1234567890abcde07af49f3d257520bfb8bde93084a820f55a8e8560272f934201,1f9004d20e823de07af49f3d257520bfb8bde93084a820f55a8e8560272f9342290626bd4f1422affe88578e5fbdb825f1d4d6d60bd458402dc18c1614a2395b;20010
-
+    Enter wallet filename (default viewonly.db): Just press enter to accept the default
+    Enter the view only key (obtained from the offline (signing) wallet): Paste the viewing key here
+
If the key was accepted, you'll get this confirmation:
   Successfully restored an online (view only) wallet
-   Address: dero1<your address>
-   Public key: <your public key>
-
-After the wallet starts up the menu will provide you with a couple of options.
-At the top of the menu is a greeting to show you that it is running in view only mode:
-   Online (view only) wallet:
+   Address: dero1<Your address>
+   Public key: <Your public key>
+
+After the wallet starts up the menu will provide you with a couple of options. At the top of the menu is a greeting to show you that it is running in view only mode:
+ Online (view only) wallet:
   1. Register you account, using registration transaction from the offline (signing) wallet.
   2. View your account balance & transaction history
   3. Generate transactions for the offline wallet to sign.
   4. Submit the signed transactions to the network.
-
Select '0' to exit the wallet.

-4.2 Second run +4.2 Second run
Now that the wallet is already created, you don't provide the restore & seed CLI options anymore:
$ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw
-
-   Menu options:
-   1 Display account Address -- Shows your account address. Share this with people so they can pay you.
-   Note: The address must be the same as that of the offline wallet
-   Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
-   2 Display seed -- This option is not available in the view only wallet.
-   3 Display Keys -- Only the public key is displayed. This must match the public key in the offline wallet
-   4 Account registration to blockchain -- In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address.
-
-Enter the registration transaction (obtained from the offline (signing) wallet): registration,dero1...,...,...;24578
-   Registration TXID 00000057d2f1c0fa1f00849f863fe296e4933c9ed18666587f7fe0f497c03993
-   registration tx dispatched successfully
-
-Note: After the account was registered, the wallet needs to synchronise your account balance. In order to accomplish this, interaction with the offline wallet is required.
+ Menu options:
+ 1 Display account Address
+ Display your account address. Share this with people so they can pay you. This address must match the address in the offline (signing) wallet.
+   Wallet address : dero1abcdef12345678907j0n6ft4yzlm300fxzz2sg84t28g2cp897f5yqghyx4z3
+ 2 Display seed
+ This option is not available in the view only wallet.
+ 3 Display Keys
+ Only the public key is displayed. This must match the public key in the offline wallet
+ 4 Account registration to blockchain
+ In order to use a remote node, i.e. running in 'light mode', where you do not download the full blockchain yourself, the node requires you to register your address.
+   Enter the registration transaction (obtained from the offline (signing) wallet): Paste the registration transaction here
+   Registration TXID <txid number>
+   registration tx dispatched successfully

+ Note: After the account was registered, the wallet needs to synchronise your account balance. In order to accomplish this, interaction between the online & offline wallet is required.

## Using the Online / Offline wallet configuration For the demonstration to work effectively, fund your newly created address with some From b158db43d67e1d77ff2e0b8c15be09db70940987 Mon Sep 17 00:00:00 2001 From: Mullroy <81013624+mullroy@users.noreply.github.com> Date: Thu, 14 Dec 2023 15:55:40 +0200 Subject: [PATCH 16/18] Update README_offline_transaction_signing.md --- README_offline_transaction_signing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md index 3852349a..f4abeb75 100644 --- a/README_offline_transaction_signing.md +++ b/README_offline_transaction_signing.md @@ -112,7 +112,7 @@ shortfalls: The authorised transaction is copied back to the online wallet and submitted to the network for processing. 7. Summary - Pirate's Treasure Chest wallet gives you access to these features today: + The Dero CLI wallet gives you access to these features today: * BIP39 master seed * Split addresses between two wallets. The offline contains the private keys and the online the viewing and spending keys. From 6da9a52502971085123c7e59dbec94ea2abaa222 Mon Sep 17 00:00:00 2001 From: Mullroy <81013624+mullroy@users.noreply.github.com> Date: Thu, 14 Dec 2023 16:53:05 +0200 Subject: [PATCH 17/18] Update README_offline_transaction_signing.md --- README_offline_transaction_signing.md | 96 ++++++++++----------------- 1 file changed, 35 insertions(+), 61 deletions(-) diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md index f4abeb75..3f390ec3 100644 --- a/README_offline_transaction_signing.md +++ b/README_offline_transaction_signing.md @@ -152,7 +152,7 @@ shortfalls: $ go build

The new application is called: dero-wallet-cli -3 Offline machine
+3 Offline machine with the signing wallet
3.1 First run
From a terminal console, launch the application: ./dero-wallet-cli --help
We will use the following command line options:
@@ -201,7 +201,7 @@ shortfalls:    Found the registration transaction. Import the complete text into the online (view only) wallet:
   registration,dero1<registration text>;24578


-4 Online machine
+4 Online machine with the view only wallet
4.1 First run
From a terminal console, launch the application: ./dero-wallet-cli --help
We will use the following command line options:
@@ -246,66 +246,40 @@ Select '0' to exit the wallet.
  registration tx dispatched successfully

Note: After the account was registered, the wallet needs to synchronise your account balance. In order to accomplish this, interaction between the online & offline wallet is required.

-## Using the Online / Offline wallet configuration - For the demonstration to work effectively, fund your newly created address with some - Dero by sending some cents (0.xx) to it, either from an online exchange or from one - of your existing wallets with a balance. - -1. Balance enquiry and transaction history - The blockchain data is received by the online (view only) wallet. The data needs - to be decrypted before the information can be processed. The secret key, located - in the offline (signing) wallet, is required to accomplish this. - - Each time the online wallet receives a block which contains transaction information - for your address, a part of the information needs to be send to the offline wallet - for decryption. - - The online wallet will automatically create a file called 'offline_request' in the - current working directory, where the wallet is running. - - For testing purposes, if you run the online & offline copies in the same directory, - on the same machine, then the file created by the online wallet (offline_request) - will immediately be detected by the offline (signing) wallet and automatically - processed. If you run a production setup where the two wallets are completely - separate, then you'll have to copy the file (offline_request) from the online machine - to the offline machine yourself. - - The prompts are as follow: - Online wallet: - The blockchain interaction occurs in the background. After a block is detected this - text will appear: - Interaction with offline wallet required. Saved request to: ./offline_request - Searching for 60 seconds for the response at: ./offline_response - The 'offline_request' file must be copied to the offline wallet. - - Offline wallet: - After the 'offline_request' file is copied to its home directory, the wallet - will detect the presense of the file automatically and process it automatically: - Found ./offline_request -- new decryption request - Saved result in ./offline_response - The 'offline_response' file must be copied back to the online wallet - - Online wallet: - Found a valid response - - This exchange happens for each transaction that you receive or spend on your - address. Your balance will be shown as part of the command prompt. You can - view the transaction history under menu entry 13: Show transaction history - +## Using the split Online / Offline wallet configuration + For the demonstration to work effectively, fund your newly created address with some Dero by sending some cents (0.xx) to it, either from an online exchange or from one of your existing wallets with a balance.
+
+1. Balance enquiry and transaction history
+ The online (view only) wallet connects to the remote node and retrieves the blockchain data that matches your wallet address. The data needs to be decrypted before the information can be processed. The secret key, located in the offline (signing) wallet, is required to accomplish this.
+ Each time the online wallet receives a block which contains transaction information for your address, a part of the information needs to be send to the offline wallet for decryption.
+ The online wallet will automatically create a file called 'offline_request' in the prefix directory. The prefix is specified as a command line option when the application is started, i.e.: $ ./dero-wallet-cli --prefix=/tmp, along with the other command line options passed to the application.

+ For testing purposes, if you run the online & offline wallets on the same machine with the same prefix, the file created by the online wallet (offline_request) will be immediately detected by the offline (signing) wallet and automatically processed. If you run a production setup where the two wallets are on separate computers, you'll have to copy the file (offline_request) manually from the online machine to the offline machine.
+ The prompts are as follow:
+ Online wallet:
+ The blockchain interaction occurs in the background. After a transaction applicable to your address is detected this text will appear:
+   Interaction with offline wallet required. Saved request to: /prefix/offline_request
+   Waiting 60 seconds for the response at: /prefix/offline_response

+ The 'offline_request' file must be copied to the offline wallet.
+ Offline wallet:
+ After the 'offline_request' file is copied to the specified prefix directory, the wallet will detect the presense of the file automatically and process it. The wallet reports:
+   Found /prefix/offline_request -- new decryption request
+   Saved result in /prefix/offline_response

+ The 'offline_response' file must be copied back to the online wallet.
+ Online wallet:
+ As soon as the response file is detected the wallet reports:
+   Found a valid response
+
+ This exchange happens for each transaction that you receive or spend on your address. Your balance will be shown as part of the command prompt. You can view the transaction history under menu entry 13 Show transaction history.
+ If you use a Pirate+ hardware wallet the data exchange happens in the background. No manual copying of files are required.
+
2. Spend transaction - In order to spend your hard earned Dero you first need to fund your address, - as suggested at the top of this chapter. The online (view only) wallet will - pick up the transaction from the remote node. The transaction history and - account balance will be updated, after you've decrypted the data files as - described above in 5.1 - - The prompts are as follow: - Online wallet: - Select option '5' to prepare the transaction. - Enter the destination address, amount, destination port and comment - After the transaction is confirmed, the wallet prepares all the data and - saves it to 'transaction' in the current working directory where the - wallet is executing. + In order to spend your hard earned Dero you first need to fund your address, as suggested at the top of this chapter. The online (view only) wallet will pick up the transaction from the remote node. The transaction history and account balance will be updated, after you've decrypted the data files, as described above in 5.1.
+
+ To create a transaction the prompts are as follow:
+ Online wallet:
+ Select option '5 Prepare (DERO) transaction (for the offline wallet to sign)' to prepare the transaction.
+ Enter the destination address and amount. The destination port and comment are optional
+ After the transaction is confirmed, the wallet prepares all the data and saves it to 'transaction' in the current working directory where the wallet is executing. This file must be copied to the offline wallet and placed in its working directory. From d1ef6f1e92c3a8297b4b22f40903269d7c3a0a68 Mon Sep 17 00:00:00 2001 From: Mullroy <81013624+mullroy@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:10:37 +0200 Subject: [PATCH 18/18] Update README_offline_transaction_signing.md --- README_offline_transaction_signing.md | 96 ++++++++++++--------------- 1 file changed, 42 insertions(+), 54 deletions(-) diff --git a/README_offline_transaction_signing.md b/README_offline_transaction_signing.md index 3f390ec3..79227d81 100644 --- a/README_offline_transaction_signing.md +++ b/README_offline_transaction_signing.md @@ -35,7 +35,7 @@ shortfalls: The problem of loosing addresses and their private keys were mitigated with the implementation of BIP39 mnemonic seed phrases. A single master key is created. All the addresses in that wallet are derived from the master key. To the user - the master key is presented as a random 24 word (natural language) phrase, + the master key is presented as a random 25 word (natural language) phrase, called a mnemonic. When the wallet is created this phrase must be written down and stored in a secure @@ -63,26 +63,27 @@ shortfalls: As seen above, BIP39 guards against loosing access to your individual addresses. It however does not provide additional protection of loosing the actual wallet file to an attacker. - On Dero the wallet file can be encrypted with a password. If an attacker obtains + On Dero the wallet file is encrypted with a password. If an attacker obtains the wallet file, they will not be able to open it. Your security is based on choosing a long, secure password which can withstand a brute force attack. -5. Offline cold storage +5. Offline cold storage
Two computers are required for this setup. One is connected to the internet while the other has no network connectivity. The machine without network access is called the offline machine. On it you setup an encrypted wallet with mnemonic seed phrase. The machine doesn't have - a copy of the blockchain. + a copy of the blockchain. This wallet will perform transaction signing (authorisation). The machine with internet access is called the online machine. This machine - is synchronised with the blockchain. + is synchronised with the blockchain. This wallet is called the viewing wallet. It displays + your balance and transaction history and can compile a transaction, but not authorise it.
- This process adds two levels of complexity: - * How do you view the transactions & balance of an address in the offline wallet? - * How do you spend the funds of an address in the offline wallet? - - The Dero command line (CLI) wallet overcomes these obstacles as follow: + This process adds two levels of complexity:
+ * How do you view the transactions & balance of an address located in the offline wallet?
+ * How do you spend the funds of an address located in the offline wallet?
+
+ The Dero command line (CLI) wallet overcomes these obstacles as follow:
Viewing the transaction history
The Dero blockchain is encrypted. None of the transaction data is visible on @@ -106,12 +107,12 @@ shortfalls: key as well. Spend the funds
- The online wallet can construct a transaction for its address. All the required - inputs are contained in this transaction. The transaction is stored in a data file. - The file must be copied to the offline machine. There the secret key authorises (signs) the transaction. - The authorised transaction is copied back to the online wallet and submitted to the network for processing. + The online wallet can construct a transaction. All the required inputs are contained in this transaction. + The transaction is stored in a data file. The file must be copied to the offline machine. There the secret + key authorises (signs) the transaction. The authorised transaction is copied back to the online wallet and + submitted to the network for processing. -7. Summary +6. Summary The Dero CLI wallet gives you access to these features today: * BIP39 master seed * Split addresses between two wallets. The offline contains the private keys @@ -150,10 +151,9 @@ shortfalls: $ git clone https://github.com/deroproject/derohe
$ cd derohe/cmd/dero-wallet-cli
$ go build

- The new application is called: dero-wallet-cli - -3 Offline machine with the signing wallet
-3.1 First run
+ The new application is called: dero-wallet-cli
+3. Offline machine with the signing wallet
+3.1. First run
From a terminal console, launch the application: ./dero-wallet-cli --help
We will use the following command line options:
--offline - Specify that this wallet is an offline (signing) wallet
@@ -169,12 +169,11 @@ shortfalls: $ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw --restore-deterministic-wallet --electrum-seed="your 25 seedphrase words here"
After the wallet starts up the menu will provide you with a couple of options. At the top of the menu is a greeting to show you that it is running in offline mode:
 Offline (signing) wallet:
-   1. Setup the online wallet with the exported public key
+   1. Exported public key to setup the online (view only) wallet
   2. Generate a registration transaction for the online wallet
   3. Sign spend transactions for the online wallet
Select '0' to exit the wallet.
- -3.2 Second run
+3.2. Second run
Now that the wallet is already created, you don't provide the restore & seed CLI options anymore:
$ ./dero-wallet-cli --offline --wallet-file=offline.db --password=someexamplepw
Menu options:
@@ -200,8 +199,7 @@ shortfalls:    Found transaction:
   Found the registration transaction. Import the complete text into the online (view only) wallet:
   registration,dero1<registration text>;24578
-
-4 Online machine with the view only wallet
+4. Online machine with the view only wallet
4.1 First run
From a terminal console, launch the application: ./dero-wallet-cli --help
We will use the following command line options:
@@ -214,20 +212,17 @@ An example will be:
The software will have these 2 prompts:
   Enter wallet filename (default viewonly.db): Just press enter to accept the default
   Enter the view only key (obtained from the offline (signing) wallet): Paste the viewing key here
-
If the key was accepted, you'll get this confirmation:
   Successfully restored an online (view only) wallet
   Address: dero1<Your address>
   Public key: <Your public key>
-
After the wallet starts up the menu will provide you with a couple of options. At the top of the menu is a greeting to show you that it is running in view only mode:
 Online (view only) wallet:
   1. Register you account, using registration transaction from the offline (signing) wallet.
   2. View your account balance & transaction history
   3. Generate transactions for the offline wallet to sign.
   4. Submit the signed transactions to the network.
-Select '0' to exit the wallet.
-
+ Select '0' to exit the wallet.
4.2 Second run
Now that the wallet is already created, you don't provide the restore & seed CLI options anymore:
$ ./dero-wallet-cli --remote --wallet-file=viewonly.db --password=someexamplepw
@@ -245,10 +240,8 @@ Select '0' to exit the wallet.
  Registration TXID <txid number>
  registration tx dispatched successfully

Note: After the account was registered, the wallet needs to synchronise your account balance. In order to accomplish this, interaction between the online & offline wallet is required.
-
## Using the split Online / Offline wallet configuration For the demonstration to work effectively, fund your newly created address with some Dero by sending some cents (0.xx) to it, either from an online exchange or from one of your existing wallets with a balance.
-
1. Balance enquiry and transaction history
The online (view only) wallet connects to the remote node and retrieves the blockchain data that matches your wallet address. The data needs to be decrypted before the information can be processed. The secret key, located in the offline (signing) wallet, is required to accomplish this.
Each time the online wallet receives a block which contains transaction information for your address, a part of the information needs to be send to the offline wallet for decryption.
@@ -268,33 +261,28 @@ Select '0' to exit the wallet.
Online wallet:
As soon as the response file is detected the wallet reports:
  Found a valid response
-
This exchange happens for each transaction that you receive or spend on your address. Your balance will be shown as part of the command prompt. You can view the transaction history under menu entry 13 Show transaction history.
If you use a Pirate+ hardware wallet the data exchange happens in the background. No manual copying of files are required.
-
-2. Spend transaction +2. Spend transaction
In order to spend your hard earned Dero you first need to fund your address, as suggested at the top of this chapter. The online (view only) wallet will pick up the transaction from the remote node. The transaction history and account balance will be updated, after you've decrypted the data files, as described above in 5.1.
-
To create a transaction the prompts are as follow:
Online wallet:
- Select option '5 Prepare (DERO) transaction (for the offline wallet to sign)' to prepare the transaction.
+ Select option 5 Prepare (DERO) transaction (for the offline wallet to sign) to prepare the transaction.
Enter the destination address and amount. The destination port and comment are optional
- After the transaction is confirmed, the wallet prepares all the data and saves it to 'transaction' in the current working directory where the wallet is executing. - - This file must be copied to the offline wallet and placed in its working - directory. - - Offline wallet: - Select optio '5' to tell the wallet to sign the transaction. The output - of the wallet is: - Read 4680 bytes from ./transaction - Saved signed transaction to ./signed. Return it to the online (view only) - wallet to complete the transaction. - - Online wallet: - As per instruction, return ./signed to the online wallet. When the wallet - detect the file it will print a message: - Read 6465 bytes from ./signed. The checksum passed. Continue to submit the transaction - INFO wallet Dispatched tx {"txid": "c3cf9c408b43d7a7a9d2bcd603acdb6e70d89418014546e1bdbba755ac1ce427"} - -Congratulations, you've successfully created and send a transaction using an offline wallet + After the transaction is confirmed, the wallet prepares all the data and saves it to /prefix/offline_request.
+ This file must be copied to the offline wallet and placed in its /prefix directory.
+ Offline wallet:
+ As soon as the wallet detects the offline request file and determine that it is a transaction that must be signed, a + prompt is presented:
+   Found /tmp/offline_request -- new decryption request
+   Detected new transaction sign request. Authorise the request with menu option '5: Sign'.

+ Enter '5' on the prompt to tell the wallet to sign the transaction. The expected feedback is:
+   Read XXXX bytes from /prefix/transaction
+   Saved result in /prefix/offline_response

+ Return the file to the online (view only) wallet to complete the transaction.
+ Online wallet:
+ As per instruction, return offline_response to the online wallet. When the wallet detect the file it will print this message:
+   Read XXXX bytes from /prefix/offline_response
+   Ready to broadcast the transaction
+   INFO wallet Dispatched tx {"txid": "<tx id>"}

+Congratulations, you've successfully created and send a transaction using an online/offline split wallet