@ledgerhq/live-common 21.27.0 → 21.30.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 (146) hide show
  1. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.js +1 -1
  2. package/lib/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.js.map +1 -1
  3. package/lib/__tests__/test-helpers/bridge.js +1 -1
  4. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  5. package/lib/apps/hw.d.ts.map +1 -1
  6. package/lib/apps/hw.js +8 -3
  7. package/lib/apps/hw.js.map +1 -1
  8. package/lib/apps/support.d.ts.map +1 -1
  9. package/lib/apps/support.js +2 -1
  10. package/lib/apps/support.js.map +1 -1
  11. package/lib/env.d.ts +10 -10
  12. package/lib/env.d.ts.map +1 -1
  13. package/lib/env.js +5 -5
  14. package/lib/env.js.map +1 -1
  15. package/lib/env.react.d.ts +1 -1
  16. package/lib/env.react.d.ts.map +1 -1
  17. package/lib/exchange/swap/hooks/usePickDefaultAccount.d.ts.map +1 -1
  18. package/lib/exchange/swap/hooks/usePickDefaultAccount.js +4 -9
  19. package/lib/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  20. package/lib/exchange/swap/utils/index.d.ts +6 -1
  21. package/lib/exchange/swap/utils/index.d.ts.map +1 -1
  22. package/lib/exchange/swap/utils/index.js +8 -1
  23. package/lib/exchange/swap/utils/index.js.map +1 -1
  24. package/lib/exchange/swap/utils/index.test.js +27 -0
  25. package/lib/exchange/swap/utils/index.test.js.map +1 -1
  26. package/lib/families/algorand/api/algodv2.d.ts +2 -1
  27. package/lib/families/algorand/api/algodv2.d.ts.map +1 -1
  28. package/lib/families/algorand/api/algodv2.js +2 -2
  29. package/lib/families/algorand/api/algodv2.js.map +1 -1
  30. package/lib/families/algorand/js-broadcast.js +1 -1
  31. package/lib/families/algorand/js-broadcast.js.map +1 -1
  32. package/lib/families/algorand/js-signOperation.d.ts.map +1 -1
  33. package/lib/families/algorand/js-signOperation.js +1 -1
  34. package/lib/families/algorand/js-signOperation.js.map +1 -1
  35. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
  36. package/lib/families/bitcoin/wallet-btc/crypto/base.js +19 -20
  37. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
  38. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.d.ts.map +1 -1
  39. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js +4 -5
  40. package/lib/families/bitcoin/wallet-btc/crypto/bitcoin.js.map +1 -1
  41. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.d.ts.map +1 -1
  42. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js +3 -4
  43. package/lib/families/bitcoin/wallet-btc/crypto/bitcoincash.js.map +1 -1
  44. package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts.map +1 -1
  45. package/lib/families/bitcoin/wallet-btc/crypto/decred.js +3 -4
  46. package/lib/families/bitcoin/wallet-btc/crypto/decred.js.map +1 -1
  47. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.d.ts.map +1 -1
  48. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js +3 -4
  49. package/lib/families/bitcoin/wallet-btc/crypto/litecoin.js.map +1 -1
  50. package/lib/families/bitcoin/wallet-btc/crypto/zec.d.ts.map +1 -1
  51. package/lib/families/bitcoin/wallet-btc/crypto/zec.js +3 -4
  52. package/lib/families/bitcoin/wallet-btc/crypto/zec.js.map +1 -1
  53. package/lib/families/bitcoin/wallet-btc/crypto/zen.d.ts.map +1 -1
  54. package/lib/families/bitcoin/wallet-btc/crypto/zen.js +3 -4
  55. package/lib/families/bitcoin/wallet-btc/crypto/zen.js.map +1 -1
  56. package/lib/families/bitcoin/wallet-btc/wallet.d.ts.map +1 -1
  57. package/lib/families/bitcoin/wallet-btc/wallet.js +1 -3
  58. package/lib/families/bitcoin/wallet-btc/wallet.js.map +1 -1
  59. package/lib/families/bitcoin/wallet-btc/xpub.js +1 -1
  60. package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
  61. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js +1 -1
  62. package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js.map +1 -1
  63. package/lib/families/ethereum/nft.integration.test.js +1 -36
  64. package/lib/families/ethereum/nft.integration.test.js.map +1 -1
  65. package/lib/families/ethereum/synchronisation.d.ts.map +1 -1
  66. package/lib/families/ethereum/synchronisation.js +2 -7
  67. package/lib/families/ethereum/synchronisation.js.map +1 -1
  68. package/lib/families/solana/api/chain/index.d.ts +2 -2
  69. package/lib/families/solana/api/chain/index.d.ts.map +1 -1
  70. package/lib/families/solana/api/chain/index.js +4 -4
  71. package/lib/families/solana/api/chain/index.js.map +1 -1
  72. package/lib/families/solana/bridge/bridge.js +5 -5
  73. package/lib/families/solana/bridge/bridge.js.map +1 -1
  74. package/lib/families/solana/bridge/js.js +3 -3
  75. package/lib/families/solana/bridge/js.js.map +1 -1
  76. package/lib/families/solana/bridge/mock.js +1 -1
  77. package/lib/families/solana/bridge/mock.js.map +1 -1
  78. package/lib/families/solana/test-dataset.d.ts.map +1 -1
  79. package/lib/families/solana/test-dataset.js +211 -209
  80. package/lib/families/solana/test-dataset.js.map +1 -1
  81. package/lib/families/solana/utils.d.ts +1 -2
  82. package/lib/families/solana/utils.d.ts.map +1 -1
  83. package/lib/families/solana/utils.js +11 -9
  84. package/lib/families/solana/utils.js.map +1 -1
  85. package/lib/families/tezos/datasets/tezos.scanAccounts.1.js +1 -1
  86. package/lib/families/tezos/datasets/tezos.scanAccounts.1.js.map +1 -1
  87. package/lib/hw/connectApp.d.ts.map +1 -1
  88. package/lib/hw/connectApp.js +32 -31
  89. package/lib/hw/connectApp.js.map +1 -1
  90. package/lib/market/utils/countervalueFormatter.js +1 -1
  91. package/lib/market/utils/countervalueFormatter.js.map +1 -1
  92. package/lib/nft/support.d.ts.map +1 -1
  93. package/lib/nft/support.js +1 -1
  94. package/lib/nft/support.js.map +1 -1
  95. package/lib/platform/PlatformAppProvider/api/api.mock.d.ts.map +1 -1
  96. package/lib/platform/PlatformAppProvider/api/api.mock.js +27 -0
  97. package/lib/platform/PlatformAppProvider/api/api.mock.js.map +1 -1
  98. package/lib/types/manager.d.ts +7 -0
  99. package/lib/types/manager.d.ts.map +1 -1
  100. package/lib/types/manager.js +7 -0
  101. package/lib/types/manager.js.map +1 -1
  102. package/package.json +13 -13
  103. package/src/.DS_Store +0 -0
  104. package/src/__tests__/__snapshots__/all.libcore.ts.snap +87 -226
  105. package/src/__tests__/families/bitcoin/wallet-btc/xpub.synced.unit.test.ts +1 -1
  106. package/src/__tests__/test-helpers/bridge.ts +1 -1
  107. package/src/apps/hw.ts +7 -0
  108. package/src/apps/support.ts +1 -0
  109. package/src/{currencies/__snapshots__ → data/flags}/.DS_Store +0 -0
  110. package/src/env.ts +5 -5
  111. package/src/exchange/swap/hooks/usePickDefaultAccount.ts +4 -9
  112. package/src/exchange/swap/utils/index.test.ts +44 -1
  113. package/src/exchange/swap/utils/index.ts +12 -1
  114. package/src/families/algorand/api/algodv2.ts +2 -2
  115. package/src/families/algorand/js-broadcast.ts +1 -1
  116. package/src/families/algorand/js-signOperation.ts +8 -3
  117. package/src/families/bitcoin/wallet-btc/crypto/base.ts +41 -20
  118. package/src/families/bitcoin/wallet-btc/crypto/bitcoin.ts +12 -5
  119. package/src/families/bitcoin/wallet-btc/crypto/bitcoincash.ts +11 -4
  120. package/src/families/bitcoin/wallet-btc/crypto/decred.ts +11 -4
  121. package/src/families/bitcoin/wallet-btc/crypto/litecoin.ts +11 -4
  122. package/src/families/bitcoin/wallet-btc/crypto/zec.ts +11 -4
  123. package/src/families/bitcoin/wallet-btc/crypto/zen.ts +11 -4
  124. package/src/families/bitcoin/wallet-btc/wallet.ts +1 -3
  125. package/src/families/bitcoin/wallet-btc/xpub.ts +1 -1
  126. package/src/families/ethereum/datasets/ethereum.scanAccounts.1.ts +43 -43
  127. package/src/families/ethereum/nft.integration.test.ts +1 -18
  128. package/src/families/ethereum/synchronisation.ts +1 -6
  129. package/src/families/solana/api/chain/index.ts +8 -7
  130. package/src/families/solana/bridge/bridge.ts +11 -11
  131. package/src/families/solana/bridge/js.ts +3 -3
  132. package/src/families/solana/bridge/mock.ts +1 -1
  133. package/src/families/solana/test-dataset.ts +340 -337
  134. package/src/families/solana/utils.ts +9 -8
  135. package/src/families/tezos/datasets/tezos.scanAccounts.1.ts +39 -39
  136. package/src/hw/connectApp.ts +39 -36
  137. package/src/market/utils/countervalueFormatter.ts +1 -1
  138. package/src/nft/support.ts +1 -3
  139. package/src/platform/PlatformAppProvider/api/api.mock.ts +27 -0
  140. package/src/types/manager.ts +7 -0
  141. package/lib/families/ethereum/versions.d.ts +0 -2
  142. package/lib/families/ethereum/versions.d.ts.map +0 -1
  143. package/lib/families/ethereum/versions.js +0 -5
  144. package/lib/families/ethereum/versions.js.map +0 -1
  145. package/src/__tests__/.DS_Store +0 -0
  146. package/src/families/ethereum/versions.ts +0 -1
@@ -15062,15 +15062,25 @@ Array [
15062
15062
  "id": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM",
15063
15063
  "index": 0,
15064
15064
  "name": "Ethereum 1",
15065
- "nfts": undefined,
15066
- "operationsCount": 73,
15065
+ "nfts": Array [
15066
+ Object {
15067
+ "amount": "4",
15068
+ "collection": Object {
15069
+ "contract": "0x495f947276749Ce646f68AC8c248420045cb7b5e",
15070
+ "standard": "ERC1155",
15071
+ },
15072
+ "id": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM+0x495f947276749Ce646f68AC8c248420045cb7b5e+77770246133050101334277152821957558007745772239357041338818208158214799753316",
15073
+ "tokenId": "77770246133050101334277152821957558007745772239357041338818208158214799753316",
15074
+ },
15075
+ ],
15076
+ "operationsCount": 74,
15067
15077
  "pendingOperations": Array [],
15068
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
15078
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
15069
15079
  "spendableBalance": "0",
15070
15080
  "starred": false,
15071
15081
  "subAccounts": Array [],
15072
15082
  "swapHistory": Array [],
15073
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
15083
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
15074
15084
  "unitMagnitude": 18,
15075
15085
  "used": true,
15076
15086
  },
@@ -15103,15 +15113,15 @@ Array [
15103
15113
  "id": "js:2:ethereum:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:",
15104
15114
  "index": 0,
15105
15115
  "name": "Ethereum 1",
15106
- "nfts": undefined,
15116
+ "nfts": Array [],
15107
15117
  "operationsCount": 367,
15108
15118
  "pendingOperations": Array [],
15109
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
15119
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
15110
15120
  "spendableBalance": "0",
15111
15121
  "starred": false,
15112
15122
  "subAccounts": Array [],
15113
15123
  "swapHistory": Array [],
15114
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
15124
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
15115
15125
  "unitMagnitude": 18,
15116
15126
  "used": true,
15117
15127
  },
@@ -15148,7 +15158,7 @@ Array [
15148
15158
  "balance": "0",
15149
15159
  "compoundBalance": undefined,
15150
15160
  "id": "js:2:ethereum:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
15151
- "operationsCount": 17,
15161
+ "operationsCount": 16,
15152
15162
  "parentId": "js:2:ethereum:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:",
15153
15163
  "pendingOperations": Array [],
15154
15164
  "spendableBalance": "0",
@@ -15578,15 +15588,15 @@ Array [
15578
15588
  "id": "js:2:ethereum:0x667F9BE94a42458cb53A3A66511Dca19b397738d:",
15579
15589
  "index": 1,
15580
15590
  "name": "Ethereum 2",
15581
- "nfts": undefined,
15591
+ "nfts": Array [],
15582
15592
  "operationsCount": 185,
15583
15593
  "pendingOperations": Array [],
15584
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
15594
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
15585
15595
  "spendableBalance": "200000000000000",
15586
15596
  "starred": false,
15587
15597
  "subAccounts": Array [],
15588
15598
  "swapHistory": Array [],
15589
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
15599
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
15590
15600
  "unitMagnitude": 18,
15591
15601
  "used": true,
15592
15602
  },
@@ -15913,15 +15923,15 @@ Array [
15913
15923
  "id": "js:2:ethereum:0x8f95502911C81a5EC2ba4b815ed2d2C5e1c88925:",
15914
15924
  "index": 2,
15915
15925
  "name": "Ethereum 3",
15916
- "nfts": undefined,
15926
+ "nfts": Array [],
15917
15927
  "operationsCount": 26,
15918
15928
  "pendingOperations": Array [],
15919
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
15929
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
15920
15930
  "spendableBalance": "0",
15921
15931
  "starred": false,
15922
15932
  "subAccounts": Array [],
15923
15933
  "swapHistory": Array [],
15924
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
15934
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
15925
15935
  "unitMagnitude": 18,
15926
15936
  "used": true,
15927
15937
  },
@@ -16010,15 +16020,15 @@ Array [
16010
16020
  "id": "js:2:ethereum:0x8ba41105fFA54510cb9D67cb3A72624D4052cA08:",
16011
16021
  "index": 3,
16012
16022
  "name": "Ethereum 4",
16013
- "nfts": undefined,
16023
+ "nfts": Array [],
16014
16024
  "operationsCount": 49,
16015
16025
  "pendingOperations": Array [],
16016
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
16026
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
16017
16027
  "spendableBalance": "0",
16018
16028
  "starred": false,
16019
16029
  "subAccounts": Array [],
16020
16030
  "swapHistory": Array [],
16021
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
16031
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
16022
16032
  "unitMagnitude": 18,
16023
16033
  "used": true,
16024
16034
  },
@@ -16097,7 +16107,7 @@ Array [
16097
16107
  "balance": "0",
16098
16108
  "compoundBalance": undefined,
16099
16109
  "id": "js:2:ethereum:0x8ba41105fFA54510cb9D67cb3A72624D4052cA08:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
16100
- "operationsCount": 5,
16110
+ "operationsCount": 4,
16101
16111
  "parentId": "js:2:ethereum:0x8ba41105fFA54510cb9D67cb3A72624D4052cA08:",
16102
16112
  "pendingOperations": Array [],
16103
16113
  "spendableBalance": "0",
@@ -16135,15 +16145,15 @@ Array [
16135
16145
  "id": "js:2:ethereum:0x6b3493FE181EA283e0335e5D8D768e2122bC6c18:",
16136
16146
  "index": 4,
16137
16147
  "name": "Ethereum 5",
16138
- "nfts": undefined,
16148
+ "nfts": Array [],
16139
16149
  "operationsCount": 32,
16140
16150
  "pendingOperations": Array [],
16141
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
16151
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
16142
16152
  "spendableBalance": "9121744300000000",
16143
16153
  "starred": false,
16144
16154
  "subAccounts": Array [],
16145
16155
  "swapHistory": Array [],
16146
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
16156
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
16147
16157
  "unitMagnitude": 18,
16148
16158
  "used": true,
16149
16159
  },
@@ -16232,15 +16242,15 @@ Array [
16232
16242
  "id": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:",
16233
16243
  "index": 5,
16234
16244
  "name": "Ethereum 6",
16235
- "nfts": undefined,
16245
+ "nfts": Array [],
16236
16246
  "operationsCount": 84,
16237
16247
  "pendingOperations": Array [],
16238
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
16248
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
16239
16249
  "spendableBalance": "0",
16240
16250
  "starred": false,
16241
16251
  "subAccounts": Array [],
16242
16252
  "swapHistory": Array [],
16243
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_6062",
16253
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_6062",
16244
16254
  "unitMagnitude": 18,
16245
16255
  "used": true,
16246
16256
  },
@@ -16249,7 +16259,7 @@ Array [
16249
16259
  "balance": "0",
16250
16260
  "compoundBalance": undefined,
16251
16261
  "id": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
16252
- "operationsCount": 27,
16262
+ "operationsCount": 25,
16253
16263
  "parentId": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:",
16254
16264
  "pendingOperations": Array [],
16255
16265
  "spendableBalance": "0",
@@ -16388,7 +16398,7 @@ Array [
16388
16398
  "nfts": undefined,
16389
16399
  "operationsCount": 0,
16390
16400
  "pendingOperations": Array [],
16391
- "seedIdentifier": "0434ab5fd7ee8bd794b8a41875aa9a78a296d7c4246531dfd36d47fa6bb42c8eb02720c6d9802b8590c4a461f08c2a7696557a9ec1d4fd0ca340c63b33ad359f42",
16401
+ "seedIdentifier": "0469877df9567b58e6ef8f6cf1fb8a8e1bf28a327dee31b183a6b9cd1f3da063af0924506a9912793ef31e41df19f8653fa31bb1fecc32d2e41abdddb22ccb6210",
16392
16402
  "spendableBalance": "0",
16393
16403
  "starred": false,
16394
16404
  "subAccounts": Array [],
@@ -16428,6 +16438,54 @@ Array [
16428
16438
  "type": "OUT",
16429
16439
  "value": "1273288000000000",
16430
16440
  },
16441
+ Object {
16442
+ "accountId": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM",
16443
+ "blockHash": "0x807ea3bc234c1b37f3659ad0cd0af3423ac4d6ffe7552ddf195393d136aa46d0",
16444
+ "blockHeight": 13314884,
16445
+ "contract": undefined,
16446
+ "extra": Object {},
16447
+ "fee": "5606826680224380",
16448
+ "hash": "0x074692133155d2019c2f71d509c671520a85a796197691bcc6ccd21c00d965bc",
16449
+ "id": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM-0x074692133155d2019c2f71d509c671520a85a796197691bcc6ccd21c00d965bc-NONE",
16450
+ "internalOperations": Array [],
16451
+ "nftOperations": Array [
16452
+ Object {
16453
+ "accountId": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM",
16454
+ "blockHash": "0x807ea3bc234c1b37f3659ad0cd0af3423ac4d6ffe7552ddf195393d136aa46d0",
16455
+ "blockHeight": 13314884,
16456
+ "contract": "0x495f947276749Ce646f68AC8c248420045cb7b5e",
16457
+ "date": "2021-09-28T14:54:24.000Z",
16458
+ "extra": Object {},
16459
+ "fee": "5606826680224380",
16460
+ "hash": "0x074692133155d2019c2f71d509c671520a85a796197691bcc6ccd21c00d965bc",
16461
+ "id": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM+0x495f947276749ce646f68ac8c248420045cb7b5e+77770246133050101334277152821957558007745772239357041338818208158214799753316-0x074692133155d2019c2f71d509c671520a85a796197691bcc6ccd21c00d965bc-NFT_IN-i0_0",
16462
+ "operator": "0xabf06640f8ca8fC5e0Ed471b10BeFCDf65A33e43",
16463
+ "recipients": Array [
16464
+ "0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd",
16465
+ ],
16466
+ "senders": Array [
16467
+ "0xabf06640f8ca8fC5e0Ed471b10BeFCDf65A33e43",
16468
+ ],
16469
+ "standard": "ERC1155",
16470
+ "tokenId": "77770246133050101334277152821957558007745772239357041338818208158214799753316",
16471
+ "transactionSequenceNumber": 68,
16472
+ "type": "NFT_IN",
16473
+ "value": "4",
16474
+ },
16475
+ ],
16476
+ "operator": undefined,
16477
+ "recipients": Array [
16478
+ "0x495f947276749Ce646f68AC8c248420045cb7b5e",
16479
+ ],
16480
+ "senders": Array [
16481
+ "0xabf06640f8ca8fC5e0Ed471b10BeFCDf65A33e43",
16482
+ ],
16483
+ "standard": undefined,
16484
+ "tokenId": undefined,
16485
+ "transactionSequenceNumber": 68,
16486
+ "type": "NONE",
16487
+ "value": "0",
16488
+ },
16431
16489
  Object {
16432
16490
  "accountId": "js:2:ethereum:0x5df0C369641B8Af3c7e9ae076E5466eF678319Cd:ethM",
16433
16491
  "blockHash": "0x13a0efd8512a666b25f772797ed29c3d0b9f53dc556070ba5eac7c192a958c3a",
@@ -28497,28 +28555,6 @@ Array [
28497
28555
  "type": "IN",
28498
28556
  "value": "100000000000000000",
28499
28557
  },
28500
- Object {
28501
- "accountId": "js:2:ethereum:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
28502
- "blockHash": "0x63f7bf8c6dd9914e077c18e417f8e694e462c869f4e1b4811bd7b3810fcedd6a",
28503
- "blockHeight": 8802643,
28504
- "contract": undefined,
28505
- "extra": Object {},
28506
- "fee": "1033222500000000",
28507
- "hash": "0xe3317e5ef66ee64a2a94c2619c4e92e8e8578060de10dce2dcc716dfef13ffd3",
28508
- "id": "js:2:ethereum:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0-0xe3317e5ef66ee64a2a94c2619c4e92e8e8578060de10dce2dcc716dfef13ffd3-OUT",
28509
- "operator": undefined,
28510
- "recipients": Array [
28511
- "0xF5DCe57282A584D2746FaF1593d3121Fcac444dC",
28512
- ],
28513
- "senders": Array [
28514
- "0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5",
28515
- ],
28516
- "standard": undefined,
28517
- "tokenId": undefined,
28518
- "transactionSequenceNumber": 190,
28519
- "type": "OUT",
28520
- "value": "3900000000000000000",
28521
- },
28522
28558
  Object {
28523
28559
  "accountId": "js:2:ethereum:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
28524
28560
  "blockHash": "0xf210a3a9c62648a226822fd13fca7669a3ac1edd43f668dff0c2d1fa4f0e6d84",
@@ -43228,28 +43264,6 @@ Array [
43228
43264
  "type": "IN",
43229
43265
  "value": "3002415766102553764",
43230
43266
  },
43231
- Object {
43232
- "accountId": "js:2:ethereum:0x8ba41105fFA54510cb9D67cb3A72624D4052cA08:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
43233
- "blockHash": "0x4781bd639178264fb3ebe0c1d775d5c7df1b5876ce2008258942915aea3fbb32",
43234
- "blockHeight": 8802751,
43235
- "contract": undefined,
43236
- "extra": Object {},
43237
- "fee": "1033222500000000",
43238
- "hash": "0x6c667f79774ab10abe2525a64fb6215b71556d11da2a37a4559b0bad3f48119c",
43239
- "id": "js:2:ethereum:0x8ba41105fFA54510cb9D67cb3A72624D4052cA08:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0-0x6c667f79774ab10abe2525a64fb6215b71556d11da2a37a4559b0bad3f48119c-OUT",
43240
- "operator": undefined,
43241
- "recipients": Array [
43242
- "0xF5DCe57282A584D2746FaF1593d3121Fcac444dC",
43243
- ],
43244
- "senders": Array [
43245
- "0x8ba41105fFA54510cb9D67cb3A72624D4052cA08",
43246
- ],
43247
- "standard": undefined,
43248
- "tokenId": undefined,
43249
- "transactionSequenceNumber": 23,
43250
- "type": "OUT",
43251
- "value": "3000000000000000000",
43252
- },
43253
43267
  Object {
43254
43268
  "accountId": "js:2:ethereum:0x8ba41105fFA54510cb9D67cb3A72624D4052cA08:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
43255
43269
  "blockHash": "0x4a86d7d26e639832ca4d4ce1a1d78f969a442b764e4056c42ff545f2979c672f",
@@ -46565,28 +46579,6 @@ Array [
46565
46579
  "type": "IN",
46566
46580
  "value": "1500000000000000000",
46567
46581
  },
46568
- Object {
46569
- "accountId": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
46570
- "blockHash": "0xc245c8ea9d2be5c5426784f52666891449ff1254805800459e12416de8895c67",
46571
- "blockHeight": 8797487,
46572
- "contract": undefined,
46573
- "extra": Object {},
46574
- "fee": "60818000000000",
46575
- "hash": "0x2531e17af0284780975e7c2d6ca5b69379784dcbc9daa37a5e7fe3c5bce56aa4",
46576
- "id": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0-0x2531e17af0284780975e7c2d6ca5b69379784dcbc9daa37a5e7fe3c5bce56aa4-OUT",
46577
- "operator": undefined,
46578
- "recipients": Array [
46579
- "0xF5DCe57282A584D2746FaF1593d3121Fcac444dC",
46580
- ],
46581
- "senders": Array [
46582
- "0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42",
46583
- ],
46584
- "standard": undefined,
46585
- "tokenId": undefined,
46586
- "transactionSequenceNumber": 13,
46587
- "type": "OUT",
46588
- "value": "0",
46589
- },
46590
46582
  Object {
46591
46583
  "accountId": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
46592
46584
  "blockHash": "0x87a67710b7995b3134b29d5d9b7d079a7cd978d6c05630a57b9044064aabd0f9",
@@ -46653,28 +46645,6 @@ Array [
46653
46645
  "type": "IN",
46654
46646
  "value": "3981479007482754530",
46655
46647
  },
46656
- Object {
46657
- "accountId": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
46658
- "blockHash": "0xfa5733cd567242ff5634282048fc4ecf40c81571db46d6276317896ae6979d11",
46659
- "blockHeight": 8796771,
46660
- "contract": undefined,
46661
- "extra": Object {},
46662
- "fee": "1882761000000000",
46663
- "hash": "0x4ad071f6d38d8e218f2fa02031885efed19f41e855b03d9657a5f52fb0206bae",
46664
- "id": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0-0x4ad071f6d38d8e218f2fa02031885efed19f41e855b03d9657a5f52fb0206bae-OUT",
46665
- "operator": undefined,
46666
- "recipients": Array [
46667
- "0xF5DCe57282A584D2746FaF1593d3121Fcac444dC",
46668
- ],
46669
- "senders": Array [
46670
- "0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42",
46671
- ],
46672
- "standard": undefined,
46673
- "tokenId": undefined,
46674
- "transactionSequenceNumber": 11,
46675
- "type": "OUT",
46676
- "value": "1000000000000000000",
46677
- },
46678
46648
  Object {
46679
46649
  "accountId": "js:2:ethereum:0x25FEa94454Fd3A7A18D95811F5e4eb573c1cCC42:+ethereum%2Ferc20%2Fdai_stablecoin_v1_0",
46680
46650
  "blockHash": "0x02987cb3b0268d9c8db475ec013995ff16e4c7d8f64f583c28309597b0ce5f8d",
@@ -48129,7 +48099,7 @@ Array [
48129
48099
  "starred": false,
48130
48100
  "subAccounts": Array [],
48131
48101
  "swapHistory": Array [],
48132
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_0",
48102
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_0",
48133
48103
  "unitMagnitude": 18,
48134
48104
  "used": true,
48135
48105
  },
@@ -48156,7 +48126,7 @@ Array [
48156
48126
  "starred": false,
48157
48127
  "subAccounts": Array [],
48158
48128
  "swapHistory": Array [],
48159
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_0",
48129
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_0",
48160
48130
  "unitMagnitude": 18,
48161
48131
  "used": true,
48162
48132
  },
@@ -48183,7 +48153,7 @@ Array [
48183
48153
  "starred": false,
48184
48154
  "subAccounts": Array [],
48185
48155
  "swapHistory": Array [],
48186
- "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_false_0",
48156
+ "syncHash": "[\\"ethereum/erc20/ampleforth\\",\\"ethereum/erc20/steth\\"]_0",
48187
48157
  "unitMagnitude": 18,
48188
48158
  "used": true,
48189
48159
  },
@@ -61787,115 +61757,6 @@ Array [
61787
61757
  ]
61788
61758
  `;
61789
61759
 
61790
- exports[`solana currency bridge scanAccounts solana seed 1 1`] = `
61791
- Array [
61792
- Object {
61793
- "balance": "83389840",
61794
- "currencyId": "solana",
61795
- "derivationMode": "solanaMain",
61796
- "freshAddress": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
61797
- "freshAddressPath": "44'/501'",
61798
- "freshAddresses": Array [
61799
- Object {
61800
- "address": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
61801
- "derivationPath": "44'/501'",
61802
- },
61803
- ],
61804
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
61805
- "index": 0,
61806
- "name": "Solana 1",
61807
- "nfts": undefined,
61808
- "operationsCount": 2,
61809
- "pendingOperations": Array [],
61810
- "seedIdentifier": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
61811
- "spendableBalance": "83389840",
61812
- "starred": false,
61813
- "swapHistory": Array [],
61814
- "syncHash": undefined,
61815
- "unitMagnitude": 9,
61816
- "used": true,
61817
- },
61818
- Object {
61819
- "balance": "0",
61820
- "currencyId": "solana",
61821
- "derivationMode": "solanaSub",
61822
- "freshAddress": "6rEgdtB3sgjKJnRE172YEr9z6qUyr4nFW28vJokuD36A",
61823
- "freshAddressPath": "44'/501'/0'",
61824
- "freshAddresses": Array [
61825
- Object {
61826
- "address": "6rEgdtB3sgjKJnRE172YEr9z6qUyr4nFW28vJokuD36A",
61827
- "derivationPath": "44'/501'/0'",
61828
- },
61829
- ],
61830
- "id": "js:2:solana:6rEgdtB3sgjKJnRE172YEr9z6qUyr4nFW28vJokuD36A:solanaSub",
61831
- "index": 0,
61832
- "name": "Solana 1",
61833
- "nfts": undefined,
61834
- "operationsCount": 0,
61835
- "pendingOperations": Array [],
61836
- "seedIdentifier": "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
61837
- "spendableBalance": "0",
61838
- "starred": false,
61839
- "swapHistory": Array [],
61840
- "syncHash": undefined,
61841
- "unitMagnitude": 9,
61842
- "used": false,
61843
- },
61844
- ]
61845
- `;
61846
-
61847
- exports[`solana currency bridge scanAccounts solana seed 1 2`] = `
61848
- Array [
61849
- Array [
61850
- Object {
61851
- "accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
61852
- "blockHash": "4NSL4VrfWd2eUccMD95dLQsdy5UGz8yhokpfH1et1R2c",
61853
- "blockHeight": 108520722,
61854
- "contract": undefined,
61855
- "extra": Object {},
61856
- "fee": "0",
61857
- "hasFailed": false,
61858
- "hash": "25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna",
61859
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna-IN",
61860
- "operator": undefined,
61861
- "recipients": Array [
61862
- "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
61863
- ],
61864
- "senders": Array [
61865
- "7CZgkK494jMdoY8xpXY3ViLjpDGMbNikCzMtAT5cAjKk",
61866
- ],
61867
- "standard": undefined,
61868
- "tokenId": undefined,
61869
- "type": "IN",
61870
- "value": "93394840",
61871
- },
61872
- Object {
61873
- "accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
61874
- "blockHash": "9tPbgLaETEenufCt5SzXMuWijgFJj549W9j5cJLbaogn",
61875
- "blockHeight": 108521109,
61876
- "contract": undefined,
61877
- "extra": Object {},
61878
- "fee": "5000",
61879
- "hasFailed": false,
61880
- "hash": "A29zPnK1jPr2tGziTnaAvSnadYR2kLCv9sPywj9FJsaEFjtpwmUonspN3WJgz4u6XWmjtVpoFsDrygEnvW51cgk",
61881
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-A29zPnK1jPr2tGziTnaAvSnadYR2kLCv9sPywj9FJsaEFjtpwmUonspN3WJgz4u6XWmjtVpoFsDrygEnvW51cgk-OUT",
61882
- "operator": undefined,
61883
- "recipients": Array [
61884
- "8RtwWeqdFz4EFuZU3MAadfYMWSdRMamjFrfq6BXkHuNN",
61885
- ],
61886
- "senders": Array [
61887
- "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
61888
- ],
61889
- "standard": undefined,
61890
- "tokenId": undefined,
61891
- "type": "OUT",
61892
- "value": "10005000",
61893
- },
61894
- ],
61895
- Array [],
61896
- ]
61897
- `;
61898
-
61899
61760
  exports[`stellar currency bridge scanAccounts stellar seed 1 1`] = `
61900
61761
  Array [
61901
61762
  Object {
@@ -34,7 +34,7 @@ describe("synced xpub utilites functions", () => {
34
34
 
35
35
  beforeAll(async () => {
36
36
  await xpub.sync();
37
- }, 60000);
37
+ }, 120000);
38
38
 
39
39
  it("should compute accounts/addresses/balances correctly", async () => {
40
40
  const addresses = await xpub.getXpubAddresses();
@@ -478,7 +478,7 @@ export function testBridge<T extends Transaction>(
478
478
 
479
479
  // existing ops are keeping refs
480
480
  synced.operations.slice(count).forEach((op, i) => {
481
- expect(op).toBe(operations[i]);
481
+ expect(op).toStrictEqual(operations[i]);
482
482
  });
483
483
  }
484
484
  );
package/src/apps/hw.ts CHANGED
@@ -5,6 +5,7 @@ import { concat, of, EMPTY, from, Observable, throwError, defer } from "rxjs";
5
5
  import { mergeMap, map } from "rxjs/operators";
6
6
  import type { Exec, AppOp, ListAppsEvent, ListAppsResult } from "./types";
7
7
  import type { App, DeviceInfo } from "../types/manager";
8
+ import { AppType } from "../types/manager";
8
9
  import manager, { getProviderId } from "../manager";
9
10
  import installApp from "../hw/installApp";
10
11
  import uninstallApp from "../hw/uninstallApp";
@@ -313,6 +314,11 @@ export const listApps = (
313
314
  }
314
315
  }
315
316
 
317
+ const type =
318
+ application.description === AppType.PLUGIN
319
+ ? AppType.PLUGIN
320
+ : AppType.APP;
321
+
316
322
  const app: App = polyfillApp({
317
323
  id: version.id,
318
324
  name: version.name,
@@ -320,6 +326,7 @@ export const listApps = (
320
326
  version: version.version,
321
327
  currencyId,
322
328
  description: version.description,
329
+ type,
323
330
  dateModified: version.date_last_modified,
324
331
  icon: version.icon,
325
332
  authorName: application.authorName,
@@ -31,6 +31,7 @@ const appVersionsRequired = {
31
31
  Algorand: ">= 1.2.9",
32
32
  Polkadot: ">= 9.9140.0",
33
33
  Elrond: ">= 1.0.11",
34
+ Ethereum: ">= 1.9.17",
34
35
  };
35
36
  export function mustUpgrade(
36
37
  deviceModel: DeviceModelId,
package/src/env.ts CHANGED
@@ -120,6 +120,11 @@ const envDefinitions = {
120
120
  def: "https://tron.coin.ledger.com",
121
121
  desc: "proxy url for trongrid API",
122
122
  },
123
+ API_SOLANA_PROXY: {
124
+ parser: stringParser,
125
+ def: "https://solana.coin.ledger.com",
126
+ desc: "proxy url for solana API",
127
+ },
123
128
  BASE_SOCKET_URL: {
124
129
  def: "wss://scriptrunner.api.live.ledger.com/update",
125
130
  parser: stringParser,
@@ -380,11 +385,6 @@ const envDefinitions = {
380
385
  parser: boolParser,
381
386
  desc: "mock the cryptoassets config and test partner (in the context of app-exchange)",
382
387
  },
383
- NFT: {
384
- def: false,
385
- parser: boolParser,
386
- desc: "synchronizing nfts",
387
- },
388
388
  NFT_CURRENCIES: {
389
389
  def: "ethereum",
390
390
  parser: stringParser,
@@ -2,7 +2,7 @@ import { useEffect } from "react";
2
2
  import { Account, TokenAccount } from "../../../types";
3
3
  import { useCurrenciesByMarketcap } from "../../../currencies/sortByMarketcap";
4
4
  import { listCryptoCurrencies, listTokens } from "../../../currencies";
5
- import { getAccountCurrency } from "../../../account";
5
+ import { getAvailableAccountsById } from "../utils";
6
6
 
7
7
  // Pick a default source account if none are selected.
8
8
  export const usePickDefaultAccount = (
@@ -17,14 +17,9 @@ export const usePickDefaultAccount = (
17
17
  if (!fromAccount && allCurrencies.length > 0) {
18
18
  const defaultAccount: Account | TokenAccount | undefined = allCurrencies
19
19
  .map(({ id }) =>
20
- accounts
21
- .filter(
22
- (acc) =>
23
- getAccountCurrency(acc)?.id === id &&
24
- acc.balance.gt(0) &&
25
- !acc.disabled
26
- )
27
- .sort((a, b) => b.balance.minus(a.balance).toNumber())
20
+ getAvailableAccountsById(id, accounts).filter((account) =>
21
+ account.balance.gt(0)
22
+ )
28
23
  )
29
24
  .flat(1)
30
25
  .find(Boolean);
@@ -1,6 +1,10 @@
1
1
  import BigNumber from "bignumber.js";
2
2
 
3
- import { pickExchangeRate, getAccountTuplesForCurrency } from "./index";
3
+ import {
4
+ pickExchangeRate,
5
+ getAccountTuplesForCurrency,
6
+ getAvailableAccountsById,
7
+ } from "./index";
4
8
  import { getMockExchangeRate } from "../mock";
5
9
  import { genAccount } from "../../../mock/account";
6
10
  import type {
@@ -222,3 +226,42 @@ describe("swap/utils/getAccountTuplesForCurrency", () => {
222
226
  });
223
227
  });
224
228
  });
229
+
230
+ describe("swap/utils/getAvailableAccountsById", () => {
231
+ const getEthAccount = getAccountCreator("ethereum");
232
+ const getBtcAccount = getAccountCreator("bitcoin");
233
+ const getPolkadotAccount = getAccountCreator("polkadot");
234
+ const getCosmosAccount = getAccountCreator("cosmos");
235
+
236
+ test("return the correct accounts after sorting/filtering them", () => {
237
+ const [
238
+ disabledAccount,
239
+ higherBalanceAccount,
240
+ lowerBalanceAccount,
241
+ ...accounts
242
+ ] = new Array(6).fill(null).map(getEthAccount);
243
+
244
+ // mutate some accounts to test sorting/filtering
245
+ disabledAccount.disabled = true;
246
+ higherBalanceAccount.balance = new BigNumber(10);
247
+ lowerBalanceAccount.balance = new BigNumber(2);
248
+
249
+ const allAccounts: Account[] = [
250
+ getCosmosAccount(),
251
+ disabledAccount,
252
+ higherBalanceAccount,
253
+ lowerBalanceAccount,
254
+ ...accounts,
255
+ getBtcAccount(),
256
+ getPolkadotAccount(),
257
+ ];
258
+
259
+ const results = getAvailableAccountsById("ethereum", allAccounts);
260
+ expect(results).toHaveLength(5);
261
+ expect(results[0].balance.toNumber()).toBeGreaterThan(0);
262
+ expect(results[1].balance.toNumber()).toBeGreaterThan(0);
263
+ expect(results[0].balance.toNumber()).toBeGreaterThan(
264
+ results[1].balance.toNumber()
265
+ );
266
+ });
267
+ });