@ledgerhq/live-common 24.0.0-next.1 → 24.0.0-next.4

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 (116) hide show
  1. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js +4 -4
  2. package/lib/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.js.map +1 -1
  3. package/lib/exchange/swap/getExchangeRates.test.js +0 -1
  4. package/lib/exchange/swap/getExchangeRates.test.js.map +1 -1
  5. package/lib/families/bitcoin/bridge/mock.d.ts.map +1 -1
  6. package/lib/families/bitcoin/bridge/mock.js +0 -1
  7. package/lib/families/bitcoin/bridge/mock.js.map +1 -1
  8. package/lib/families/bitcoin/cache.js +1 -1
  9. package/lib/families/bitcoin/cache.js.map +1 -1
  10. package/lib/families/bitcoin/cli-transaction.d.ts +6 -6
  11. package/lib/families/bitcoin/cli-transaction.d.ts.map +1 -1
  12. package/lib/families/bitcoin/cli-transaction.js +0 -6
  13. package/lib/families/bitcoin/cli-transaction.js.map +1 -1
  14. package/lib/families/bitcoin/datasets/bitcoin.d.ts.map +1 -1
  15. package/lib/families/bitcoin/datasets/bitcoin.js +0 -3
  16. package/lib/families/bitcoin/datasets/bitcoin.js.map +1 -1
  17. package/lib/families/bitcoin/datasets/digibyte.d.ts.map +1 -1
  18. package/lib/families/bitcoin/datasets/digibyte.js +0 -3
  19. package/lib/families/bitcoin/datasets/digibyte.js.map +1 -1
  20. package/lib/families/bitcoin/datasets/litecoin.d.ts.map +1 -1
  21. package/lib/families/bitcoin/datasets/litecoin.js +0 -3
  22. package/lib/families/bitcoin/datasets/litecoin.js.map +1 -1
  23. package/lib/families/bitcoin/js-buildTransaction.d.ts.map +1 -1
  24. package/lib/families/bitcoin/js-buildTransaction.js +1 -1
  25. package/lib/families/bitcoin/js-buildTransaction.js.map +1 -1
  26. package/lib/families/bitcoin/js-createTransaction.d.ts.map +1 -1
  27. package/lib/families/bitcoin/js-createTransaction.js +0 -1
  28. package/lib/families/bitcoin/js-createTransaction.js.map +1 -1
  29. package/lib/families/bitcoin/js-estimateMaxSpendable.d.ts.map +1 -1
  30. package/lib/families/bitcoin/js-estimateMaxSpendable.js +7 -7
  31. package/lib/families/bitcoin/js-estimateMaxSpendable.js.map +1 -1
  32. package/lib/families/bitcoin/js-synchronisation.d.ts.map +1 -1
  33. package/lib/families/bitcoin/js-synchronisation.js +3 -3
  34. package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
  35. package/lib/families/bitcoin/logic.d.ts +1 -1
  36. package/lib/families/bitcoin/logic.d.ts.map +1 -1
  37. package/lib/families/bitcoin/logic.js +3 -8
  38. package/lib/families/bitcoin/logic.js.map +1 -1
  39. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  40. package/lib/families/bitcoin/specs.js +1 -1
  41. package/lib/families/bitcoin/specs.js.map +1 -1
  42. package/lib/families/bitcoin/transaction.js +2 -2
  43. package/lib/families/bitcoin/transaction.js.map +1 -1
  44. package/lib/families/bitcoin/types.d.ts +0 -1
  45. package/lib/families/bitcoin/types.d.ts.map +1 -1
  46. package/lib/families/bitcoin/wallet-btc/wallet.d.ts +1 -1
  47. package/lib/families/bitcoin/wallet-btc/wallet.d.ts.map +1 -1
  48. package/lib/families/bitcoin/wallet-btc/wallet.js +9 -4
  49. package/lib/families/bitcoin/wallet-btc/wallet.js.map +1 -1
  50. package/lib/families/ethereum/modules/erc1155.d.ts.map +1 -1
  51. package/lib/families/ethereum/modules/erc1155.js +5 -1
  52. package/lib/families/ethereum/modules/erc1155.js.map +1 -1
  53. package/lib/families/ethereum/modules/erc721.d.ts.map +1 -1
  54. package/lib/families/ethereum/modules/erc721.js +5 -0
  55. package/lib/families/ethereum/modules/erc721.js.map +1 -1
  56. package/lib/families/ethereum/nft.unit.test.js +35 -15
  57. package/lib/families/ethereum/nft.unit.test.js.map +1 -1
  58. package/lib/families/ethereum/synchronisation.d.ts.map +1 -1
  59. package/lib/families/ethereum/synchronisation.js +17 -13
  60. package/lib/families/ethereum/synchronisation.js.map +1 -1
  61. package/lib/families/solana/api/chain/account/token.d.ts +1 -1
  62. package/lib/families/solana/api/chain/account/vote.d.ts +12 -12
  63. package/lib/families/solana/api/chain/instruction/system/types.d.ts +4 -4
  64. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  65. package/lib/featureFlags/defaultFeatures.js +3 -0
  66. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  67. package/lib/featureFlags/types.d.ts +1 -1
  68. package/lib/featureFlags/types.d.ts.map +1 -1
  69. package/lib/generated/cli-transaction.d.ts +6 -6
  70. package/lib/nft/hook.d.ts +3 -0
  71. package/lib/nft/hook.d.ts.map +1 -0
  72. package/lib/nft/hook.js +73 -0
  73. package/lib/nft/hook.js.map +1 -0
  74. package/lib/nft/index.d.ts +1 -0
  75. package/lib/nft/index.d.ts.map +1 -1
  76. package/lib/nft/index.js +1 -0
  77. package/lib/nft/index.js.map +1 -1
  78. package/lib/nft/nftOperationId.d.ts +15 -0
  79. package/lib/nft/nftOperationId.d.ts.map +1 -0
  80. package/lib/nft/nftOperationId.js +50 -0
  81. package/lib/nft/nftOperationId.js.map +1 -0
  82. package/lib/operation.d.ts +1 -1
  83. package/lib/operation.d.ts.map +1 -1
  84. package/lib/operation.js +23 -1
  85. package/lib/operation.js.map +1 -1
  86. package/lib/types/nft.d.ts +4 -0
  87. package/lib/types/nft.d.ts.map +1 -1
  88. package/package.json +1 -1
  89. package/src/__tests__/families/bitcoin/wallet-btc/wallet.estimateMaxSpendable.test.ts +4 -12
  90. package/src/exchange/swap/getExchangeRates.test.ts +0 -1
  91. package/src/families/bitcoin/bridge/mock.ts +0 -1
  92. package/src/families/bitcoin/cache.ts +3 -3
  93. package/src/families/bitcoin/cli-transaction.ts +0 -6
  94. package/src/families/bitcoin/datasets/bitcoin.ts +0 -3
  95. package/src/families/bitcoin/datasets/digibyte.ts +0 -3
  96. package/src/families/bitcoin/datasets/litecoin.ts +0 -3
  97. package/src/families/bitcoin/js-buildTransaction.ts +0 -1
  98. package/src/families/bitcoin/js-createTransaction.ts +0 -1
  99. package/src/families/bitcoin/js-estimateMaxSpendable.ts +0 -1
  100. package/src/families/bitcoin/js-synchronisation.ts +6 -3
  101. package/src/families/bitcoin/logic.ts +4 -9
  102. package/src/families/bitcoin/specs.ts +0 -1
  103. package/src/families/bitcoin/transaction.ts +2 -2
  104. package/src/families/bitcoin/types.ts +0 -1
  105. package/src/families/bitcoin/wallet-btc/wallet.ts +8 -2
  106. package/src/families/ethereum/modules/erc1155.ts +12 -5
  107. package/src/families/ethereum/modules/erc721.ts +11 -0
  108. package/src/families/ethereum/nft.unit.test.ts +24 -17
  109. package/src/families/ethereum/synchronisation.ts +22 -18
  110. package/src/featureFlags/defaultFeatures.ts +3 -0
  111. package/src/featureFlags/types.ts +1 -0
  112. package/src/nft/hook.ts +29 -0
  113. package/src/nft/index.ts +1 -0
  114. package/src/nft/nftOperationId.ts +47 -0
  115. package/src/operation.ts +50 -1
  116. package/src/types/nft.ts +5 -0
package/src/operation.ts CHANGED
@@ -1,5 +1,24 @@
1
1
  import { BigNumber } from "bignumber.js";
2
- import type { Account, AccountLike, Operation } from "./types";
2
+ import { encodeNftId } from "./nft";
3
+ import {
4
+ encodeERC1155OperationId,
5
+ encodeERC721OperationId,
6
+ } from "./nft/nftOperationId";
7
+ import {
8
+ Account,
9
+ AccountLike,
10
+ decodeAccountId,
11
+ NFTStandard,
12
+ Operation,
13
+ } from "./types";
14
+
15
+ const nftOperationIdEncoderPerStandard: Record<
16
+ NFTStandard,
17
+ (...args: any[]) => string
18
+ > = {
19
+ ERC721: encodeERC721OperationId,
20
+ ERC1155: encodeERC1155OperationId,
21
+ };
3
22
 
4
23
  export function findOperationInAccount(
5
24
  { operations, pendingOperations }: AccountLike,
@@ -32,6 +51,16 @@ export function findOperationInAccount(
32
51
  for (let i = 0; i < pendingOperations.length; i++) {
33
52
  const op = pendingOperations[i];
34
53
  if (op.id === operationId) return op;
54
+
55
+ if (op.nftOperations) {
56
+ const nftOps = op.nftOperations;
57
+
58
+ for (let j = 0; j < nftOps.length; j++) {
59
+ const nftOp = nftOps[j];
60
+
61
+ if (nftOp.id === operationId) return nftOp;
62
+ }
63
+ }
35
64
  }
36
65
 
37
66
  return null;
@@ -73,6 +102,26 @@ export function patchOperationWithHash(
73
102
  hash,
74
103
  id: encodeOperationId(op.accountId, hash, op.type),
75
104
  })),
105
+ nftOperations:
106
+ operation.nftOperations &&
107
+ operation.nftOperations.map((nftOp, i) => {
108
+ const { currencyId } = decodeAccountId(operation.accountId);
109
+ const nftId = encodeNftId(
110
+ operation.accountId,
111
+ nftOp.contract || "",
112
+ nftOp.tokenId || "",
113
+ currencyId
114
+ );
115
+ const nftOperationIdEncoder =
116
+ nftOperationIdEncoderPerStandard[nftOp?.standard || ""] ||
117
+ nftOperationIdEncoderPerStandard.ERC721;
118
+
119
+ return {
120
+ ...nftOp,
121
+ hash,
122
+ id: nftOperationIdEncoder(nftId, hash, nftOp.type, 0, i),
123
+ };
124
+ }),
76
125
  };
77
126
  }
78
127
 
package/src/types/nft.ts CHANGED
@@ -69,3 +69,8 @@ export type NFTCollectionMetadataResponse = {
69
69
  tokenName: string | null;
70
70
  } | null;
71
71
  };
72
+
73
+ export type FloorPrice = {
74
+ ticker: string;
75
+ value: number;
76
+ };