@ledgerhq/live-common 21.13.1 → 21.14.1

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.
Files changed (101) hide show
  1. package/lib/__tests__/derivation.js +1 -1
  2. package/lib/__tests__/derivation.js.map +1 -1
  3. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.js +2 -2
  4. package/lib/apps/polyfill.d.ts.map +1 -1
  5. package/lib/apps/polyfill.js +1 -0
  6. package/lib/apps/polyfill.js.map +1 -1
  7. package/lib/derivation.js +1 -1
  8. package/lib/derivation.js.map +1 -1
  9. package/lib/env.js +1 -1
  10. package/lib/env.js.map +1 -1
  11. package/lib/families/bitcoin/cache.d.ts +1 -0
  12. package/lib/families/bitcoin/cache.d.ts.map +1 -1
  13. package/lib/families/bitcoin/cache.js +7 -1
  14. package/lib/families/bitcoin/cache.js.map +1 -1
  15. package/lib/families/bitcoin/errors.d.ts +4 -0
  16. package/lib/families/bitcoin/errors.d.ts.map +1 -0
  17. package/lib/families/bitcoin/errors.js +6 -0
  18. package/lib/families/bitcoin/errors.js.map +1 -0
  19. package/lib/families/bitcoin/js-getTransactionStatus.d.ts.map +1 -1
  20. package/lib/families/bitcoin/js-getTransactionStatus.js +24 -11
  21. package/lib/families/bitcoin/js-getTransactionStatus.js.map +1 -1
  22. package/lib/families/bitcoin/js-synchronisation.js +2 -2
  23. package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
  24. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts +4 -0
  25. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
  26. package/lib/families/bitcoin/wallet-btc/crypto/base.js +36 -5
  27. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
  28. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts +1 -0
  29. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts.map +1 -1
  30. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js +19 -1
  31. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js.map +1 -1
  32. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts +1 -0
  33. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +1 -1
  34. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +4 -0
  35. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +1 -1
  36. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts +1 -0
  37. package/lib/families/bitcoin/wallet-btc/crypto/types.d.ts.map +1 -1
  38. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts +1 -0
  39. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +1 -1
  40. package/lib/families/bitcoin/wallet-btc/crypto/zec.js +4 -0
  41. package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +1 -1
  42. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts +1 -0
  43. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +1 -1
  44. package/lib/families/bitcoin/wallet-btc/crypto/zen.js +4 -0
  45. package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +1 -1
  46. package/lib/families/bitcoin/wallet-btc/explorer/index.d.ts.map +1 -1
  47. package/lib/families/bitcoin/wallet-btc/explorer/index.js +0 -3
  48. package/lib/families/bitcoin/wallet-btc/explorer/index.js.map +1 -1
  49. package/lib/families/bitcoin/wallet-btc/index.d.ts +2 -2
  50. package/lib/families/bitcoin/wallet-btc/index.d.ts.map +1 -1
  51. package/lib/families/bitcoin/wallet-btc/index.js +4 -5
  52. package/lib/families/bitcoin/wallet-btc/index.js.map +1 -1
  53. package/lib/families/bitcoin/wallet-btc/utils.d.ts +2 -1
  54. package/lib/families/bitcoin/wallet-btc/utils.d.ts.map +1 -1
  55. package/lib/families/bitcoin/wallet-btc/utils.js +23 -7
  56. package/lib/families/bitcoin/wallet-btc/utils.js.map +1 -1
  57. package/lib/families/bitcoin/wallet-btc/wallet.js +1 -1
  58. package/lib/families/bitcoin/wallet-btc/wallet.js.map +1 -1
  59. package/lib/families/bitcoin/wallet-btc/xpub.d.ts +2 -6
  60. package/lib/families/bitcoin/wallet-btc/xpub.d.ts.map +1 -1
  61. package/lib/families/bitcoin/wallet-btc/xpub.js +62 -52
  62. package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
  63. package/lib/families/elrond/js-getTransactionStatus.d.ts.map +1 -1
  64. package/lib/families/elrond/js-getTransactionStatus.js +3 -0
  65. package/lib/families/elrond/js-getTransactionStatus.js.map +1 -1
  66. package/lib/families/elrond/js-signOperation.d.ts.map +1 -1
  67. package/lib/families/elrond/js-signOperation.js +3 -1
  68. package/lib/families/elrond/js-signOperation.js.map +1 -1
  69. package/lib/families/ethereum/specs.d.ts +1 -0
  70. package/lib/families/ethereum/specs.d.ts.map +1 -1
  71. package/lib/families/ethereum/specs.js +41 -0
  72. package/lib/families/ethereum/specs.js.map +1 -1
  73. package/lib/families/polkadot/js-buildTransaction.d.ts +7 -7
  74. package/lib/generated/specs.d.ts +1 -0
  75. package/lib/generated/specs.d.ts.map +1 -1
  76. package/package.json +8 -8
  77. package/src/__tests__/__snapshots__/all.libcore.ts.snap +49100 -49100
  78. package/src/__tests__/derivation.ts +1 -1
  79. package/src/__tests__/families/bitcoin/wallet-btc/wallet.integration.test.ts +2 -2
  80. package/src/apps/polyfill.ts +1 -0
  81. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +10 -1
  82. package/src/derivation.ts +1 -1
  83. package/src/env.ts +1 -1
  84. package/src/families/bitcoin/cache.ts +12 -0
  85. package/src/families/bitcoin/errors.ts +5 -0
  86. package/src/families/bitcoin/js-getTransactionStatus.ts +15 -1
  87. package/src/families/bitcoin/js-synchronisation.ts +2 -2
  88. package/src/families/bitcoin/wallet-btc/crypto/base.ts +40 -5
  89. package/src/families/bitcoin/wallet-btc/crypto/bitcoin.ts +21 -1
  90. package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +5 -0
  91. package/src/families/bitcoin/wallet-btc/crypto/types.ts +1 -0
  92. package/src/families/bitcoin/wallet-btc/crypto/zec.ts +5 -0
  93. package/src/families/bitcoin/wallet-btc/crypto/zen.ts +5 -0
  94. package/src/families/bitcoin/wallet-btc/explorer/index.ts +0 -5
  95. package/src/families/bitcoin/wallet-btc/index.ts +4 -4
  96. package/src/families/bitcoin/wallet-btc/utils.ts +20 -6
  97. package/src/families/bitcoin/wallet-btc/wallet.ts +1 -1
  98. package/src/families/bitcoin/wallet-btc/xpub.ts +37 -53
  99. package/src/families/elrond/js-getTransactionStatus.ts +4 -0
  100. package/src/families/elrond/js-signOperation.ts +3 -1
  101. package/src/families/ethereum/specs.ts +47 -0
@@ -32,6 +32,10 @@ const getTransactionStatus = async (
32
32
  }
33
33
 
34
34
  const estimatedFees = t.fees || new BigNumber(0);
35
+ if (estimatedFees.gt(a.balance)) {
36
+ errors.amount = new NotEnoughBalance();
37
+ }
38
+
35
39
  const totalSpent = useAllAmount
36
40
  ? a.balance
37
41
  : new BigNumber(t.amount).plus(estimatedFees);
@@ -15,7 +15,9 @@ const buildOptimisticOperation = (
15
15
  fee: BigNumber
16
16
  ): Operation => {
17
17
  const type = "OUT";
18
- const value = new BigNumber(transaction.amount);
18
+ const value = transaction.useAllAmount
19
+ ? account.balance.minus(fee)
20
+ : new BigNumber(transaction.amount);
19
21
  const operation: Operation = {
20
22
  id: encodeOperationId(account.id, "", type),
21
23
  hash: "",
@@ -445,8 +445,55 @@ const bsc: AppSpec<Transaction> = {
445
445
  ]),
446
446
  };
447
447
 
448
+ const polygon: AppSpec<Transaction> = {
449
+ name: "Polygon",
450
+ currency: getCryptoCurrencyById("polygon"),
451
+ appQuery: {
452
+ model: DeviceModelId.nanoS,
453
+ appName: "Polygon",
454
+ },
455
+ testTimeout: 2 * 60 * 1000,
456
+ transactionCheck: ({ maxSpendable }) => {
457
+ invariant(
458
+ maxSpendable.gt(
459
+ parseCurrencyUnit(getCryptoCurrencyById("polygon").units[0], "0.005")
460
+ ),
461
+ "balance is too low"
462
+ );
463
+ },
464
+ mutations: ethereumBasicMutations({ maxAccount: 8 }).concat([
465
+ {
466
+ name: "move some ERC20",
467
+ maxRun: 1,
468
+ // @ts-expect-error rxjs stuff
469
+ transaction: ({ account, siblings, bridge }) => {
470
+ const erc20Account = sample(
471
+ (account.subAccounts || []).filter((a) => a.balance.gt(0))
472
+ );
473
+ invariant(erc20Account, "no erc20 account");
474
+ const sibling = pickSiblings(siblings, 3);
475
+ const recipient = sibling.freshAddress;
476
+ return {
477
+ transaction: bridge.createTransaction(account),
478
+ updates: [
479
+ { recipient, subAccountId: erc20Account.id },
480
+ Math.random() < 0.5
481
+ ? { useAllAmount: true }
482
+ : {
483
+ amount: erc20Account.balance
484
+ .times(Math.random())
485
+ .integerValue(),
486
+ },
487
+ ],
488
+ };
489
+ },
490
+ },
491
+ ]),
492
+ };
493
+
448
494
  export default {
449
495
  bsc,
496
+ polygon,
450
497
  ethereum,
451
498
  ethereumClassic,
452
499
  ethereumRopsten,