@ledgerhq/live-common 21.16.1 → 21.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.js +85 -0
- package/lib/__tests__/families/bitcoin/wallet-btc/utils.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js +2 -2
- package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js +20 -10
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.js +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.js +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.js.map +1 -1
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.js +2 -2
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.js.map +1 -1
- package/lib/apps/polyfill.d.ts.map +1 -1
- package/lib/apps/polyfill.js +3 -0
- package/lib/apps/polyfill.js.map +1 -1
- package/lib/currencies/support.d.ts.map +1 -1
- package/lib/currencies/support.js.map +1 -1
- package/lib/families/bitcoin/js-buildTransaction.d.ts.map +1 -1
- package/lib/families/bitcoin/js-buildTransaction.js +1 -1
- package/lib/families/bitcoin/js-buildTransaction.js.map +1 -1
- package/lib/families/bitcoin/js-estimateMaxSpendable.d.ts.map +1 -1
- package/lib/families/bitcoin/js-estimateMaxSpendable.js +1 -1
- package/lib/families/bitcoin/js-estimateMaxSpendable.js.map +1 -1
- package/lib/families/bitcoin/js-synchronisation.d.ts.map +1 -1
- package/lib/families/bitcoin/js-synchronisation.js +3 -2
- package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.d.ts +2 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.js +16 -12
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.d.ts +2 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.js +12 -7
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.d.ts +2 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.js +12 -7
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/Merge.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.d.ts +2 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/pickingstrategies/types.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/utils.d.ts +38 -2
- package/lib/families/bitcoin/wallet-btc/utils.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/utils.js +103 -35
- package/lib/families/bitcoin/wallet-btc/utils.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/wallet.d.ts +1 -1
- package/lib/families/bitcoin/wallet-btc/wallet.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/wallet.js +6 -5
- package/lib/families/bitcoin/wallet-btc/wallet.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/xpub.js +2 -2
- package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
- package/lib/operation.js +1 -1
- package/lib/operation.js.map +1 -1
- package/package.json +5 -5
- package/src/.DS_Store +0 -0
- package/src/__tests__/__snapshots__/all.libcore.ts.snap +1188 -630
- package/src/__tests__/families/bitcoin/wallet-btc/utils.test.ts +105 -0
- package/src/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.ts +3 -2
- package/src/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.ts +2 -2
- package/src/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.ts +35 -31
- package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.NP2WPKH.integration.test.ts +3 -2
- package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.P2WPKH.integration.test.ts +3 -2
- package/src/__tests__/families/bitcoin/wallet-btc/xpub.txs.integration.test.ts +6 -4
- package/src/apps/polyfill.ts +3 -0
- package/src/currencies/.DS_Store +0 -0
- package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +3 -1
- package/src/currencies/support.ts +1 -0
- package/src/families/bitcoin/js-buildTransaction.ts +2 -1
- package/src/families/bitcoin/js-estimateMaxSpendable.ts +2 -1
- package/src/families/bitcoin/js-synchronisation.ts +4 -2
- package/src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts +34 -22
- package/src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts +30 -9
- package/src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts +30 -9
- package/src/families/bitcoin/wallet-btc/pickingstrategies/types.ts +3 -3
- package/src/families/bitcoin/wallet-btc/utils.ts +113 -41
- package/src/families/bitcoin/wallet-btc/wallet.ts +9 -6
- package/src/families/bitcoin/wallet-btc/xpub.ts +5 -5
- package/src/operation.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-synchronisation.d.ts","sourceRoot":"","sources":["../../../src/families/bitcoin/js-synchronisation.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,OAAO,EAIR,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"js-synchronisation.d.ts","sourceRoot":"","sources":["../../../src/families/bitcoin/js-synchronisation.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,OAAO,EAIR,MAAM,aAAa,CAAC;AAuYrB,eAAO,MAAM,YAAY;;;;;;uEAAkD,CAAC;AAC5E,eAAO,MAAM,IAAI,kIAAsC,CAAC"}
|
|
@@ -184,8 +184,9 @@ var mapTxToOperations = function (tx, currencyId, accountId, accountAddresses, c
|
|
|
184
184
|
if (output.address) {
|
|
185
185
|
if (!accountAddresses.includes(output.address)) {
|
|
186
186
|
// The output doesn't belong to this account
|
|
187
|
-
if (
|
|
188
|
-
// The output isn't the change output
|
|
187
|
+
if (tx.outputs.length === 1 || // The transaction has only 1 output
|
|
188
|
+
output.output_index < changeOutputIndex // The output isn't the change output
|
|
189
|
+
) {
|
|
189
190
|
recipients.push(syncReplaceAddress
|
|
190
191
|
? syncReplaceAddress(output.address)
|
|
191
192
|
: output.address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-synchronisation.js","sourceRoot":"","sources":["../../../src/families/bitcoin/js-synchronisation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"js-synchronisation.js","sourceRoot":"","sources":["../../../src/families/bitcoin/js-synchronisation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,2CAAwE;AACxE,6CAAyC;AACzC,oEAAuC;AACvC,uCAAqC;AACrC,uDAA+D;AAQ/D,oDAA8E;AAC9E,2CAAwD;AACxD,yCAAgD;AAChD,6CAAoD;AACpD,+CAI0B;AAE1B,iCAAuC;AACvC,4DAAkC;AAClC,iDAA4D;AAE5D,0CAA0C;AAC1C,IAAM,sBAAsB,GAAG,UAC7B,IAAoB;IAEpB,IAAI,IAAA,oCAAuB,EAAC,IAAI,CAAC,EAAE;QACjC,OAAO,4BAAqB,CAAC,OAAO,CAAC;KACtC;IACD,IAAI,IAAA,yCAA4B,EAAC,IAAI,CAAC,EAAE;QACtC,OAAO,4BAAqB,CAAC,aAAa,CAAC;KAC5C;IACD,IAAI,IAAA,mCAAsB,EAAC,IAAI,CAAC,EAAE;QAChC,OAAO,4BAAqB,CAAC,MAAM,CAAC;KACrC;IACD,OAAO,4BAAqB,CAAC,MAAM,CAAC;AACtC,CAAC,CAAC;AAEF,8DAA8D;AAC9D,IAAM,eAAe,GAAG,UAAC,UAAkB;IACzC,OAAO,IAAA,oCAAqB,EAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC,CAAC;AAEF,gDAAgD;AAChD,IAAM,cAAc,GAAG,UAAC,IAAkB;IACxC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,WAAW;QACtB,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,wBAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,kFAAkF;AAClF,oCAAoC;AACpC,IAAM,qBAAqB,GAAG,UAC5B,UAAqC;;IAErC,IAAM,IAAI,GAAG,EAAE,CAAC;IAChB,IAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;;QAEV,KAAwB,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE;YAA/B,IAAM,SAAS,uBAAA;YAClB,IAAI,SAAS,EAAE;gBACb,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;oBAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACvB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;iBACtB;aACF;SACF;;;;;;;;;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UACxB,EAAM,EACN,UAAkB,EAClB,SAAiB,EACjB,gBAA0B,EAC1B,eAAyB;;;IAEzB,IAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,IAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,IAAM,GAAG,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,IAAM,WAAW,GAAG,MAAA,EAAE,CAAC,KAAK,0CAAE,MAAM,CAAC;IACrC,IAAM,SAAS,GAAG,MAAA,EAAE,CAAC,KAAK,0CAAE,IAAI,CAAC;IACjC,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAA,MAAA,EAAE,CAAC,KAAK,0CAAE,IAAI,KAAI,EAAE,CAAC,WAAW,CAAC,CAAC;IACxD,IAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,IAAI,GAAkB,KAAK,CAAC;IAChC,IAAI,KAAK,GAAG,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAM,SAAS,GAAG,KAAK,CAAC;IACxB,IAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,IAAM,kBAAkB,GAAG,MAAA,oBAAY,CAAC,UAAU,CAAC,0CAAE,kBAAkB,CAAC;;QAExE,KAAoB,IAAA,KAAA,SAAA,EAAE,CAAC,MAAM,CAAA,gBAAA,4BAAE;YAA1B,IAAM,KAAK,WAAA;YACd,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,OAAO,CAAC,IAAI,CACV,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CACvE,CAAC;gBAEF,IAAI,KAAK,CAAC,KAAK,EAAE;oBACf,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;wBAC5C,sCAAsC;wBACtC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC3B;iBACF;aACF;SACF;;;;;;;;;IAED,0DAA0D;IAC1D,IAAM,yBAAyB,GAC7B,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;IAEvE,IAAM,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,uCAAuC;IACvC,IAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO;SACjC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,YAAY,EAAd,CAAc,CAAC;SAC1B,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC,CAAC;;QAErC,KAAqB,IAAA,KAAA,SAAA,EAAE,CAAC,OAAO,CAAA,gBAAA,4BAAE;YAA5B,IAAM,MAAM,WAAA;YACf,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBAC9C,4CAA4C;oBAC5C,IACE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,oCAAoC;wBAC/D,MAAM,CAAC,YAAY,GAAG,iBAAiB,CAAC,qCAAqC;sBAC7E;wBACA,UAAU,CAAC,IAAI,CACb,kBAAkB;4BAChB,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;4BACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,CAAC;qBACH;iBACF;qBAAM;oBACL,qCAAqC;oBACrC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAE5B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBAC7C,mDAAmD;wBACnD,UAAU,CAAC,IAAI,CACb,kBAAkB;4BAChB,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;4BACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,CAAC;qBACH;yBAAM;wBACL,iDAAiD;wBACjD,wDAAwD;wBACxD,IACE,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;4BACtB,MAAM,CAAC,YAAY,IAAI,iBAAiB,CAAC;4BAC3C,eAAe,EACf;4BACA,UAAU,CAAC,IAAI,CACb,kBAAkB;gCAChB,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;gCACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,CAAC;yBACH;qBACF;iBACF;aACF;SACF;;;;;;;;;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;;YAC5B,wBAAwB;YACxB,KAAqB,IAAA,mBAAA,SAAA,cAAc,CAAA,8CAAA,0EAAE;gBAAhC,IAAM,MAAM,2BAAA;gBACf,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnC;aACF;;;;;;;;;QAED,IAAI,GAAG,KAAK,CAAC;QACb,UAAU,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,IAAA,6BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;YAC5C,IAAI,MAAA;YACJ,IAAI,MAAA;YACJ,KAAK,OAAA;YACL,GAAG,KAAA;YACH,OAAO,SAAA;YACP,UAAU,YAAA;YACV,WAAW,aAAA;YACX,SAAS,WAAA;YACT,yBAAyB,2BAAA;YACzB,SAAS,WAAA;YACT,IAAI,MAAA;YACJ,SAAS,WAAA;YACT,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;KACJ;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,2BAA2B;QAC3B,IAAM,qBAAqB,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;QACrD,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,WAAW,GAAG,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC;;YAEnC,KAAqB,IAAA,mBAAA,SAAA,cAAc,CAAA,8CAAA,0EAAE;gBAAhC,IAAM,MAAM,2BAAA;gBACf,IAAI,CAAC,qBAAqB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBACvE,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7C,kBAAkB,IAAI,CAAC,CAAC;iBACzB;aACF;;;;;;;;;QAED,IAAI,kBAAkB,GAAG,CAAC,EAAE;YAC1B,KAAK,GAAG,WAAW,CAAC;YACpB,IAAI,GAAG,IAAI,CAAC;YACZ,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,IAAA,6BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;gBAC5C,IAAI,MAAA;gBACJ,IAAI,MAAA;gBACJ,KAAK,OAAA;gBACL,GAAG,KAAA;gBACH,OAAO,SAAA;gBACP,UAAU,YAAA;gBACV,WAAW,aAAA;gBACX,SAAS,WAAA;gBACT,yBAAyB,2BAAA;gBACzB,SAAS,WAAA;gBACT,IAAI,MAAA;gBACJ,SAAS,WAAA;gBACT,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;SACJ;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,IAAM,eAAe,GAAoB,UAAO,IAAI;;;;;;gBAEhD,SAAS,GAMP,IAAI,UANG,EACT,QAAQ,GAKN,IAAI,SALE,EACR,KAAK,GAIH,IAAI,MAJD,EACL,cAAc,GAGZ,IAAI,eAHQ,EACd,cAAc,GAEZ,IAAI,eAFQ,EACd,cAAc,GACZ,IAAI,eADQ,CACP;gBAIH,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,WAAW,GAAM,QAAQ,SAAI,KAAK,MAAG,CAAC;gBAEtC,SAAS,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC;qBAGnC,CAAC,SAAS,EAAV,wBAAU;gBACZ,iDAAiD;gBAEjD,IAAI,CAAC,SAAS,EAAE;oBACd,qBAAqB;oBACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;iBACxD;gBACK,GAAG,GAAG,IAAI,uBAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,eAAe,GAAK,QAAQ,gBAAb,CAAc;gBAChB,WAAW,GAAK,eAIpC,YAJ+B,CAI9B;gBACc,qBAAM,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,aAAA,EAAE,CAAC,EAAA;;gBAA3E,aAAa,GAAG,SAA2D,CAAC;;;gBAExE,IAAI,GAAG,SAAS,IAAI,aAAa,CAAC;gBAElC,SAAS,GAAG,IAAA,yBAAe,EAAC;oBAChC,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,GAAG;oBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,aAAa,EAAE,IAAI;oBACnB,cAAc,gBAAA;iBACf,CAAC,CAAC;gBAEG,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7C,oBAAoB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;gBAC9D,QAAQ,GAAG,IAAA,6BAAoB,EAAC,QAAQ,CAAC,CAAC;gBAChD,IAAI,CAAC,QAAQ,EAAE;oBACb,MAAM,IAAI,KAAK,CAAC,oCAAkC,QAAQ,CAAC,IAAM,CAAC,CAAC;iBACpE;gBACD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;oBAC1D,MAAM,IAAI,KAAK,CAAC,kCAAgC,QAAQ,CAAC,OAAS,CAAC,CAAC;iBACrE;sBAGC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,gBAAgB,0CAAE,aAAa;;gBAC9C,qBAAM,uBAAM,CAAC,eAAe,CAAC;wBAC5B,IAAI,MAAA;wBACJ,IAAI,EAAE,QAAQ;wBACd,KAAK,OAAA;wBACL,QAAQ,EAAY,QAAQ,CAAC,EAAE;wBAC/B,OAAO,EAAE,aAAa;wBACtB,cAAc,EAAE,oBAAoB;wBACpC,QAAQ,EAAE,WAAS,QAAQ,CAAC,OAAS;wBACrC,WAAW,EAAK,QAAQ,CAAC,QAAQ,oBAAe,QAAQ,CAAC,OAAO,SAAI,QAAQ,CAAC,EAAI;wBACjF,OAAO,EAAE,MAAM;wBACf,aAAa,EAAE,EAAE;qBAClB,CAAC,EAAA;;gBAXF,KAAA,CAAC,SAWC,CAAC,CAAA;;;gBAbC,aAAa,KAad;gBAEC,aAAa,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,KAAI,EAAE,CAAC;gBACvD,qBAAM,uBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAA;;gBAAvC,SAAuC,CAAC;gBACxB,qBAAM,uBAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAA;;gBAAvD,OAAO,GAAG,SAA6C;gBACxC,qBAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAA;;gBAAlE,YAAY,GAAG,SAAmD;gBAClE,WAAW,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAC;gBAGX,qBAAM,uBAAM,CAAC,sBAAsB,CAC/D,aAAa,CACd,EAAA;;gBAFY,YAAY,GAAK,CAAA,SAE7B,CAAA,IAFwB;gBAGQ,qBAAM,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAA;;gBAAtE,wBAAwB,GAAG,SAA2C;gBACtE,gBAAgB,GAAG,wBAAwB;oBAC/C,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,EAAT,CAAS,CAAC;oBAChD,CAAC,CAAC,EAAE,CAAC;gBAEL,qBAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACnD,OAAO,EAAE,CAAC;qBACX,CAAC,EAAA;;gBAHE,uBAAuB,GAC3B,SAEE;gBACE,eAAe,GAAG,uBAAuB;oBAC7C,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,EAAT,CAAS,CAAC;oBAC/C,CAAC,CAAC,EAAE,CAAC;gBACD,aAAa,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAC9B,GAAG,CAAC,UAAC,EAAE;oBACP,OAAA,iBAAiB,CACf,EAAE,EACF,QAAQ,CAAC,EAAE,EACX,SAAS,EACT,gBAAgB,EAChB,eAAe,CAChB;gBAND,CAMC,EAEF,IAAI,EAAE,CAAC;gBACJ,mBAAmB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;gBAC3D,UAAU,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;gBAC/C,qBAAM,uBAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAA;;gBAA7D,QAAQ,GAAG,SAAkD;gBAC7D,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC3C,sBAAO;wBACL,EAAE,EAAE,SAAS;wBACb,IAAI,MAAA;wBACJ,OAAO,SAAA;wBACP,gBAAgB,EAAE,OAAO;wBACzB,UAAU,YAAA;wBACV,eAAe,EAAE,UAAU,CAAC,MAAM;wBAClC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY;wBAC7C,gBAAgB,EAAK,WAAW,WAAM,aAAa,CAAC,IAAI,CAAC,iBAAmB;wBAC5E,WAAW,aAAA;wBACX,gBAAgB,EAAE;4BAChB,KAAK,OAAA;4BACL,aAAa,eAAA;yBACd;qBACF,EAAC;;;KACH,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,OAAgB,EAAE,MAAe;;IACjD,IAAA,UAAG,EAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAC5C,IAAM,OAAO,GAAG,oBAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjD,IAAI,OAAO,EAAE;QACH,IAAA,yBAAyB,GAAyB,OAAO,0BAAhC,EAAE,oBAAkB,GAAK,OAAO,mBAAZ,CAAa;QAElE,IAAI,yBAAyB,EAAE;YAC7B,MAAM,CAAC,gBAAgB,GAAG,yBAAyB,CACjD,MAAM,EACN,MAAM,CAAC,gBAAgB,CACxB,CAAC;SACH;QAED,IAAI,oBAAkB,EAAE;YACtB,MAAM,CAAC,YAAY,GAAG,oBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,uBACpD,CAAC,KACJ,OAAO,EAAE,oBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IACtC,EAHuD,CAGvD,CAAC,CAAC;YACJ,IAAI,MAAM,CAAC,gBAAgB,EAAE;gBAC3B,MAAM,CAAC,gBAAgB,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,gBAAgB,0CAAE,KAAK,CAAC,GAAG,CAChE,UAAC,CAAC,IAAK,OAAA,uBACF,CAAC,KACJ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,oBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IACnD,EAHK,CAGL,CACH,CAAC;aACH;SACF;KACF;IAED,IAAA,UAAG,EAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,SAAS;IAC7B,IAAM,GAAG,GAAG,IAAI,uBAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,UAAC,IAAI,IAAK,OAAA,IAAA,yCAAyB,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,EAA/C,CAA+C,CAAC;AACnE,CAAC,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,4BAAgB,EAAC,eAAe,EAAE,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAI,GAAG,IAAA,oBAAQ,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -2,8 +2,9 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import { Output } from "../storage/types";
|
|
3
3
|
import Xpub from "../xpub";
|
|
4
4
|
import { PickingStrategy } from "./types";
|
|
5
|
+
import { OutputInfo } from "..";
|
|
5
6
|
export declare class CoinSelect extends PickingStrategy {
|
|
6
|
-
selectUnspentUtxosToUse(xpub: Xpub,
|
|
7
|
+
selectUnspentUtxosToUse(xpub: Xpub, outputs: OutputInfo[], feePerByte: number): Promise<{
|
|
7
8
|
totalValue: BigNumber;
|
|
8
9
|
unspentUtxos: Output[];
|
|
9
10
|
fee: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinSelect.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"CoinSelect.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,qBAAa,UAAW,SAAQ,eAAe;IAEvC,uBAAuB,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EAAE,EACrB,UAAU,EAAE,MAAM;;;;;;CAoMrB"}
|
|
@@ -87,9 +87,9 @@ var CoinSelect = /** @class */ (function (_super) {
|
|
|
87
87
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
88
88
|
}
|
|
89
89
|
// eslint-disable-next-line class-methods-use-this
|
|
90
|
-
CoinSelect.prototype.selectUnspentUtxosToUse = function (xpub,
|
|
90
|
+
CoinSelect.prototype.selectUnspentUtxosToUse = function (xpub, outputs, feePerByte) {
|
|
91
91
|
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
-
var addresses, unspentUtxos, _a, TOTAL_TRIES, fixedSize, oneOutputSize, oneInputSize, currentAvailableValue, effectiveUtxos, i, outEffectiveValue, effectiveUtxo, notInputFees, currentValue, currentSelection, actualTarget, currentWaste, bestWaste, bestSelection, bestSelectionNeedChangeoutput, currentSelectionNeedChangeoutput, i, backtrack, nbInput, eu, eu, total, unspentUtxoSelected, i, fee, pickingStrategy;
|
|
92
|
+
var addresses, unspentUtxos, _a, TOTAL_TRIES, fixedSize, outputAddresses, oneOutputSize, oneInputSize, currentAvailableValue, effectiveUtxos, i, outEffectiveValue, effectiveUtxo, notInputFees, currentValue, currentSelection, amount, actualTarget, currentWaste, bestWaste, bestSelection, bestSelectionNeedChangeoutput, currentSelectionNeedChangeoutput, i, backtrack, nbInput, eu, eu, total, unspentUtxoSelected, i, fee, pickingStrategy;
|
|
93
93
|
var _this = this;
|
|
94
94
|
return __generator(this, function (_b) {
|
|
95
95
|
switch (_b.label) {
|
|
@@ -105,9 +105,14 @@ var CoinSelect = /** @class */ (function (_super) {
|
|
|
105
105
|
});
|
|
106
106
|
TOTAL_TRIES = 100000;
|
|
107
107
|
(0, logs_1.log)("picking strategy", "utxos", unspentUtxos);
|
|
108
|
-
fixedSize = utils.
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
fixedSize = utils.maxTxSize(0, [], false, this.crypto, this.derivationMode);
|
|
109
|
+
outputAddresses = outputs.map(function (o) { return o.address; });
|
|
110
|
+
oneOutputSize = outputAddresses.length > 0
|
|
111
|
+
? utils.maxTxSize(0, [outputAddresses[0]], false, this.crypto, this.derivationMode) - fixedSize
|
|
112
|
+
: utils.maxTxSize(0, [], true, this.crypto, this.derivationMode) -
|
|
113
|
+
fixedSize;
|
|
114
|
+
oneInputSize = utils.maxTxSize(1, [], false, this.crypto, this.derivationMode) -
|
|
115
|
+
fixedSize;
|
|
111
116
|
currentAvailableValue = 0;
|
|
112
117
|
effectiveUtxos = [];
|
|
113
118
|
for (i = 0; i < unspentUtxos.length; i += 1) {
|
|
@@ -121,9 +126,10 @@ var CoinSelect = /** @class */ (function (_super) {
|
|
|
121
126
|
currentAvailableValue += outEffectiveValue;
|
|
122
127
|
}
|
|
123
128
|
}
|
|
124
|
-
notInputFees = feePerByte * (fixedSize + oneOutputSize *
|
|
129
|
+
notInputFees = feePerByte * (fixedSize + oneOutputSize * outputs.length);
|
|
125
130
|
currentValue = 0;
|
|
126
131
|
currentSelection = [];
|
|
132
|
+
amount = outputs.reduce(function (sum, output) { return sum.plus(output.value); }, new bignumber_js_1["default"](0));
|
|
127
133
|
actualTarget = notInputFees + amount.toNumber();
|
|
128
134
|
// Insufficient funds
|
|
129
135
|
if (currentAvailableValue < actualTarget) {
|
|
@@ -146,14 +152,14 @@ var CoinSelect = /** @class */ (function (_super) {
|
|
|
146
152
|
currentSelectionNeedChangeoutput = true;
|
|
147
153
|
currentWaste =
|
|
148
154
|
feePerByte *
|
|
149
|
-
utils.
|
|
155
|
+
utils.maxTxSizeCeil(nbInput, outputAddresses, true, this.crypto, this.derivationMode);
|
|
150
156
|
}
|
|
151
157
|
else {
|
|
152
158
|
// changeoutput is not required
|
|
153
159
|
currentSelectionNeedChangeoutput = false;
|
|
154
160
|
currentWaste =
|
|
155
161
|
feePerByte *
|
|
156
|
-
utils.
|
|
162
|
+
utils.maxTxSizeCeil(nbInput, outputAddresses, false, this.crypto, this.derivationMode) +
|
|
157
163
|
currentValue -
|
|
158
164
|
actualTarget;
|
|
159
165
|
}
|
|
@@ -202,9 +208,7 @@ var CoinSelect = /** @class */ (function (_super) {
|
|
|
202
208
|
}
|
|
203
209
|
}
|
|
204
210
|
fee = feePerByte *
|
|
205
|
-
utils.
|
|
206
|
-
? nbOutputsWithoutChange + 1
|
|
207
|
-
: nbOutputsWithoutChange, this.crypto, this.derivationMode);
|
|
211
|
+
utils.maxTxSizeCeil(unspentUtxoSelected.length, outputAddresses, bestSelectionNeedChangeoutput, this.crypto, this.derivationMode);
|
|
208
212
|
return [2 /*return*/, {
|
|
209
213
|
totalValue: total,
|
|
210
214
|
unspentUtxos: unspentUtxoSelected,
|
|
@@ -213,7 +217,7 @@ var CoinSelect = /** @class */ (function (_super) {
|
|
|
213
217
|
}];
|
|
214
218
|
}
|
|
215
219
|
pickingStrategy = new DeepFirst_1.DeepFirst(this.crypto, this.derivationMode, this.excludedUTXOs);
|
|
216
|
-
return [2 /*return*/, pickingStrategy.selectUnspentUtxosToUse(xpub,
|
|
220
|
+
return [2 /*return*/, pickingStrategy.selectUnspentUtxosToUse(xpub, outputs, feePerByte)];
|
|
217
221
|
}
|
|
218
222
|
});
|
|
219
223
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinSelect.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAqC;AACrC,iCAAyC;AACzC,2CAAoD;AAGpD,iCAA0C;AAC1C,8CAAkC;AAClC,yCAAwC;AACxC,uCAAqC;
|
|
1
|
+
{"version":3,"file":"CoinSelect.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/CoinSelect.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import { Output } from "../storage/types";
|
|
3
3
|
import Xpub from "../xpub";
|
|
4
4
|
import { PickingStrategy } from "./types";
|
|
5
|
+
import { OutputInfo } from "..";
|
|
5
6
|
export declare class DeepFirst extends PickingStrategy {
|
|
6
|
-
selectUnspentUtxosToUse(xpub: Xpub,
|
|
7
|
+
selectUnspentUtxosToUse(xpub: Xpub, outputs: OutputInfo[], feePerByte: number): Promise<{
|
|
7
8
|
totalValue: BigNumber;
|
|
8
9
|
unspentUtxos: Output[];
|
|
9
10
|
fee: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepFirst.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"DeepFirst.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,qBAAa,SAAU,SAAQ,eAAe;IAEtC,uBAAuB,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EAAE,EACrB,UAAU,EAAE,MAAM;;;;;;CAuFrB"}
|
|
@@ -86,9 +86,9 @@ var DeepFirst = /** @class */ (function (_super) {
|
|
|
86
86
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
87
87
|
}
|
|
88
88
|
// eslint-disable-next-line class-methods-use-this
|
|
89
|
-
DeepFirst.prototype.selectUnspentUtxosToUse = function (xpub,
|
|
89
|
+
DeepFirst.prototype.selectUnspentUtxosToUse = function (xpub, outputs, feePerByte) {
|
|
90
90
|
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
-
var addresses, unspentUtxos, _a, txSizeNoInput, fee, sizePerInput, sizePerOutput, total, unspentUtxoSelected, i;
|
|
91
|
+
var addresses, unspentUtxos, _a, outputAddresses, txSizeNoInput, fee, emptyTxSize, sizePerInput, sizePerOutput, total, unspentUtxoSelected, amount, i;
|
|
92
92
|
var _this = this;
|
|
93
93
|
return __generator(this, function (_b) {
|
|
94
94
|
switch (_b.label) {
|
|
@@ -102,15 +102,20 @@ var DeepFirst = /** @class */ (function (_super) {
|
|
|
102
102
|
unspentUtxos = _a.apply(void 0, [_b.sent()]).filter(function (o) {
|
|
103
103
|
return !_this.excludedUTXOs.filter(function (x) { return x.hash === o.output_hash && x.outputIndex === o.output_index; }).length;
|
|
104
104
|
});
|
|
105
|
+
outputAddresses = outputs.map(function (o) { return o.address; });
|
|
105
106
|
unspentUtxos = (0, lodash_1.sortBy)(unspentUtxos, "block_height");
|
|
106
|
-
txSizeNoInput = utils.
|
|
107
|
+
txSizeNoInput = utils.maxTxSize(0, outputAddresses, false, this.crypto, this.derivationMode);
|
|
107
108
|
fee = txSizeNoInput * feePerByte;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
emptyTxSize = utils.maxTxSizeCeil(0, [], false, this.crypto, this.derivationMode);
|
|
110
|
+
sizePerInput = utils.maxTxSize(1, [], false, this.crypto, this.derivationMode) -
|
|
111
|
+
emptyTxSize;
|
|
112
|
+
sizePerOutput = (outputAddresses[0]
|
|
113
|
+
? utils.maxTxSize(0, [outputAddresses[0]], false, this.crypto, this.derivationMode)
|
|
114
|
+
: utils.maxTxSize(0, [], true, this.crypto, this.derivationMode)) -
|
|
115
|
+
emptyTxSize;
|
|
112
116
|
total = new bignumber_js_1["default"](0);
|
|
113
117
|
unspentUtxoSelected = [];
|
|
118
|
+
amount = outputs.reduce(function (sum, output) { return sum.plus(output.value); }, new bignumber_js_1["default"](0));
|
|
114
119
|
i = 0;
|
|
115
120
|
while (total.lt(amount.plus(fee))) {
|
|
116
121
|
if (!unspentUtxos[i]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepFirst.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAqC;AACrC,iCAAyC;AACzC,2CAAoD;AAGpD,iCAA0C;AAC1C,8CAAkC;AAClC,uCAAqC;
|
|
1
|
+
{"version":3,"file":"DeepFirst.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/DeepFirst.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import { Output } from "../storage/types";
|
|
3
3
|
import Xpub from "../xpub";
|
|
4
4
|
import { PickingStrategy } from "./types";
|
|
5
|
+
import { OutputInfo } from "..";
|
|
5
6
|
export declare class Merge extends PickingStrategy {
|
|
6
|
-
selectUnspentUtxosToUse(xpub: Xpub,
|
|
7
|
+
selectUnspentUtxosToUse(xpub: Xpub, outputs: OutputInfo[], feePerByte: number): Promise<{
|
|
7
8
|
totalValue: BigNumber;
|
|
8
9
|
unspentUtxos: Output[];
|
|
9
10
|
fee: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Merge.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Merge.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,qBAAa,KAAM,SAAQ,eAAe;IAElC,uBAAuB,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EAAE,EACrB,UAAU,EAAE,MAAM;;;;;;CAuFrB"}
|
|
@@ -86,9 +86,9 @@ var Merge = /** @class */ (function (_super) {
|
|
|
86
86
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
87
87
|
}
|
|
88
88
|
// eslint-disable-next-line class-methods-use-this
|
|
89
|
-
Merge.prototype.selectUnspentUtxosToUse = function (xpub,
|
|
89
|
+
Merge.prototype.selectUnspentUtxosToUse = function (xpub, outputs, feePerByte) {
|
|
90
90
|
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
-
var addresses, unspentUtxos, _a, sizePerInput, sizePerOutput, txSizeNoInput, fee, total, unspentUtxoSelected, i;
|
|
91
|
+
var addresses, unspentUtxos, _a, outputAddresses, emptyTxSize, sizePerInput, sizePerOutput, txSizeNoInput, fee, total, unspentUtxoSelected, i, amount;
|
|
92
92
|
var _this = this;
|
|
93
93
|
return __generator(this, function (_b) {
|
|
94
94
|
switch (_b.label) {
|
|
@@ -102,16 +102,21 @@ var Merge = /** @class */ (function (_super) {
|
|
|
102
102
|
unspentUtxos = _a.apply(void 0, [_b.sent()]).filter(function (o) {
|
|
103
103
|
return !_this.excludedUTXOs.filter(function (x) { return x.hash === o.output_hash && x.outputIndex === o.output_index; }).length;
|
|
104
104
|
});
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
outputAddresses = outputs.map(function (o) { return o.address; });
|
|
106
|
+
emptyTxSize = utils.maxTxSizeCeil(0, [], false, this.crypto, this.derivationMode);
|
|
107
|
+
sizePerInput = utils.maxTxSize(1, [], false, this.crypto, this.derivationMode) -
|
|
108
|
+
emptyTxSize;
|
|
109
|
+
sizePerOutput = (outputAddresses[0]
|
|
110
|
+
? utils.maxTxSize(0, [outputAddresses[0]], false, this.crypto, this.derivationMode)
|
|
111
|
+
: utils.maxTxSize(0, [], true, this.crypto, this.derivationMode)) -
|
|
112
|
+
emptyTxSize;
|
|
109
113
|
unspentUtxos = (0, lodash_1.sortBy)(unspentUtxos, function (utxo) { return parseInt(utxo.value, 10); });
|
|
110
|
-
txSizeNoInput = utils.
|
|
114
|
+
txSizeNoInput = utils.maxTxSize(0, outputAddresses, false, this.crypto, this.derivationMode);
|
|
111
115
|
fee = txSizeNoInput * feePerByte;
|
|
112
116
|
total = new bignumber_js_1["default"](0);
|
|
113
117
|
unspentUtxoSelected = [];
|
|
114
118
|
i = 0;
|
|
119
|
+
amount = outputs.reduce(function (sum, output) { return sum.plus(output.value); }, new bignumber_js_1["default"](0));
|
|
115
120
|
while (total.lt(amount.plus(fee))) {
|
|
116
121
|
if (!unspentUtxos[i]) {
|
|
117
122
|
throw new errors_1.NotEnoughBalance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Merge.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAqC;AACrC,iCAAyC;AACzC,2CAAoD;AAGpD,iCAA0C;AAC1C,8CAAkC;AAClC,uCAAqC;
|
|
1
|
+
{"version":3,"file":"Merge.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/Merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
+
import { OutputInfo } from "..";
|
|
2
3
|
import { ICrypto } from "../crypto/types";
|
|
3
4
|
import { Output } from "../storage/types";
|
|
4
5
|
import Xpub from "../xpub";
|
|
@@ -13,7 +14,7 @@ export declare abstract class PickingStrategy {
|
|
|
13
14
|
hash: string;
|
|
14
15
|
outputIndex: number;
|
|
15
16
|
}>);
|
|
16
|
-
abstract selectUnspentUtxosToUse(xpub: Xpub,
|
|
17
|
+
abstract selectUnspentUtxosToUse(xpub: Xpub, outputs: OutputInfo[], feePerByte: number): Promise<{
|
|
17
18
|
unspentUtxos: Output[];
|
|
18
19
|
totalValue: BigNumber;
|
|
19
20
|
fee: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,8BAAsB,eAAe;IACnC,MAAM,EAAE,OAAO,CAAC;IAEhB,cAAc,EAAE,MAAM,CAAC;IAGvB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;gBAGD,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAOJ,QAAQ,CAAC,uBAAuB,CAC9B,IAAI,EAAE,IAAI,EACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,8BAAsB,eAAe;IACnC,MAAM,EAAE,OAAO,CAAC;IAEhB,cAAc,EAAE,MAAM,CAAC;IAGvB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;gBAGD,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAOJ,QAAQ,CAAC,uBAAuB,CAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EAAE,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,EAAE,SAAS,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/pickingstrategies/types.ts"],"names":[],"mappings":";;;AAMA;IAWE,yBACE,MAAe,EACf,cAAsB,EACtB,aAGE;QAEF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAYH,sBAAC;AAAD,CAAC,AAlCD,IAkCC;AAlCqB,0CAAe"}
|
|
@@ -6,8 +6,44 @@ export declare function toHexInt(number: any): string;
|
|
|
6
6
|
export declare function compressPublicKey(publicKey: any): any;
|
|
7
7
|
export declare function createXPUB(depth: any, fingerprint: any, childnum: any, chaincode: any, publicKey: any, network: any): string;
|
|
8
8
|
export declare function byteSize(count: number): 1 | 3 | 5 | 9;
|
|
9
|
-
export declare function
|
|
10
|
-
|
|
9
|
+
export declare function outputSize(currency: ICrypto, addr: string): number;
|
|
10
|
+
/**
|
|
11
|
+
* Calculates the maximun size of an imaginary transaction in virtual bytes
|
|
12
|
+
* (vB). 1vB = 4 WU (weight units). If a cryptocurrency doesn't use segwit, then
|
|
13
|
+
* 1 byte = 1 vB. Weight units are used for segwit transactions, where certain
|
|
14
|
+
* bytes of the transaction is counted as 4 WU and some as 1 WU. The resulting
|
|
15
|
+
* size is then ceil(totalWU/4) vB.
|
|
16
|
+
*
|
|
17
|
+
* refer to https://medium.com/coinmonks/on-bitcoin-transaction-sizes-part-2-9445373d17f4
|
|
18
|
+
* and https://bitcoin.stackexchange.com/questions/96017/what-are-the-sizes-of-single-sig-and-2-of-3-multisig-taproot-inputs
|
|
19
|
+
* and https://bitcoinops.org/en/tools/calc-size/
|
|
20
|
+
*
|
|
21
|
+
* Suggested improvement: I assume that these calculations won't be exactly
|
|
22
|
+
* correct for altcoins (but I don't know). Therefore we should move this
|
|
23
|
+
* functionality into ICrypto, to make it easier to provide slightly different
|
|
24
|
+
* calculations for different cryptocurrencies.
|
|
25
|
+
*
|
|
26
|
+
* The reason for the name maxTxSize, instead of just txSize, is that the size
|
|
27
|
+
* of modern ecdsa signatures aren't know beforehand. They are either 71 or
|
|
28
|
+
* 72 bytes. This function always count with 72 byte signatures.
|
|
29
|
+
*
|
|
30
|
+
* The size of schnorr signatures is expected to be 65 bytes, since the Bitcoin
|
|
31
|
+
* hardware app appends the optional sighash type 01 at the end of the
|
|
32
|
+
* signature. If the app removes that optional byte, this functions should be
|
|
33
|
+
* updated to use 64 byte schnorr signatures, even if 65 still is an acceptable
|
|
34
|
+
* maximum.
|
|
35
|
+
*
|
|
36
|
+
* @param inputCount Number of inputs of the imaginary transaction
|
|
37
|
+
* @param outputAddrs The addresses of the outputs, excluding change.
|
|
38
|
+
* @param includeChange Indicates whether we should add a change output. The
|
|
39
|
+
* change output will have the same derivation mode as the inputs. See
|
|
40
|
+
* derivationMode parameter.
|
|
41
|
+
* @param currency The currency for which the calculation is done.
|
|
42
|
+
* @param derivationMode The derivation mode used for calculating the size of
|
|
43
|
+
* the inputs.
|
|
44
|
+
*/
|
|
45
|
+
export declare function maxTxSize(inputCount: number, outputAddrs: string[], includeChange: boolean, currency: ICrypto, derivationMode: string): number;
|
|
46
|
+
export declare function maxTxSizeCeil(inputCount: number, outputAddrs: string[], includeChange: boolean, currency: ICrypto, derivationMode: string): number;
|
|
11
47
|
export declare function computeDustAmount(currency: ICrypto, txSize: number): any;
|
|
12
48
|
export declare function isValidAddress(address: string, currency?: Currency): boolean;
|
|
13
49
|
export declare function isTaprootAddress(address: string, currency?: Currency): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/families/bitcoin/wallet-btc/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/families/bitcoin/wallet-btc/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAKnD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,YAQtC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,UAQ3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,UAIrC;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,UAWnC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,OAa/C;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,GAAG,EACV,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,GAAG,UASb;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,iBAWrC;AA6CD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,MAAM,GACrB,MAAM,CAiBR;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,MAAM,GACrB,MAAM,CASR;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAalE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,WASlE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,WAQpE"}
|