@ledgerhq/live-common 25.0.0-next.4 → 25.0.0-next.5

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 (62) hide show
  1. package/lib/apps/support.d.ts.map +1 -1
  2. package/lib/apps/support.js +2 -1
  3. package/lib/apps/support.js.map +1 -1
  4. package/lib/families/cardano/bridge.integration.test.d.ts.map +1 -1
  5. package/lib/families/cardano/bridge.integration.test.js +36 -2
  6. package/lib/families/cardano/bridge.integration.test.js.map +1 -1
  7. package/lib/families/cardano/buildSubAccounts.d.ts.map +1 -1
  8. package/lib/families/cardano/buildSubAccounts.js +5 -3
  9. package/lib/families/cardano/buildSubAccounts.js.map +1 -1
  10. package/lib/families/cardano/deviceTransactionConfig.d.ts +11 -0
  11. package/lib/families/cardano/deviceTransactionConfig.d.ts.map +1 -0
  12. package/lib/families/cardano/deviceTransactionConfig.js +91 -0
  13. package/lib/families/cardano/deviceTransactionConfig.js.map +1 -0
  14. package/lib/families/cardano/errors.d.ts +4 -0
  15. package/lib/families/cardano/errors.d.ts.map +1 -1
  16. package/lib/families/cardano/errors.js +5 -1
  17. package/lib/families/cardano/errors.js.map +1 -1
  18. package/lib/families/cardano/js-estimateMaxSpendable.d.ts.map +1 -1
  19. package/lib/families/cardano/js-estimateMaxSpendable.js +3 -2
  20. package/lib/families/cardano/js-estimateMaxSpendable.js.map +1 -1
  21. package/lib/families/cardano/js-getTransactionStatus.d.ts.map +1 -1
  22. package/lib/families/cardano/js-getTransactionStatus.js +6 -5
  23. package/lib/families/cardano/js-getTransactionStatus.js.map +1 -1
  24. package/lib/families/cardano/js-signOperation.d.ts.map +1 -1
  25. package/lib/families/cardano/js-signOperation.js +10 -5
  26. package/lib/families/cardano/js-signOperation.js.map +1 -1
  27. package/lib/families/cardano/js-synchronisation.d.ts.map +1 -1
  28. package/lib/families/cardano/js-synchronisation.js +126 -98
  29. package/lib/families/cardano/js-synchronisation.js.map +1 -1
  30. package/lib/families/cardano/js-transaction.js +1 -1
  31. package/lib/families/cardano/js-transaction.js.map +1 -1
  32. package/lib/families/cardano/logic.d.ts +1 -0
  33. package/lib/families/cardano/logic.d.ts.map +1 -1
  34. package/lib/families/cardano/logic.js +11 -1
  35. package/lib/families/cardano/logic.js.map +1 -1
  36. package/lib/families/cardano/specs.d.ts.map +1 -1
  37. package/lib/families/cardano/specs.js +39 -1
  38. package/lib/families/cardano/specs.js.map +1 -1
  39. package/lib/families/cardano/speculos-deviceActions.d.ts.map +1 -1
  40. package/lib/families/cardano/speculos-deviceActions.js +15 -0
  41. package/lib/families/cardano/speculos-deviceActions.js.map +1 -1
  42. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  43. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  44. package/lib/generated/deviceTransactionConfig.js +28 -26
  45. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  46. package/package.json +3 -3
  47. package/src/apps/support.ts +1 -0
  48. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +101 -0
  49. package/src/families/cardano/__snapshots__/bridge.integration.test.ts.snap +41 -1
  50. package/src/families/cardano/bridge.integration.test.ts +38 -0
  51. package/src/families/cardano/buildSubAccounts.ts +5 -3
  52. package/src/families/cardano/deviceTransactionConfig.ts +109 -0
  53. package/src/families/cardano/errors.ts +7 -0
  54. package/src/families/cardano/js-estimateMaxSpendable.ts +4 -1
  55. package/src/families/cardano/js-getTransactionStatus.ts +7 -7
  56. package/src/families/cardano/js-signOperation.ts +10 -5
  57. package/src/families/cardano/js-synchronisation.ts +52 -21
  58. package/src/families/cardano/js-transaction.ts +1 -1
  59. package/src/families/cardano/logic.ts +10 -0
  60. package/src/families/cardano/specs.ts +53 -1
  61. package/src/families/cardano/speculos-deviceActions.ts +15 -0
  62. package/src/generated/deviceTransactionConfig.ts +3 -0
@@ -5,34 +5,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  exports.__esModule = true;
6
6
  var deviceTransactionConfig_1 = __importDefault(require("../families/algorand/deviceTransactionConfig"));
7
7
  var deviceTransactionConfig_2 = __importDefault(require("../families/bitcoin/deviceTransactionConfig"));
8
- var deviceTransactionConfig_3 = __importDefault(require("../families/celo/deviceTransactionConfig"));
9
- var deviceTransactionConfig_4 = __importDefault(require("../families/cosmos/deviceTransactionConfig"));
10
- var deviceTransactionConfig_5 = __importDefault(require("../families/crypto_org/deviceTransactionConfig"));
11
- var deviceTransactionConfig_6 = __importDefault(require("../families/elrond/deviceTransactionConfig"));
12
- var deviceTransactionConfig_7 = __importDefault(require("../families/ethereum/deviceTransactionConfig"));
13
- var deviceTransactionConfig_8 = __importDefault(require("../families/filecoin/deviceTransactionConfig"));
14
- var deviceTransactionConfig_9 = __importDefault(require("../families/hedera/deviceTransactionConfig"));
15
- var deviceTransactionConfig_10 = __importDefault(require("../families/polkadot/deviceTransactionConfig"));
16
- var deviceTransactionConfig_11 = __importDefault(require("../families/ripple/deviceTransactionConfig"));
17
- var deviceTransactionConfig_12 = __importDefault(require("../families/solana/deviceTransactionConfig"));
18
- var deviceTransactionConfig_13 = __importDefault(require("../families/stellar/deviceTransactionConfig"));
19
- var deviceTransactionConfig_14 = __importDefault(require("../families/tezos/deviceTransactionConfig"));
20
- var deviceTransactionConfig_15 = __importDefault(require("../families/tron/deviceTransactionConfig"));
8
+ var deviceTransactionConfig_3 = __importDefault(require("../families/cardano/deviceTransactionConfig"));
9
+ var deviceTransactionConfig_4 = __importDefault(require("../families/celo/deviceTransactionConfig"));
10
+ var deviceTransactionConfig_5 = __importDefault(require("../families/cosmos/deviceTransactionConfig"));
11
+ var deviceTransactionConfig_6 = __importDefault(require("../families/crypto_org/deviceTransactionConfig"));
12
+ var deviceTransactionConfig_7 = __importDefault(require("../families/elrond/deviceTransactionConfig"));
13
+ var deviceTransactionConfig_8 = __importDefault(require("../families/ethereum/deviceTransactionConfig"));
14
+ var deviceTransactionConfig_9 = __importDefault(require("../families/filecoin/deviceTransactionConfig"));
15
+ var deviceTransactionConfig_10 = __importDefault(require("../families/hedera/deviceTransactionConfig"));
16
+ var deviceTransactionConfig_11 = __importDefault(require("../families/polkadot/deviceTransactionConfig"));
17
+ var deviceTransactionConfig_12 = __importDefault(require("../families/ripple/deviceTransactionConfig"));
18
+ var deviceTransactionConfig_13 = __importDefault(require("../families/solana/deviceTransactionConfig"));
19
+ var deviceTransactionConfig_14 = __importDefault(require("../families/stellar/deviceTransactionConfig"));
20
+ var deviceTransactionConfig_15 = __importDefault(require("../families/tezos/deviceTransactionConfig"));
21
+ var deviceTransactionConfig_16 = __importDefault(require("../families/tron/deviceTransactionConfig"));
21
22
  exports["default"] = {
22
23
  algorand: deviceTransactionConfig_1["default"],
23
24
  bitcoin: deviceTransactionConfig_2["default"],
24
- celo: deviceTransactionConfig_3["default"],
25
- cosmos: deviceTransactionConfig_4["default"],
26
- crypto_org: deviceTransactionConfig_5["default"],
27
- elrond: deviceTransactionConfig_6["default"],
28
- ethereum: deviceTransactionConfig_7["default"],
29
- filecoin: deviceTransactionConfig_8["default"],
30
- hedera: deviceTransactionConfig_9["default"],
31
- polkadot: deviceTransactionConfig_10["default"],
32
- ripple: deviceTransactionConfig_11["default"],
33
- solana: deviceTransactionConfig_12["default"],
34
- stellar: deviceTransactionConfig_13["default"],
35
- tezos: deviceTransactionConfig_14["default"],
36
- tron: deviceTransactionConfig_15["default"]
25
+ cardano: deviceTransactionConfig_3["default"],
26
+ celo: deviceTransactionConfig_4["default"],
27
+ cosmos: deviceTransactionConfig_5["default"],
28
+ crypto_org: deviceTransactionConfig_6["default"],
29
+ elrond: deviceTransactionConfig_7["default"],
30
+ ethereum: deviceTransactionConfig_8["default"],
31
+ filecoin: deviceTransactionConfig_9["default"],
32
+ hedera: deviceTransactionConfig_10["default"],
33
+ polkadot: deviceTransactionConfig_11["default"],
34
+ ripple: deviceTransactionConfig_12["default"],
35
+ solana: deviceTransactionConfig_13["default"],
36
+ stellar: deviceTransactionConfig_14["default"],
37
+ tezos: deviceTransactionConfig_15["default"],
38
+ tron: deviceTransactionConfig_16["default"]
37
39
  };
38
40
  //# sourceMappingURL=deviceTransactionConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../../src/generated/deviceTransactionConfig.ts"],"names":[],"mappings":";;;;;AAAA,yGAAoE;AAEpE,wGAAkE;AAElE,qGAA4D;AAE5D,uGAAgE;AAEhE,2GAAwE;AAExE,uGAAgE;AAEhE,yGAAoE;AAEpE,yGAAoE;AAEpE,uGAAgE;AAEhE,0GAAoE;AAEpE,wGAAgE;AAEhE,wGAAgE;AAEhE,yGAAkE;AAElE,uGAA8D;AAE9D,sGAA4D;AAG5D,qBAAe;IACb,QAAQ,sCAAA;IACR,OAAO,sCAAA;IACP,IAAI,sCAAA;IACJ,MAAM,sCAAA;IACN,UAAU,sCAAA;IACV,MAAM,sCAAA;IACN,QAAQ,sCAAA;IACR,QAAQ,sCAAA;IACR,MAAM,sCAAA;IACN,QAAQ,uCAAA;IACR,MAAM,uCAAA;IACN,MAAM,uCAAA;IACN,OAAO,uCAAA;IACP,KAAK,uCAAA;IACL,IAAI,uCAAA;CACL,CAAC"}
1
+ {"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../../src/generated/deviceTransactionConfig.ts"],"names":[],"mappings":";;;;;AAAA,yGAAoE;AAEpE,wGAAkE;AAElE,wGAAkE;AAElE,qGAA4D;AAE5D,uGAAgE;AAEhE,2GAAwE;AAExE,uGAAgE;AAEhE,yGAAoE;AAEpE,yGAAoE;AAEpE,wGAAgE;AAEhE,0GAAoE;AAEpE,wGAAgE;AAEhE,wGAAgE;AAEhE,yGAAkE;AAElE,uGAA8D;AAE9D,sGAA4D;AAG5D,qBAAe;IACb,QAAQ,sCAAA;IACR,OAAO,sCAAA;IACP,OAAO,sCAAA;IACP,IAAI,sCAAA;IACJ,MAAM,sCAAA;IACN,UAAU,sCAAA;IACV,MAAM,sCAAA;IACN,QAAQ,sCAAA;IACR,QAAQ,sCAAA;IACR,MAAM,uCAAA;IACN,QAAQ,uCAAA;IACR,MAAM,uCAAA;IACN,MAAM,uCAAA;IACN,OAAO,uCAAA;IACP,KAAK,uCAAA;IACL,IAAI,uCAAA;CACL,CAAC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  },
5
5
  "name": "@ledgerhq/live-common",
6
6
  "description": "Common ground for the Ledger Live apps",
7
- "version": "25.0.0-next.4",
7
+ "version": "25.0.0-next.5",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -108,13 +108,13 @@
108
108
  "@ethereumjs/tx": "^3.5.0",
109
109
  "@hashgraph/sdk": "^2.10.1",
110
110
  "@ledgerhq/compressjs": "github:LedgerHQ/compressjs#d9e8e4d994923e0ea76a32b97289bcccfe71b82e",
111
- "@ledgerhq/cryptoassets": "^6.30.0-next.1",
111
+ "@ledgerhq/cryptoassets": "^6.30.0-next.2",
112
112
  "@ledgerhq/devices": "^7.0.0-next.0",
113
113
  "@ledgerhq/errors": "^6.10.1-next.0",
114
114
  "@ledgerhq/hw-app-algorand": "^6.27.2-next.0",
115
115
  "@ledgerhq/hw-app-btc": "^8.0.0-next.0",
116
116
  "@ledgerhq/hw-app-cosmos": "^6.27.2-next.0",
117
- "@ledgerhq/hw-app-eth": "^6.29.2-next.1",
117
+ "@ledgerhq/hw-app-eth": "^6.29.2-next.2",
118
118
  "@ledgerhq/hw-app-polkadot": "^6.27.2-next.0",
119
119
  "@ledgerhq/hw-app-solana": "^6.27.2-next.0",
120
120
  "@ledgerhq/hw-app-str": "^6.27.2-next.0",
@@ -35,6 +35,7 @@ const appVersionsRequired = {
35
35
  Elrond: ">= 1.0.11",
36
36
  Ethereum: ">= 1.9.17",
37
37
  Solana: ">= 1.2.0",
38
+ "Cardano ADA": ">= 4.1.0",
38
39
  };
39
40
  export function mustUpgrade(
40
41
  deviceModel: DeviceModelId,
@@ -6428,6 +6428,107 @@ Array [
6428
6428
  "algorand/asa/137594422",
6429
6429
  "elrond/esdt/555344432d633736663166",
6430
6430
  "elrond/esdt/524944452d376431386539",
6431
+ "cardano_testnet/native/581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e",
6432
+ "cardano/native/a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59",
6433
+ "cardano/native/af2e27f580f7f08e93190a81f72462f153026d06450924726645891b44524950",
6434
+ "cardano/native/9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145",
6435
+ "cardano/native/4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd546f6b68756e",
6436
+ "cardano/native/d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73",
6437
+ "cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e",
6438
+ "cardano/native/afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942",
6439
+ "cardano/native/5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb243561646f736961",
6440
+ "cardano/native/8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc34c4f4253544552",
6441
+ "cardano/native/d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78436172646f67656f",
6442
+ "cardano/native/a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b46495245",
6443
+ "cardano/native/2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a4249534f4e",
6444
+ "cardano/native/f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de61044454653",
6445
+ "cardano/native/544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f047524f57",
6446
+ "cardano/native/1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6574f4c46",
6447
+ "cardano/native/884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941",
6448
+ "cardano/native/7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a424f52475a",
6449
+ "cardano/native/987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd29090374d595448",
6450
+ "cardano/native/6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f5354524950",
6451
+ "cardano/native/6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44",
6452
+ "cardano/native/b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa4051554944",
6453
+ "cardano/native/025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e66362544843",
6454
+ "cardano/native/c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a944494253",
6455
+ "cardano/native/1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e",
6456
+ "cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d4849",
6457
+ "cardano/native/8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b45142524f4f4d",
6458
+ "cardano/native/d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb42454147",
6459
+ "cardano/native/5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9464743",
6460
+ "cardano/native/88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b2941191734575736b6f",
6461
+ "cardano/native/cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf84b41495a454e",
6462
+ "cardano/native/e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8434845525259",
6463
+ "cardano/native/e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d414441464f58",
6464
+ "cardano/native/da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51",
6465
+ "cardano/native/b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a634e455441",
6466
+ "cardano/native/300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a65854",
6467
+ "cardano/native/682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f634e45574d",
6468
+ "cardano/native/d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c650555252",
6469
+ "cardano/native/007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742505443",
6470
+ "cardano/native/a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc55745444e4553444159",
6471
+ "cardano/native/d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a74d595354",
6472
+ "cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e74",
6473
+ "cardano/native/8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b",
6474
+ "cardano/native/a89568bb399d0cdc38367e47831c95186f5c79e58174e08a182323964554424643546f6b656e",
6475
+ "cardano/native/c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41",
6476
+ "cardano/native/47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba8185357454554",
6477
+ "cardano/native/0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401544f4b454e",
6478
+ "cardano/native/d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed524154",
6479
+ "cardano/native/8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f6958741414441",
6480
+ "cardano/native/0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f41444158",
6481
+ "cardano/native/585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477424c43",
6482
+ "cardano/native/0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb50494e41434f4c414441",
6483
+ "cardano/native/f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e3024d4b41",
6484
+ "cardano/native/804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f56594649",
6485
+ "cardano/native/ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd58524159",
6486
+ "cardano/native/0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc155669527553",
6487
+ "cardano/native/df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4464c49434b",
6488
+ "cardano/native/20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945",
6489
+ "cardano/native/e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f436861726c7a20546f6b656e",
6490
+ "cardano/native/6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286524144546f6b656e73",
6491
+ "cardano/native/db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a434c4150",
6492
+ "cardano/native/aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd476f74636869",
6493
+ "cardano/native/14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a57552415645",
6494
+ "cardano/native/2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c",
6495
+ "cardano/native/4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58426c6f6f6d",
6496
+ "cardano/native/94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c13586452455655",
6497
+ "cardano/native/63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e54b4f5a",
6498
+ "cardano/native/885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd534b554c4c",
6499
+ "cardano/native/f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add5665726974726565546f6b656e",
6500
+ "cardano/native/aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f84c6f6f6b7a",
6501
+ "cardano/native/dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe444f4558",
6502
+ "cardano/native/25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459",
6503
+ "cardano/native/57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef414059617953776170",
6504
+ "cardano/native/c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc154c4f47",
6505
+ "cardano/native/240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f434c4157",
6506
+ "cardano/native/2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac66450494759546f6b656e",
6507
+ "cardano/native/2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa434e54",
6508
+ "cardano/native/b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d",
6509
+ "cardano/native/208a2ca888886921513cb777bb832a8dc685c04de990480151f1215053484942414441",
6510
+ "cardano/native/c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d4b49445a",
6511
+ "cardano/native/dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee465544",
6512
+ "cardano/native/d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96506f6f6c5065656b436f696e",
6513
+ "cardano/native/8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a534e4f57",
6514
+ "cardano/native/2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb6346495245",
6515
+ "cardano/native/c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915474f4b4559",
6516
+ "cardano/native/97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca70757272414441",
6517
+ "cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572426c7565",
6518
+ "cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572526564",
6519
+ "cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d484953",
6520
+ "cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572477265656e",
6521
+ "cardano/native/b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42446f6765414441",
6522
+ "cardano/native/133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef95055444759",
6523
+ "cardano/native/f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f42444f4745",
6524
+ "cardano/native/1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b4d454f57",
6525
+ "cardano/native/a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b9394334",
6526
+ "cardano/native/f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a434152474f",
6527
+ "cardano/native/59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567426162795365616c",
6528
+ "cardano/native/b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb44e465443",
6529
+ "cardano/native/6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81456d706f7761",
6530
+ "cardano/native/ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9524147",
6531
+ "cardano/native/0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a424347",
6431
6532
  "stellar/asset/USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
6432
6533
  ]
6433
6534
  `;
@@ -820,7 +820,7 @@ Array [
820
820
  "operationsCount": 4,
821
821
  "pendingOperations": Array [],
822
822
  "seedIdentifier": "21a6a622d47969ef0b2b89ef7c2e8428f955bae3e52f211e651ccffd",
823
- "spendableBalance": "1021211139",
823
+ "spendableBalance": "1019831859",
824
824
  "starred": false,
825
825
  "subAccounts": Array [],
826
826
  "swapHistory": Array [],
@@ -829,6 +829,20 @@ Array [
829
829
  "used": true,
830
830
  "xpub": "a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2",
831
831
  },
832
+ Object {
833
+ "approvals": undefined,
834
+ "balance": "5000000000",
835
+ "compoundBalance": undefined,
836
+ "id": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e",
837
+ "operationsCount": 1,
838
+ "parentId": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano",
839
+ "pendingOperations": Array [],
840
+ "spendableBalance": "5000000000",
841
+ "starred": false,
842
+ "swapHistory": Array [],
843
+ "tokenId": "cardano_testnet/native/581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e",
844
+ "type": "TokenAccountRaw",
845
+ },
832
846
  Object {
833
847
  "balance": "0",
834
848
  "cardanoResources": Object {
@@ -1662,6 +1676,32 @@ Array [
1662
1676
  "value": "1000000000",
1663
1677
  },
1664
1678
  ],
1679
+ Array [
1680
+ Object {
1681
+ "accountId": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e",
1682
+ "blockHash": undefined,
1683
+ "blockHeight": 3568569,
1684
+ "contract": undefined,
1685
+ "extra": Object {
1686
+ "memo": undefined,
1687
+ },
1688
+ "fee": "215441",
1689
+ "hash": "2c8106d296fe10a8e8bf37a0202df048265dc17f2aa6c184bd132960fbb18bae",
1690
+ "id": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e-2c8106d296fe10a8e8bf37a0202df048265dc17f2aa6c184bd132960fbb18bae-IN",
1691
+ "operator": undefined,
1692
+ "recipients": Array [
1693
+ "addr_test1qqs6df3z63uknmct9wy77lpwss50j4d6u0jj7gg7v5wvll23krjmh2m86v92yu0my7rqydx3h5erqwty82kwgjuc4elsr6hdhy",
1694
+ "addr_test1qzpdaf0vr0gdsjncllv7cejmpwmwu6m86c3epd8uadv99ktra2x9gp8eakdwsrv4k42ys4ajqy0r7f4k8hwrhcdt6sks7k7alz",
1695
+ ],
1696
+ "senders": Array [
1697
+ "addr_test1qr4qq9s7cf28zse9t4c46l3utj6ajphx654l8ddcv6rhketra2x9gp8eakdwsrv4k42ys4ajqy0r7f4k8hwrhcdt6sksjh37nz",
1698
+ ],
1699
+ "standard": undefined,
1700
+ "tokenId": undefined,
1701
+ "type": "IN",
1702
+ "value": "5000000000",
1703
+ },
1704
+ ],
1665
1705
  Array [],
1666
1706
  ]
1667
1707
  `;
@@ -1,3 +1,4 @@
1
+ import { NotEnoughBalance } from "@ledgerhq/errors";
1
2
  import "../../__tests__/test-helpers/setup";
2
3
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
4
  import BigNumber from "bignumber.js";
@@ -33,6 +34,43 @@ const dataset: DatasetTest<Transaction> = {
33
34
  },
34
35
  },
35
36
  },
37
+ {
38
+ name: "token amount more than balance",
39
+ transaction: fromTransactionRaw({
40
+ family: "cardano",
41
+ recipient:
42
+ "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
43
+ amount: "5000000001",
44
+ subAccountId:
45
+ "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e",
46
+ mode: "send",
47
+ }),
48
+ expectedStatus: {
49
+ amount: new BigNumber("5000000001"),
50
+ errors: {
51
+ amount: new NotEnoughBalance(),
52
+ },
53
+ },
54
+ },
55
+ {
56
+ name: "send max token",
57
+ transaction: fromTransactionRaw({
58
+ family: "cardano",
59
+ recipient:
60
+ "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87",
61
+ amount: "0",
62
+ subAccountId:
63
+ "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e",
64
+ mode: "send",
65
+ useAllAmount: true,
66
+ }),
67
+ expectedStatus: {
68
+ amount: new BigNumber("5000000000"),
69
+ totalSpent: new BigNumber("5000000000"),
70
+ errors: {},
71
+ warnings: {},
72
+ },
73
+ },
36
74
  ],
37
75
  },
38
76
  ],
@@ -83,6 +83,10 @@ const mapTxToTokenAccountOperation = ({
83
83
 
84
84
  const tokenOperationType = token.amount.lt(0) ? "OUT" : "IN";
85
85
  const memo = getMemoFromTx(tx);
86
+ const extra = {};
87
+ if (memo) {
88
+ extra["memo"] = memo;
89
+ }
86
90
  const operation: Operation = {
87
91
  accountId: tokenAccountId,
88
92
  id: encodeOperationId(tokenAccountId, tx.hash, tokenOperationType),
@@ -102,9 +106,7 @@ const mapTxToTokenAccountOperation = ({
102
106
  ),
103
107
  blockHeight: tx.blockHeight,
104
108
  date: new Date(tx.timestamp),
105
- extra: {
106
- memo,
107
- },
109
+ extra: extra,
108
110
  blockHash: undefined,
109
111
  };
110
112
  operations.push(operation);
@@ -0,0 +1,109 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { getAccountUnit, getMainAccount } from "../../account";
3
+ import { formatCurrencyUnit } from "../../currencies";
4
+ import { DeviceTransactionField } from "../../transaction";
5
+ import { Account, AccountLike, TransactionStatus } from "../../types";
6
+ import { decodeTokenAssetId, decodeTokenCurrencyId } from "./buildSubAccounts";
7
+ import { CardanoResources, Transaction } from "./types";
8
+ import { utils as TyphonUtils } from "@stricahq/typhonjs";
9
+ import { decodeTokenName } from "./logic";
10
+
11
+ function getDeviceTransactionConfig({
12
+ account,
13
+ transaction,
14
+ parentAccount,
15
+ }: {
16
+ account: AccountLike;
17
+ parentAccount: Account | null | undefined;
18
+ transaction: Transaction;
19
+ status: TransactionStatus;
20
+ }): Array<DeviceTransactionField> {
21
+ const { mode } = transaction;
22
+ const fields: DeviceTransactionField[] = [];
23
+ const mainAccount = getMainAccount(account, parentAccount);
24
+
25
+ if (mode === "send") {
26
+ if (account.type === "TokenAccount") {
27
+ const cardanoResources = mainAccount.cardanoResources as CardanoResources;
28
+
29
+ const { assetId } = decodeTokenCurrencyId(account.token.id);
30
+ const { policyId, assetName } = decodeTokenAssetId(assetId);
31
+ const transactionAmount = transaction.useAllAmount
32
+ ? account.balance
33
+ : transaction.amount;
34
+ const { fees } = transaction;
35
+
36
+ const tokensToSend = [
37
+ {
38
+ policyId,
39
+ assetName,
40
+ amount: transactionAmount,
41
+ },
42
+ ];
43
+
44
+ const requiredMinAdaForTokens = TyphonUtils.calculateMinUtxoAmount(
45
+ tokensToSend,
46
+ new BigNumber(cardanoResources.protocolParams.lovelacePerUtxoWord)
47
+ );
48
+ fields.push({
49
+ type: "text",
50
+ label: "ADA",
51
+ value: formatCurrencyUnit(
52
+ getAccountUnit(mainAccount),
53
+ requiredMinAdaForTokens,
54
+ { showCode: true, disableRounding: true }
55
+ ),
56
+ });
57
+ fields.push({
58
+ type: "text",
59
+ label: "Token Name",
60
+ value: decodeTokenName(assetName),
61
+ });
62
+ fields.push({
63
+ type: "text",
64
+ label: "Amount",
65
+ value: formatCurrencyUnit(getAccountUnit(account), transactionAmount, {
66
+ showCode: true,
67
+ disableRounding: true,
68
+ }),
69
+ });
70
+ if (fees) {
71
+ fields.push({
72
+ type: "text",
73
+ label: "Fees",
74
+ value: formatCurrencyUnit(getAccountUnit(mainAccount), fees, {
75
+ showCode: true,
76
+ disableRounding: true,
77
+ }),
78
+ });
79
+ }
80
+ } else if (account.type === "Account") {
81
+ const { fees } = transaction;
82
+ const transactionAmount = transaction.useAllAmount
83
+ ? account.balance
84
+ : transaction.amount;
85
+ fields.push({
86
+ type: "text",
87
+ label: "Amount",
88
+ value: formatCurrencyUnit(getAccountUnit(account), transactionAmount, {
89
+ showCode: true,
90
+ disableRounding: true,
91
+ }),
92
+ });
93
+ if (fees) {
94
+ fields.push({
95
+ type: "text",
96
+ label: "Fees",
97
+ value: formatCurrencyUnit(getAccountUnit(account), fees, {
98
+ showCode: true,
99
+ disableRounding: true,
100
+ }),
101
+ });
102
+ }
103
+ }
104
+ }
105
+
106
+ return fields;
107
+ }
108
+
109
+ export default getDeviceTransactionConfig;
@@ -6,3 +6,10 @@ import { createCustomErrorClass } from "@ledgerhq/errors";
6
6
  export const CardanoMinAmountError = createCustomErrorClass(
7
7
  "CardanoMinAmountError"
8
8
  );
9
+
10
+ /**
11
+ * Cardano error thrown when not enough funds to perform transaction
12
+ */
13
+ export const CardanoNotEnoughFunds = createCustomErrorClass(
14
+ "CardanoNotEnoughFunds"
15
+ );
@@ -30,10 +30,13 @@ const estimateMaxSpendable = async ({
30
30
  return account.balance;
31
31
  }
32
32
 
33
+ const dummyRecipient =
34
+ "addr_test1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq0uk53y";
33
35
  const a = getMainAccount(account, parentAccount);
34
- const t = {
36
+ const t: Transaction = {
35
37
  ...createTransaction(),
36
38
  ...transaction,
39
+ recipient: dummyRecipient,
37
40
  // amount field will not be used to build a transaction when useAllAmount is true
38
41
  amount: new BigNumber(0),
39
42
  useAllAmount: true,
@@ -1,6 +1,5 @@
1
1
  import { BigNumber } from "bignumber.js";
2
2
  import {
3
- NotEnoughBalance,
4
3
  RecipientRequired,
5
4
  FeeNotLoaded,
6
5
  InvalidAddress,
@@ -10,7 +9,7 @@ import type { Account, TransactionStatus } from "../../types";
10
9
  import type { CardanoResources, Token, Transaction } from "./types";
11
10
  import { isValidAddress } from "./logic";
12
11
  import { utils as TyphonUtils } from "@stricahq/typhonjs";
13
- import { CardanoMinAmountError } from "./errors";
12
+ import { CardanoMinAmountError, CardanoNotEnoughFunds } from "./errors";
14
13
  import { AccountAwaitingSendPendingOperations } from "../../errors";
15
14
  import { getNetworkParameters } from "./networks";
16
15
  import { decodeTokenAssetId, decodeTokenCurrencyId } from "./buildSubAccounts";
@@ -86,17 +85,18 @@ const getTransactionStatus = async (
86
85
 
87
86
  if (!amount.gt(0)) {
88
87
  errors.amount = useAllAmount
89
- ? new NotEnoughBalance()
88
+ ? new CardanoNotEnoughFunds()
90
89
  : new AmountRequired();
91
90
  } else if (!t.subAccountId && amount.lt(minTransactionAmount)) {
92
91
  errors.amount = new CardanoMinAmountError("", {
93
92
  amount: minTransactionAmount.div(1e6).toString(),
94
93
  });
95
94
  } else if (
96
- (tokenAccount && totalSpent.gt(tokenAccount.balance)) ||
97
- totalSpent.gt(a.balance)
95
+ tokenAccount
96
+ ? totalSpent.gt(tokenAccount.balance)
97
+ : totalSpent.gt(a.balance)
98
98
  ) {
99
- errors.amount = new NotEnoughBalance();
99
+ errors.amount = new CardanoNotEnoughFunds();
100
100
  } else {
101
101
  try {
102
102
  await buildTransaction(a, t);
@@ -105,7 +105,7 @@ const getTransactionStatus = async (
105
105
  e.message.toLowerCase() === "not enough ada" ||
106
106
  e.message.toLowerCase() === "not enough tokens"
107
107
  ) {
108
- errors.amount = new NotEnoughBalance();
108
+ errors.amount = new CardanoNotEnoughFunds();
109
109
  }
110
110
  throw e;
111
111
  }
@@ -83,11 +83,18 @@ const buildOptimisticOperation = (
83
83
  const memoMetadata = auxiliaryData.metadata.find(
84
84
  (m) => m.label === MEMO_LABEL
85
85
  );
86
- if (memoMetadata && Array.isArray(memoMetadata.data)) {
87
- memo = memoMetadata.data.join(", ");
86
+ if (memoMetadata && memoMetadata.data instanceof Map) {
87
+ const msg = memoMetadata.data.get("msg");
88
+ if (Array.isArray(msg) && msg.length) {
89
+ memo = msg.join(", ");
90
+ }
88
91
  }
89
92
  }
90
93
 
94
+ const extra = {};
95
+ if (memo) {
96
+ extra["memo"] = memo;
97
+ }
91
98
  const op: Operation = {
92
99
  id: encodeOperationId(account.id, transactionHash, opType),
93
100
  hash: transactionHash,
@@ -100,9 +107,7 @@ const buildOptimisticOperation = (
100
107
  recipients: transaction.getOutputs().map((o) => o.address.getBech32()),
101
108
  accountId: account.id,
102
109
  date: new Date(),
103
- extra: {
104
- memo,
105
- },
110
+ extra: extra,
106
111
  };
107
112
 
108
113
  const tokenAccount = t.subAccountId