@ledgerhq/live-common 25.0.0-next.3 → 25.0.0-next.6

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 (114) 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/families/cosmos/react.d.ts +1 -1
  43. package/lib/families/cosmos/react.d.ts.map +1 -1
  44. package/lib/families/cosmos/react.js +9 -4
  45. package/lib/families/cosmos/react.js.map +1 -1
  46. package/lib/families/hedera/api/mirror.js +1 -1
  47. package/lib/families/hedera/api/mirror.js.map +1 -1
  48. package/lib/families/hedera/api/network.d.ts.map +1 -1
  49. package/lib/families/hedera/api/network.js +3 -1
  50. package/lib/families/hedera/api/network.js.map +1 -1
  51. package/lib/families/hedera/deviceTransactionConfig.d.ts.map +1 -1
  52. package/lib/families/hedera/deviceTransactionConfig.js +7 -0
  53. package/lib/families/hedera/deviceTransactionConfig.js.map +1 -1
  54. package/lib/families/hedera/js-synchronisation.d.ts.map +1 -1
  55. package/lib/families/hedera/js-synchronisation.js +10 -7
  56. package/lib/families/hedera/js-synchronisation.js.map +1 -1
  57. package/lib/families/hedera/specs.d.ts.map +1 -1
  58. package/lib/families/hedera/specs.js +23 -0
  59. package/lib/families/hedera/specs.js.map +1 -1
  60. package/lib/families/hedera/speculos-deviceActions.d.ts.map +1 -1
  61. package/lib/families/hedera/speculos-deviceActions.js +5 -1
  62. package/lib/families/hedera/speculos-deviceActions.js.map +1 -1
  63. package/lib/families/hedera/transaction.d.ts.map +1 -1
  64. package/lib/families/hedera/transaction.js +2 -2
  65. package/lib/families/hedera/transaction.js.map +1 -1
  66. package/lib/families/hedera/types.d.ts +2 -5
  67. package/lib/families/hedera/types.d.ts.map +1 -1
  68. package/lib/families/hedera/types.js +0 -4
  69. package/lib/families/hedera/types.js.map +1 -1
  70. package/lib/families/hedera/utils.d.ts.map +1 -1
  71. package/lib/families/solana/react.d.ts +2 -1
  72. package/lib/families/solana/react.d.ts.map +1 -1
  73. package/lib/families/solana/react.integration.test.d.ts +2 -0
  74. package/lib/families/solana/react.integration.test.d.ts.map +1 -0
  75. package/lib/families/solana/react.integration.test.js +142 -0
  76. package/lib/families/solana/react.integration.test.js.map +1 -0
  77. package/lib/families/solana/react.js +21 -3
  78. package/lib/families/solana/react.js.map +1 -1
  79. package/lib/featureFlags/types.d.ts +1 -1
  80. package/lib/featureFlags/types.d.ts.map +1 -1
  81. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  82. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  83. package/lib/generated/deviceTransactionConfig.js +28 -26
  84. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  85. package/package.json +3 -3
  86. package/src/apps/support.ts +1 -0
  87. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +101 -0
  88. package/src/families/cardano/__snapshots__/bridge.integration.test.ts.snap +41 -1
  89. package/src/families/cardano/bridge.integration.test.ts +38 -0
  90. package/src/families/cardano/buildSubAccounts.ts +5 -3
  91. package/src/families/cardano/deviceTransactionConfig.ts +109 -0
  92. package/src/families/cardano/errors.ts +7 -0
  93. package/src/families/cardano/js-estimateMaxSpendable.ts +4 -1
  94. package/src/families/cardano/js-getTransactionStatus.ts +7 -7
  95. package/src/families/cardano/js-signOperation.ts +10 -5
  96. package/src/families/cardano/js-synchronisation.ts +52 -21
  97. package/src/families/cardano/js-transaction.ts +1 -1
  98. package/src/families/cardano/logic.ts +10 -0
  99. package/src/families/cardano/specs.ts +53 -1
  100. package/src/families/cardano/speculos-deviceActions.ts +15 -0
  101. package/src/families/cosmos/react.ts +12 -4
  102. package/src/families/hedera/api/mirror.ts +1 -1
  103. package/src/families/hedera/api/network.ts +1 -0
  104. package/src/families/hedera/deviceTransactionConfig.ts +8 -0
  105. package/src/families/hedera/js-synchronisation.ts +5 -3
  106. package/src/families/hedera/specs.ts +56 -5
  107. package/src/families/hedera/speculos-deviceActions.ts +1 -0
  108. package/src/families/hedera/transaction.ts +2 -0
  109. package/src/families/hedera/types.ts +2 -8
  110. package/src/families/hedera/utils.ts +1 -1
  111. package/src/families/solana/react.integration.test.ts +76 -0
  112. package/src/families/solana/react.ts +28 -3
  113. package/src/featureFlags/types.ts +1 -0
  114. package/src/generated/deviceTransactionConfig.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../../src/generated/deviceTransactionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAElE,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAE5D,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,UAAU,MAAM,gDAAgD,CAAC;AAExE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAElE,OAAO,KAAK,MAAM,2CAA2C,CAAC;AAE9D,OAAO,IAAI,MAAM,0CAA0C,CAAC;;;;;;;;;;;;;;;;;;AAG5D,wBAgBE;AACF,OAAO,EAAE,2BAA2B,IAAI,kCAAkC,EAAE,MAAM,4CAA4C,CAAC;AAC/H,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AACnI,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AACnI,OAAO,EAAE,2BAA2B,IAAI,mCAAmC,EAAE,MAAM,6CAA6C,CAAC;AACjI,OAAO,EAAE,2BAA2B,IAAI,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC7H,OAAO,EAAE,2BAA2B,IAAI,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAC3H,oBAAY,2BAA2B,GACrC,kCAAkC,GAClC,oCAAoC,GACpC,oCAAoC,GACpC,mCAAmC,GACnC,iCAAiC,GACjC,gCAAgC,CAAA"}
1
+ {"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../../src/generated/deviceTransactionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAElE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAElE,OAAO,IAAI,MAAM,0CAA0C,CAAC;AAE5D,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,UAAU,MAAM,gDAAgD,CAAC;AAExE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,QAAQ,MAAM,8CAA8C,CAAC;AAEpE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAEhE,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAElE,OAAO,KAAK,MAAM,2CAA2C,CAAC;AAE9D,OAAO,IAAI,MAAM,0CAA0C,CAAC;;;;;;;;;;;;;;;;;;;AAG5D,wBAiBE;AACF,OAAO,EAAE,2BAA2B,IAAI,kCAAkC,EAAE,MAAM,4CAA4C,CAAC;AAC/H,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AACnI,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AACnI,OAAO,EAAE,2BAA2B,IAAI,mCAAmC,EAAE,MAAM,6CAA6C,CAAC;AACjI,OAAO,EAAE,2BAA2B,IAAI,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC7H,OAAO,EAAE,2BAA2B,IAAI,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAC3H,oBAAY,2BAA2B,GACrC,kCAAkC,GAClC,oCAAoC,GACpC,oCAAoC,GACpC,mCAAmC,GACnC,iCAAiC,GACjC,gCAAgC,CAAA"}
@@ -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.3",
7
+ "version": "25.0.0-next.6",
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