@@ -160,7 +160,8 @@ const handleSignUtxo = function(recoveryRequest, key, skipConfirm) {
160
160
const handleSignEthereum = function ( recoveryRequest , key , skipConfirm ) {
161
161
const EthTx = require ( 'ethereumjs-tx' ) ;
162
162
163
- const transaction = new EthTx ( recoveryRequest . tx ) ;
163
+ const txHex = getTransactionHexFromRequest ( recoveryRequest ) ;
164
+ const transaction = new EthTx ( txHex ) ;
164
165
const decimals = coinDecimals [ recoveryRequest . coin ] ;
165
166
166
167
const customMessage = recoveryRequest . custom ? recoveryRequest . custom . message : 'None' ;
@@ -192,13 +193,10 @@ const handleSignXrp = function(recoveryRequest, key, skipConfirm) {
192
193
const rippleKeypairs = require ( 'ripple-keypairs' ) ;
193
194
const rippleParse = require ( 'ripple-binary-codec' ) ;
194
195
195
- // handle different input formats
196
- if ( ! recoveryRequest . txHex ) {
197
- recoveryRequest . txHex = recoveryRequest . tx || recoveryRequest . transactionHex ;
198
- }
196
+ const txHex = getTransactionHexFromRequest ( recoveryRequest ) ;
199
197
200
198
const decimals = coinDecimals [ recoveryRequest . coin ] ;
201
- const transaction = rippleParse . decode ( recoveryRequest . txHex ) ;
199
+ const transaction = rippleParse . decode ( txHex ) ;
202
200
const customMessage = recoveryRequest . custom ? recoveryRequest . custom . message : 'None' ;
203
201
204
202
const outputs = [ {
@@ -217,9 +215,9 @@ const handleSignXrp = function(recoveryRequest, key, skipConfirm) {
217
215
218
216
const backupAddress = rippleKeypairs . deriveAddress ( backupKeyNode . keyPair . getPublicKeyBuffer ( ) . toString ( 'hex' ) ) ;
219
217
const privateKeyHex = backupKeyNode . keyPair . getPrivateKeyBuffer ( ) . toString ( 'hex' ) ;
220
- const cosignedTx = utils . signXrpWithPrivateKey ( recoveryRequest . txHex , privateKeyHex , { signAs : backupAddress } ) ;
218
+ const cosignedTx = utils . signXrpWithPrivateKey ( txHex , privateKeyHex , { signAs : backupAddress } ) ;
221
219
222
- return rippleApi . combine ( [ recoveryRequest . txHex , cosignedTx . signedTransaction ] ) . signedTransaction ;
220
+ return rippleApi . combine ( [ txHex , cosignedTx . signedTransaction ] ) . signedTransaction ;
223
221
} ;
224
222
225
223
const handleSignXlm = function ( recoveryRequest , key , skipConfirm ) {
@@ -233,7 +231,8 @@ const handleSignXlm = function(recoveryRequest, key, skipConfirm) {
233
231
234
232
const decimals = coinDecimals [ recoveryRequest . coin ] ;
235
233
236
- const transaction = new stellar . Transaction ( recoveryRequest . tx ) ;
234
+ const txHex = getTransactionHexFromRequest ( recoveryRequest ) ;
235
+ const transaction = new stellar . Transaction ( txHex ) ;
237
236
const customMessage = recoveryRequest . custom ? recoveryRequest . custom . message : 'None' ;
238
237
239
238
if ( transaction . operations . length !== 1 ) {
@@ -276,7 +275,8 @@ const handleSignXlm = function(recoveryRequest, key, skipConfirm) {
276
275
const handleSignErc20 = function ( recoveryRequest , key , skipConfirm ) {
277
276
const EthTx = require ( 'ethereumjs-tx' ) ;
278
277
279
- const transaction = new EthTx ( recoveryRequest . tx ) ;
278
+ const txHex = getTransactionHexFromRequest ( recoveryRequest ) ;
279
+ const transaction = new EthTx ( txHex ) ;
280
280
281
281
const customMessage = recoveryRequest . custom ? recoveryRequest . custom . message : 'None' ;
282
282
const txData = transaction . data ;
@@ -332,6 +332,23 @@ const parseKey = function(rawkey, coin, path) {
332
332
return rawkey ;
333
333
}
334
334
335
+ /**
336
+ Not all recoveryRequest files are formatted the same. Sometimes they have 'tx', 'txHex', or 'transactionHex'
337
+ This function gets and gets and returns the transaction hex in all of these cases
338
+ */
339
+ const getTransactionHexFromRequest = function ( recoveryRequest ) {
340
+ if ( recoveryRequest . tx ) {
341
+ return recoveryRequest . tx
342
+ }
343
+ if ( recoveryRequest . txHex ) {
344
+ return recoveryRequest . txHex
345
+ }
346
+ if ( recoveryRequest . transactionHex ) {
347
+ return recoveryRequest . transactionHex
348
+ }
349
+ throw new Error ( "The recovery request did not provide a transaction hex" ) ;
350
+ }
351
+
335
352
const handleSign = function ( args ) {
336
353
const file = args . file ;
337
354
0 commit comments