From 5352199867409a38088a809b91353ccf8699b757 Mon Sep 17 00:00:00 2001 From: Alejo Acosta Date: Mon, 3 Feb 2025 15:44:25 -0600 Subject: [PATCH 1/6] fix protobuf error on send qi unit test --- testcases/qi-wallet-scan-and-send.json.gz | Bin 8138 -> 8136 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/testcases/qi-wallet-scan-and-send.json.gz b/testcases/qi-wallet-scan-and-send.json.gz index 3d8bd55558db91a288097b9486e0092bdc1b29d1..20359f6a1f243442c8dbfd40f794d4055ae22272 100644 GIT binary patch delta 7018 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

#*!K{bx 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 F_CMi7&UXL+ delta 7019 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 From ea29891008e6f5b5edb309eebb8b6664fed6f452 Mon Sep 17 00:00:00 2001 From: Alejo Acosta Date: Mon, 3 Feb 2025 15:49:54 -0600 Subject: [PATCH 2/6] fix protobuf error on convert to Quai unit test --- ...qi-wallet-scan-and-convert-to-quai.json.gz | Bin 5525 -> 5605 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/testcases/qi-wallet-scan-and-convert-to-quai.json.gz b/testcases/qi-wallet-scan-and-convert-to-quai.json.gz index c6522c65154ee323bf03ac8810faef95045d2841..1cabdcf893c777ca3fc81095dff1a1a45b36a43e 100644 GIT binary patch delta 3409 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 n_uZeALP8@$IlZ?2Lakq0$2KA30Uj6%r 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 K@t5giT>t=!v5 Date: Mon, 3 Feb 2025 16:37:27 -0600 Subject: [PATCH 3/6] fix legacy wallet signing test --- src/_tests/unit/wallet.unit.test.ts | 12 +----------- testcases/transactions.json.gz | Bin 378 -> 440 bytes 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/_tests/unit/wallet.unit.test.ts b/src/_tests/unit/wallet.unit.test.ts index ac3d8a8f..8449ae88 100644 --- a/src/_tests/unit/wallet.unit.test.ts +++ b/src/_tests/unit/wallet.unit.test.ts @@ -4,13 +4,7 @@ import { loadTests } from '../utils.js'; import type { TestCaseAccount, TestCaseTypedData, TestCaseTransaction } from '../types.js'; -import { - // hexlify, - // randomBytes, - Wallet, -} from '../../index.js'; - -// import type { QuaiHDWallet } from "../index.js"; +import { Wallet } from '../../index.js'; describe('Test Private Key Wallet', function () { const tests = loadTests('accounts'); @@ -39,10 +33,6 @@ describe('Test Transaction Signing', function () { gasLimit: 0, }); const signed = await wallet.signTransaction(txData); - // let parsed = Transaction.from(signed); - // // console.log('txData: ', JSON.stringify(parsed)) - // // console.log('EXPECTED: ', test.signedEip155) - // // console.log("ACTUAL: ", signed) assert.equal(signed, test.signed, 'signed'); }); } diff --git a/testcases/transactions.json.gz b/testcases/transactions.json.gz index 92bd52169092021a635363b5fe494f871e61720f..4f8998fb04253d13828d7d7522cb924bf3fbdc1c 100644 GIT binary patch literal 440 zcmV;p0Z0BHiwFqZL!oB?19Wm>ZgXK{bZKvHb1rIgZ*Bm!l1YkNK@5iXK85i*0ZBEe zD$AZWIYP)nrILanZ3nk)x(T^^^gNIg1l~iXp?-ZT^li2Ny;`p~J9)Lum-Xf#ySab; z44Y3&^ce1&=yAK>MRF;O*nX*lcYu=mPKDShR!UW zpc>N^`Lui6{@B^PK{fy+%y(F|WD|VeV08qn`2}_?uo(43fN?2KiQ*T495#n7VXs~O zYmdkjA(+$3?1^WMsP&X*raX&x@vIQJk*jA8U2&KqDvUfDi;jksy+)Jjam`DPH&U9z zLRXt{tBUTeQ5|IFm5B=kK;tE>OG;(d&i|&BMZgXK{bZKvHb1rIgZ*Bm!Qp;`|F$}!>D;9fh0Fru8 z>M^fNJ|XBqqR7HPvo0JvXc6?^%k?_w2ebtwP!y?|p)k+8>3ug%^U_{){yfdcwv5Be z4a}d`+molSO-}p6;>ESm?+$Ap`~XOycA>k6p!e{251~pbba%@D5073e{T5=y3(_>d zwQuK@0X_S50sns7zqOM->CX)?sY%_RtH=U?gz-bHXwU&Ru41LTShb7TzKTWfCj#_GehTEf0Ys0{WAeDM z{9lgL)@t@9$Q^SN!Y*7YCzD=*j8hw<)S(t6M~b-_Ff(?}!b!uR>I9fHH~*_bIYEYi zrV(0GX7fCC6R$*ZKca<7N$& Y+|_UnM`d-}&exaSZ}`1)5$XZ}0MW6%j{pDw From b5b7ae2b4165aaee1b0704865b9f53993569f677 Mon Sep 17 00:00:00 2001 From: Alejo Acosta Date: Mon, 3 Feb 2025 16:38:37 -0600 Subject: [PATCH 4/6] fix quai hd wallet signing unit test --- testcases/quai-transaction.json.gz | Bin 541 -> 534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/testcases/quai-transaction.json.gz b/testcases/quai-transaction.json.gz index 5d3221608c5cd8f1ec9c6c9ebd3b67c9fa3e0d5d..f453c156653f6dbacc82d52d1b5cf211513edeac 100644 GIT binary patch literal 534 zcmV+x0_pu9iwFop2B2pE195d>X)SbeVQzC_V{~b6ZZ2wbZ*BlhkU5XrFc5`n`&SUE z6JU6VN4m{=4FpJ$B3+PT#A8iFBn^qa66}8uWqS`c65sHBZ)Se2SO3d%$T`%-V6?s392w?3C?R^8u{uj9ZOZlkO^w6+{_Z7Q_;%hgrexHHK2EJ-;dJ_cIz|`g*V0RevH`lyInwykMwo4yyyFTOm zJ*K$yK;e3BdWzXkKjZ#gf3G#qk11X$96p{~xt7;n*;Xjcnb4kXn zXt{y&VEtf)8iEKEjN_6D*}{9r+LnxU%41LzG;gm2SAj9lo#c`Mvfd5c8EZ9iEuHK& Y2xWE8d$iqp^|Jo`ABr;{nH2*702hq}jQ{`u literal 541 zcmV+&0^X)SbeVQzC_V{~b6ZZ2wbZ*Blhk-KgiF%U&-=_`n> z6JYoz(>az61W1u0U65jy4~xi>6m}`uPT+qJSCSuWxV*!A<_`DQcJpt$*$f497`~8U z#^P)K48x~Y%_Zbol3ObwAL?V6iL3PwIi)(KLUNj>R10~mbt3ICOs7CnIn{OVwm^I> z*aE?0+t-<7%o!)L;MB-mpV!ZQI(6ol=C&twdd`RBNXTRL&txB_sgf~-NS0%2BrSDX zVL3eoPg;0tWI5D!NqWE;^U`y!(`<&nwVcO+C%BBV8PK_UEUl~1&o5_J>*FryTA$&~ z8t0l{t(x8K?Cy>;W#f%i7;kS3vpe`|xRo{vYJln8wSn7XD&KtfT4gU%sl}~1;BtJx z<$KC$%|PM2E_zNS%sXg zjavD@Z#lEqtS6j~D^jpC>+M07^iYDoA`Jj#RCIKFLwgnD6^+J$zoK17_s0OnfD52X z0P9sFxaYkCN9ek Date: Mon, 3 Feb 2025 16:53:00 -0600 Subject: [PATCH 5/6] fix legacy transaction unit test --- testcases/transactions.json.gz | Bin 440 -> 373 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/testcases/transactions.json.gz b/testcases/transactions.json.gz index 4f8998fb04253d13828d7d7522cb924bf3fbdc1c..237b81a48c13318cdf81615e9ee18db8b4723c84 100644 GIT binary patch literal 373 zcmV-*0gC<~iwFpbMxkc_19Wm>ZgXK{bZKvHb1rIgZ*Bm!Qp-*xF$}!VSG4*JlJj)3 zM_v~`0da5~8;!K|pkW4q5dV%d4dMfKkulb8aCXT4g13(VqSa_MSzT3r zRl|@(9(tG5YrvkZD>cL(ee6jqX=E_0#jFvHmlQe?6FO`KiCb|QHJeCQJEkex8?oZgXK{bZKvHb1rIgZ*Bm!l1YkNK@5iXK85i*0ZBEe zD$AZWIYP)nrILanZ3nk)x(T^^^gNIg1l~iXp?-ZT^li2Ny;`p~J9)Lum-Xf#ySab; z44Y3&^ce1&=yAK>MRF;O*nX*lcYu=mPKDShR!UW zpc>N^`Lui6{@B^PK{fy+%y(F|WD|VeV08qn`2}_?uo(43fN?2KiQ*T495#n7VXs~O zYmdkjA(+$3?1^WMsP&X*raX&x@vIQJk*jA8U2&KqDvUfDi;jksy+)Jjam`DPH&U9z zLRXt{tBUTeQ5|IFm5B=kK;tE>OG;(d&i|&BM Date: Wed, 5 Feb 2025 12:29:31 -0600 Subject: [PATCH 6/6] force ordering of address and pub keys in QiHDWallet prepare tx --- src/wallet/qi-hdwallet.ts | 56 +++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/wallet/qi-hdwallet.ts b/src/wallet/qi-hdwallet.ts index 762847cc..a031d2a8 100644 --- a/src/wallet/qi-hdwallet.ts +++ b/src/wallet/qi-hdwallet.ts @@ -697,23 +697,10 @@ export class QiHDWallet extends AbstractHDWallet { const sendAddressesInfo = this.getUnusedBIP44Addresses(1, 0, 'BIP44:external', zone); const sendAddresses = sendAddressesInfo.map((addressInfo) => addressInfo.address); const changeAddresses: string[] = []; - const inputPubKeys = selection.inputs.map((input) => { - const addressInfo = this.locateAddressInfo(input.address); - if (!addressInfo) { - throw new Error(`Could not locate address info for address: ${input.address}`); - } - return addressInfo.pubKey; - }); // Proceed with creating and signing the transaction const chainId = (await this.provider.getNetwork()).chainId; - const tx = await this.prepareTransaction( - selection, - inputPubKeys, - sendAddresses, - changeAddresses, - Number(chainId), - ); + const tx = await this.prepareTransaction(selection, sendAddresses, changeAddresses, Number(chainId)); // Sign the transaction const signedTx = await this.signTransaction(tx); @@ -845,13 +832,7 @@ export class QiHDWallet extends AbstractHDWallet { // Proceed with creating and signing the transaction const chainId = (await this.provider.getNetwork()).chainId; - const tx = await this.prepareTransaction( - selection, - inputPubKeys.map((pubkey) => pubkey!), - sendAddresses, - changeAddresses, - Number(chainId), - ); + const tx = await this.prepareTransaction(selection, sendAddresses, changeAddresses, Number(chainId)); // Sign the transaction const signedTx = await this.signTransaction(tx); @@ -872,17 +853,40 @@ export class QiHDWallet extends AbstractHDWallet { */ private async prepareTransaction( selection: SelectedCoinsResult, - inputPubKeys: string[], sendAddresses: string[], changeAddresses: string[], chainId: number, ): Promise { const tx = new QiTransaction(); - tx.txInputs = selection.inputs.map((input, index) => ({ - txhash: input.txhash!, - index: input.index!, - pubkey: inputPubKeys[index], + + interface InputWithPubKey { + utxo: UTXO; + pubKey: string; + } + + const inputsWithPubKeys: InputWithPubKey[] = selection.inputs.map((input) => { + const addressInfo = this.locateAddressInfo(input.address); + if (!addressInfo?.pubKey) { + throw new Error(`Missing public key for input address: ${input.address}`); + } + return { + utxo: input, + pubKey: addressInfo.pubKey, + }; + }); + + tx.txInputs = inputsWithPubKeys.map((input) => ({ + txhash: input.utxo.txhash!, + index: input.utxo.index!, + pubkey: input.pubKey, })); + + // // 5.1 Create the "sender" inputs + // tx.txInputs = selection.inputs.map((input, index) => ({ + // txhash: input.txhash!, + // index: input.index!, + // pubkey: inputPubKeys[index], + // })); // 5.3 Create the "sender" outputs const senderOutputs = selection.spendOutputs.map((output, index) => ({ address: sendAddresses[index],