@ledgerhq/coin-stellar 0.2.0-nightly.0

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 (233) hide show
  1. package/.eslintrc.js +20 -0
  2. package/.turbo/turbo-build.log +4 -0
  3. package/.unimportedrc.json +35 -0
  4. package/CHANGELOG.md +13 -0
  5. package/LICENSE.txt +21 -0
  6. package/jest.config.js +8 -0
  7. package/lib/bridge/bridge.integration.test.d.ts +4 -0
  8. package/lib/bridge/bridge.integration.test.d.ts.map +1 -0
  9. package/lib/bridge/bridge.integration.test.js +317 -0
  10. package/lib/bridge/bridge.integration.test.js.map +1 -0
  11. package/lib/bridge/index.d.ts +10 -0
  12. package/lib/bridge/index.d.ts.map +1 -0
  13. package/lib/bridge/index.js +72 -0
  14. package/lib/bridge/index.js.map +1 -0
  15. package/lib/broadcast.d.ts +9 -0
  16. package/lib/broadcast.d.ts.map +1 -0
  17. package/lib/broadcast.js +26 -0
  18. package/lib/broadcast.js.map +1 -0
  19. package/lib/buildOptimisticOperation.d.ts +4 -0
  20. package/lib/buildOptimisticOperation.d.ts.map +1 -0
  21. package/lib/buildOptimisticOperation.js +72 -0
  22. package/lib/buildOptimisticOperation.js.map +1 -0
  23. package/lib/buildTransaction.d.ts +10 -0
  24. package/lib/buildTransaction.d.ts.map +1 -0
  25. package/lib/buildTransaction.js +97 -0
  26. package/lib/buildTransaction.js.map +1 -0
  27. package/lib/cli.d.ts +38 -0
  28. package/lib/cli.d.ts.map +1 -0
  29. package/lib/cli.js +83 -0
  30. package/lib/cli.js.map +1 -0
  31. package/lib/config.d.ts +5 -0
  32. package/lib/config.d.ts.map +1 -0
  33. package/lib/config.js +17 -0
  34. package/lib/config.js.map +1 -0
  35. package/lib/createTransaction.d.ts +10 -0
  36. package/lib/createTransaction.d.ts.map +1 -0
  37. package/lib/createTransaction.js +26 -0
  38. package/lib/createTransaction.js.map +1 -0
  39. package/lib/deviceTransactionConfig.d.ts +24 -0
  40. package/lib/deviceTransactionConfig.d.ts.map +1 -0
  41. package/lib/deviceTransactionConfig.js +41 -0
  42. package/lib/deviceTransactionConfig.js.map +1 -0
  43. package/lib/errors.d.ts +37 -0
  44. package/lib/errors.d.ts.map +1 -0
  45. package/lib/errors.js +17 -0
  46. package/lib/errors.js.map +1 -0
  47. package/lib/estimateMaxSpendable.d.ts +5 -0
  48. package/lib/estimateMaxSpendable.d.ts.map +1 -0
  49. package/lib/estimateMaxSpendable.js +32 -0
  50. package/lib/estimateMaxSpendable.js.map +1 -0
  51. package/lib/getTransactionStatus.d.ts +5 -0
  52. package/lib/getTransactionStatus.d.ts.map +1 -0
  53. package/lib/getTransactionStatus.js +170 -0
  54. package/lib/getTransactionStatus.js.map +1 -0
  55. package/lib/hw-getAddress.d.ts +6 -0
  56. package/lib/hw-getAddress.d.ts.map +1 -0
  57. package/lib/hw-getAddress.js +28 -0
  58. package/lib/hw-getAddress.js.map +1 -0
  59. package/lib/logic.d.ts +36 -0
  60. package/lib/logic.d.ts.map +1 -0
  61. package/lib/logic.js +289 -0
  62. package/lib/logic.js.map +1 -0
  63. package/lib/network/horizon.d.ts +71 -0
  64. package/lib/network/horizon.d.ts.map +1 -0
  65. package/lib/network/horizon.js +300 -0
  66. package/lib/network/horizon.js.map +1 -0
  67. package/lib/network/index.d.ts +2 -0
  68. package/lib/network/index.d.ts.map +1 -0
  69. package/lib/network/index.js +20 -0
  70. package/lib/network/index.js.map +1 -0
  71. package/lib/prepareTransaction.d.ts +5 -0
  72. package/lib/prepareTransaction.d.ts.map +1 -0
  73. package/lib/prepareTransaction.js +41 -0
  74. package/lib/prepareTransaction.js.map +1 -0
  75. package/lib/signOperation.d.ts +6 -0
  76. package/lib/signOperation.d.ts.map +1 -0
  77. package/lib/signOperation.js +56 -0
  78. package/lib/signOperation.js.map +1 -0
  79. package/lib/specs.d.ts +7 -0
  80. package/lib/specs.d.ts.map +1 -0
  81. package/lib/specs.js +234 -0
  82. package/lib/specs.js.map +1 -0
  83. package/lib/speculos-deviceActions.d.ts +4 -0
  84. package/lib/speculos-deviceActions.d.ts.map +1 -0
  85. package/lib/speculos-deviceActions.js +99 -0
  86. package/lib/speculos-deviceActions.js.map +1 -0
  87. package/lib/synchronization.d.ts +4 -0
  88. package/lib/synchronization.d.ts.map +1 -0
  89. package/lib/synchronization.js +73 -0
  90. package/lib/synchronization.js.map +1 -0
  91. package/lib/tokens.d.ts +12 -0
  92. package/lib/tokens.d.ts.map +1 -0
  93. package/lib/tokens.js +58 -0
  94. package/lib/tokens.js.map +1 -0
  95. package/lib/transaction.d.ts +15 -0
  96. package/lib/transaction.d.ts.map +1 -0
  97. package/lib/transaction.js +63 -0
  98. package/lib/transaction.js.map +1 -0
  99. package/lib/types/index.d.ts +89 -0
  100. package/lib/types/index.d.ts.map +1 -0
  101. package/lib/types/index.js +26 -0
  102. package/lib/types/index.js.map +1 -0
  103. package/lib/types/signer.d.ts +10 -0
  104. package/lib/types/signer.d.ts.map +1 -0
  105. package/lib/types/signer.js +3 -0
  106. package/lib/types/signer.js.map +1 -0
  107. package/lib-es/bridge/bridge.integration.test.d.ts +4 -0
  108. package/lib-es/bridge/bridge.integration.test.d.ts.map +1 -0
  109. package/lib-es/bridge/bridge.integration.test.js +311 -0
  110. package/lib-es/bridge/bridge.integration.test.js.map +1 -0
  111. package/lib-es/bridge/index.d.ts +10 -0
  112. package/lib-es/bridge/index.d.ts.map +1 -0
  113. package/lib-es/bridge/index.js +65 -0
  114. package/lib-es/bridge/index.js.map +1 -0
  115. package/lib-es/broadcast.d.ts +9 -0
  116. package/lib-es/broadcast.d.ts.map +1 -0
  117. package/lib-es/broadcast.js +22 -0
  118. package/lib-es/broadcast.js.map +1 -0
  119. package/lib-es/buildOptimisticOperation.d.ts +4 -0
  120. package/lib-es/buildOptimisticOperation.d.ts.map +1 -0
  121. package/lib-es/buildOptimisticOperation.js +65 -0
  122. package/lib-es/buildOptimisticOperation.js.map +1 -0
  123. package/lib-es/buildTransaction.d.ts +10 -0
  124. package/lib-es/buildTransaction.d.ts.map +1 -0
  125. package/lib-es/buildTransaction.js +90 -0
  126. package/lib-es/buildTransaction.js.map +1 -0
  127. package/lib-es/cli.d.ts +38 -0
  128. package/lib-es/cli.d.ts.map +1 -0
  129. package/lib-es/cli.js +77 -0
  130. package/lib-es/cli.js.map +1 -0
  131. package/lib-es/config.d.ts +5 -0
  132. package/lib-es/config.d.ts.map +1 -0
  133. package/lib-es/config.js +12 -0
  134. package/lib-es/config.js.map +1 -0
  135. package/lib-es/createTransaction.d.ts +10 -0
  136. package/lib-es/createTransaction.d.ts.map +1 -0
  137. package/lib-es/createTransaction.js +22 -0
  138. package/lib-es/createTransaction.js.map +1 -0
  139. package/lib-es/deviceTransactionConfig.d.ts +24 -0
  140. package/lib-es/deviceTransactionConfig.d.ts.map +1 -0
  141. package/lib-es/deviceTransactionConfig.js +39 -0
  142. package/lib-es/deviceTransactionConfig.js.map +1 -0
  143. package/lib-es/errors.d.ts +37 -0
  144. package/lib-es/errors.d.ts.map +1 -0
  145. package/lib-es/errors.js +14 -0
  146. package/lib-es/errors.js.map +1 -0
  147. package/lib-es/estimateMaxSpendable.d.ts +5 -0
  148. package/lib-es/estimateMaxSpendable.d.ts.map +1 -0
  149. package/lib-es/estimateMaxSpendable.js +25 -0
  150. package/lib-es/estimateMaxSpendable.js.map +1 -0
  151. package/lib-es/getTransactionStatus.d.ts +5 -0
  152. package/lib-es/getTransactionStatus.d.ts.map +1 -0
  153. package/lib-es/getTransactionStatus.js +166 -0
  154. package/lib-es/getTransactionStatus.js.map +1 -0
  155. package/lib-es/hw-getAddress.d.ts +6 -0
  156. package/lib-es/hw-getAddress.d.ts.map +1 -0
  157. package/lib-es/hw-getAddress.js +26 -0
  158. package/lib-es/hw-getAddress.js.map +1 -0
  159. package/lib-es/logic.d.ts +36 -0
  160. package/lib-es/logic.d.ts.map +1 -0
  161. package/lib-es/logic.js +274 -0
  162. package/lib-es/logic.js.map +1 -0
  163. package/lib-es/network/horizon.d.ts +71 -0
  164. package/lib-es/network/horizon.d.ts.map +1 -0
  165. package/lib-es/network/horizon.js +285 -0
  166. package/lib-es/network/horizon.js.map +1 -0
  167. package/lib-es/network/index.d.ts +2 -0
  168. package/lib-es/network/index.d.ts.map +1 -0
  169. package/lib-es/network/index.js +2 -0
  170. package/lib-es/network/index.js.map +1 -0
  171. package/lib-es/prepareTransaction.d.ts +5 -0
  172. package/lib-es/prepareTransaction.d.ts.map +1 -0
  173. package/lib-es/prepareTransaction.js +34 -0
  174. package/lib-es/prepareTransaction.js.map +1 -0
  175. package/lib-es/signOperation.d.ts +6 -0
  176. package/lib-es/signOperation.d.ts.map +1 -0
  177. package/lib-es/signOperation.js +52 -0
  178. package/lib-es/signOperation.js.map +1 -0
  179. package/lib-es/specs.d.ts +7 -0
  180. package/lib-es/specs.d.ts.map +1 -0
  181. package/lib-es/specs.js +229 -0
  182. package/lib-es/specs.js.map +1 -0
  183. package/lib-es/speculos-deviceActions.d.ts +4 -0
  184. package/lib-es/speculos-deviceActions.d.ts.map +1 -0
  185. package/lib-es/speculos-deviceActions.js +96 -0
  186. package/lib-es/speculos-deviceActions.js.map +1 -0
  187. package/lib-es/synchronization.d.ts +4 -0
  188. package/lib-es/synchronization.d.ts.map +1 -0
  189. package/lib-es/synchronization.js +69 -0
  190. package/lib-es/synchronization.js.map +1 -0
  191. package/lib-es/tokens.d.ts +12 -0
  192. package/lib-es/tokens.d.ts.map +1 -0
  193. package/lib-es/tokens.js +50 -0
  194. package/lib-es/tokens.js.map +1 -0
  195. package/lib-es/transaction.d.ts +15 -0
  196. package/lib-es/transaction.d.ts.map +1 -0
  197. package/lib-es/transaction.js +59 -0
  198. package/lib-es/transaction.js.map +1 -0
  199. package/lib-es/types/index.d.ts +89 -0
  200. package/lib-es/types/index.d.ts.map +1 -0
  201. package/lib-es/types/index.js +9 -0
  202. package/lib-es/types/index.js.map +1 -0
  203. package/lib-es/types/signer.d.ts +10 -0
  204. package/lib-es/types/signer.d.ts.map +1 -0
  205. package/lib-es/types/signer.js +2 -0
  206. package/lib-es/types/signer.js.map +1 -0
  207. package/package.json +80 -0
  208. package/src/bridge/bridge.integration.test.ts +373 -0
  209. package/src/bridge/index.ts +77 -0
  210. package/src/broadcast.ts +20 -0
  211. package/src/buildOptimisticOperation.ts +63 -0
  212. package/src/buildTransaction.ts +106 -0
  213. package/src/cli.ts +107 -0
  214. package/src/config.ts +18 -0
  215. package/src/createTransaction.ts +25 -0
  216. package/src/deviceTransactionConfig.ts +75 -0
  217. package/src/errors.ts +20 -0
  218. package/src/estimateMaxSpendable.ts +29 -0
  219. package/src/getTransactionStatus.ts +207 -0
  220. package/src/hw-getAddress.ts +24 -0
  221. package/src/logic.ts +371 -0
  222. package/src/network/horizon.ts +352 -0
  223. package/src/network/index.ts +17 -0
  224. package/src/prepareTransaction.ts +35 -0
  225. package/src/signOperation.ts +58 -0
  226. package/src/specs.ts +290 -0
  227. package/src/speculos-deviceActions.ts +117 -0
  228. package/src/synchronization.ts +80 -0
  229. package/src/tokens.ts +98 -0
  230. package/src/transaction.ts +99 -0
  231. package/src/types/index.ts +112 -0
  232. package/src/types/signer.ts +9 -0
  233. package/tsconfig.json +13 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,20 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ es6: true,
5
+ },
6
+ rules: {
7
+ "no-console": ["error", { allow: ["warn", "error"] }],
8
+ "@typescript-eslint/no-empty-function": "off",
9
+ "@typescript-eslint/no-explicit-any": "warn",
10
+ },
11
+ overrides: [
12
+ {
13
+ files: ["src/**/*.test.{ts,tsx}"],
14
+ env: {
15
+ "jest/globals": true,
16
+ },
17
+ plugins: ["jest"],
18
+ },
19
+ ],
20
+ };
@@ -0,0 +1,4 @@
1
+
2
+ > @ledgerhq/coin-stellar@0.1.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-stellar
3
+ > tsc && tsc -m ES6 --outDir lib-es
4
+
@@ -0,0 +1,35 @@
1
+ {
2
+ "entry": [
3
+ "src/deviceTransactionConfig.ts",
4
+ "src/errors.ts",
5
+ "src/hw-getAddress.ts",
6
+ "src/serialization.ts",
7
+ "src/specs.ts",
8
+ "src/transaction.ts"
9
+ ],
10
+ "ignorePatterns": [
11
+ "**/node_modules/**",
12
+ "**/*.fixture.ts",
13
+ "**/*.mock.ts",
14
+ "**/*.test.{js,jsx,ts,tsx}"
15
+ ],
16
+ "ignoreUnresolved": [],
17
+ "ignoreUnimported": [
18
+ "src/bridge/index.ts",
19
+ "src/broadcast.ts",
20
+ "src/buildOptimisticOperation.ts",
21
+ "src/buildTransaction.ts",
22
+ "src/cli.ts",
23
+ "src/config.ts",
24
+ "src/createTransaction.ts",
25
+ "src/estimateMaxSpendable.ts",
26
+ "src/getTransactionStatus.ts",
27
+ "src/prepareTransaction.ts",
28
+ "src/signOperation.ts",
29
+ "src/synchronization.ts",
30
+ "src/tokens.ts"
31
+ ],
32
+ "ignoreUnused": [
33
+ "rxjs"
34
+ ]
35
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # @ledgerhq/coin-stellar
2
+
3
+ ## 0.2.0-nightly.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#7189](https://github.com/LedgerHQ/ledger-live/pull/7189) [`a0e3a56`](https://github.com/LedgerHQ/ledger-live/commit/a0e3a56244d92ca62e5c0b3899d0ca18c54e5df9) Thanks [@lvndry](https://github.com/lvndry)! - Creation of coin-stellar package
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`52db252`](https://github.com/LedgerHQ/ledger-live/commit/52db252757870398cba5366d595b4d5fe8099b90)]:
12
+ - @ledgerhq/types-live@6.49.0-nightly.0
13
+ - @ledgerhq/coin-framework@0.15.1-nightly.0
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2017-present Ledger https://www.ledger.com/
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/jest.config.js ADDED
@@ -0,0 +1,8 @@
1
+ /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
2
+ module.exports = {
3
+ collectCoverageFrom: ["src/**/*.ts"],
4
+ coverageDirectory: "coverage",
5
+ preset: "ts-jest",
6
+ testEnvironment: "node",
7
+ testPathIgnorePatterns: ["lib/", "lib-es/"],
8
+ };
@@ -0,0 +1,4 @@
1
+ import type { DatasetTest } from "@ledgerhq/types-live";
2
+ import type { Transaction } from "../types/index";
3
+ export declare const dataset: DatasetTest<Transaction>;
4
+ //# sourceMappingURL=bridge.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.integration.test.d.ts","sourceRoot":"","sources":["../../src/bridge/bridge.integration.test.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAmW5C,CAAC"}
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.dataset = void 0;
7
+ const bignumber_js_1 = require("bignumber.js");
8
+ const errors_1 = require("@ledgerhq/errors");
9
+ const transaction_1 = __importDefault(require("../transaction"));
10
+ const errors_2 = require("../errors");
11
+ exports.dataset = {
12
+ implementations: ["js"],
13
+ currencies: {
14
+ stellar: {
15
+ scanAccounts: [
16
+ {
17
+ name: "stellar seed 1",
18
+ apdus: `
19
+ => e00200000d038000002c8000009480000000
20
+ <= 27c586f8499294c64d57f8d7956eef4431de58ab20e1c88001f6cf131c97d6f39000
21
+ => e00200000d038000002c8000009480000001
22
+ <= 1174242cc3e722e843ac37db3a745897941396d486456e303001b06b417db1f89000
23
+ => e00200000d038000002c8000009480000002
24
+ <= 8636fa7a5a5bb9fe4fb2615f04425f54dc74c16fefc1325958c9719ee03ef5379000
25
+ => e00200000d038000002c8000009480000003
26
+ <= 0f052ff4b74726a6f668380927c3d23e9c16d538cb6c272add871e069336bead9000
27
+ => e00200000d038000002c8000009480000004
28
+ <= 60c75356c268ff0158eeca556526830761327693a93cf4754020fadbe04d0f2b9000
29
+ => e00200000d038000002c8000009480000005
30
+ <= 124516f8ffb161c9492486e54b4432a2c11e4817414dea54fb8bde13b5ac49439000
31
+ `,
32
+ },
33
+ ],
34
+ accounts: [
35
+ {
36
+ FIXME_tests: ["balance is sum of ops"],
37
+ raw: {
38
+ id: "libcore:1:stellar:GAT4LBXYJGJJJRSNK74NPFLO55CDDXSYVMQODSEAAH3M6EY4S7LPH5GV:sep5",
39
+ seedIdentifier: "3544cee0d67187d277cd9c7e26a2bf70425b1bee8e92003f45d150c5513d531a",
40
+ name: "Stellar 1",
41
+ xpub: "GAT4LBXYJGJJJRSNK74NPFLO55CDDXSYVMQODSEAAH3M6EY4S7LPH5GV",
42
+ derivationMode: "sep5",
43
+ index: 0,
44
+ freshAddress: "GAT4LBXYJGJJJRSNK74NPFLO55CDDXSYVMQODSEAAH3M6EY4S7LPH5GV",
45
+ freshAddressPath: "44'/148'/0'",
46
+ // @ts-expect-error wat
47
+ unit: {
48
+ name: "Lumen",
49
+ code: "XLM",
50
+ magnitude: 7,
51
+ },
52
+ blockHeight: 28884793,
53
+ operations: [],
54
+ pendingOperations: [],
55
+ currencyId: "stellar",
56
+ lastSyncDate: "",
57
+ balance: "371210662",
58
+ spendableBalance: "371210662",
59
+ },
60
+ transactions: [
61
+ {
62
+ name: "Same as Recipient",
63
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAT4LBXYJGJJJRSNK74NPFLO55CDDXSYVMQODSEAAH3M6EY4S7LPH5GV" })),
64
+ expectedStatus: {
65
+ errors: {
66
+ recipient: new errors_1.InvalidAddressBecauseDestinationIsAlsoSource(),
67
+ },
68
+ warnings: {},
69
+ },
70
+ },
71
+ {
72
+ name: "Send To New Account - amount is too low",
73
+ transaction: transaction_1.default.fromTransactionRaw({
74
+ amount: "1000",
75
+ recipient: "GAW46JE3SHIAYLNNNQCAZFQ437WB5ZH7LDRDWR5LVDWHCTHCKYB6RCCH",
76
+ // Have to use an address from the test seed, here is from one coin int testing device
77
+ useAllAmount: false,
78
+ family: "stellar",
79
+ baseReserve: "1500000",
80
+ networkInfo: {
81
+ family: "stellar",
82
+ fees: "100",
83
+ baseFee: "100",
84
+ baseReserve: "1500000",
85
+ },
86
+ fees: "100",
87
+ memoType: null,
88
+ memoValue: null,
89
+ mode: "send",
90
+ assetCode: "",
91
+ assetIssuer: "",
92
+ }),
93
+ expectedStatus: {
94
+ errors: {
95
+ amount: new errors_1.NotEnoughBalanceBecauseDestinationNotCreated(),
96
+ },
97
+ warnings: {},
98
+ },
99
+ },
100
+ {
101
+ name: "send amount more than fees + base reserve",
102
+ transaction: (t, account) => (Object.assign(Object.assign({}, t), { amount: account.balance, recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z" })),
103
+ expectedStatus: {
104
+ errors: {
105
+ amount: new errors_1.NotEnoughSpendableBalance(),
106
+ },
107
+ warnings: {},
108
+ },
109
+ },
110
+ {
111
+ name: "send more than base reserve",
112
+ transaction: (t, account) => (Object.assign(Object.assign({}, t), { amount: account.balance.minus("100"), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z" })),
113
+ expectedStatus: {
114
+ errors: {
115
+ amount: new errors_1.NotEnoughSpendableBalance(),
116
+ },
117
+ warnings: {},
118
+ },
119
+ },
120
+ {
121
+ name: "send max to new account (explicit)",
122
+ transaction: transaction_1.default.fromTransactionRaw({
123
+ amount: "0",
124
+ recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z",
125
+ useAllAmount: true,
126
+ family: "stellar",
127
+ baseReserve: "1500000",
128
+ networkInfo: {
129
+ family: "stellar",
130
+ fees: "100",
131
+ baseFee: "100",
132
+ baseReserve: "1500000",
133
+ },
134
+ fees: "100",
135
+ memoType: null,
136
+ memoValue: null,
137
+ mode: "send",
138
+ assetCode: "",
139
+ assetIssuer: "",
140
+ }),
141
+ expectedStatus: account => ({
142
+ errors: {},
143
+ warnings: {},
144
+ estimatedFees: new bignumber_js_1.BigNumber("100"),
145
+ amount: account.spendableBalance.minus("100"),
146
+ totalSpent: account.spendableBalance.minus("100"),
147
+ }),
148
+ },
149
+ {
150
+ name: "memo text - success",
151
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z", memoType: "MEMO_TEXT", memoValue: "01234" })),
152
+ expectedStatus: {
153
+ errors: {},
154
+ warnings: {},
155
+ },
156
+ },
157
+ {
158
+ name: "memo text - error",
159
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z", memoType: "MEMO_TEXT", memoValue: "0123456789012345678901234567890123456789" })),
160
+ expectedStatus: {
161
+ errors: {
162
+ transaction: new errors_2.StellarWrongMemoFormat(),
163
+ },
164
+ warnings: {},
165
+ },
166
+ },
167
+ {
168
+ name: "memo id - success",
169
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z", memoType: "MEMO_ID", memoValue: "22" })),
170
+ expectedStatus: {
171
+ errors: {},
172
+ warnings: {},
173
+ },
174
+ },
175
+ {
176
+ name: "memo id - error",
177
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z", memoType: "MEMO_ID", memoValue: "btest2" })),
178
+ expectedStatus: {
179
+ errors: {
180
+ transaction: new errors_2.StellarWrongMemoFormat(),
181
+ },
182
+ warnings: {},
183
+ },
184
+ },
185
+ {
186
+ name: "memo hash - error",
187
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z", memoType: "MEMO_HASH", memoValue: "dsadsdasdsasseeee" })),
188
+ expectedStatus: {
189
+ errors: {
190
+ transaction: new errors_2.StellarWrongMemoFormat(),
191
+ },
192
+ warnings: {},
193
+ },
194
+ },
195
+ ],
196
+ },
197
+ {
198
+ FIXME_tests: [
199
+ "balance is sum of ops", // We prevent user to do anything if we detect that he is a multisign user
200
+ // SourceHasMultiSign will be launch first
201
+ "Default empty recipient have a recipientError",
202
+ "invalid recipient have a recipientError",
203
+ ],
204
+ raw: {
205
+ id: "libcore:2:stellar:GCDDN6T2LJN3T7SPWJQV6BCCL5KNY5GBN7X4CMSZLDEXDHXAH32TOAHS:sep5",
206
+ seedIdentifier: "3544cee0d67187d277cd9c7e26a2bf70425b1bee8e92003f45d150c5513d531a",
207
+ xpub: "GCDDN6T2LJN3T7SPWJQV6BCCL5KNY5GBN7X4CMSZLDEXDHXAH32TOAHS",
208
+ derivationMode: "sep5",
209
+ index: 2,
210
+ freshAddress: "GCDDN6T2LJN3T7SPWJQV6BCCL5KNY5GBN7X4CMSZLDEXDHXAH32TOAHS",
211
+ freshAddressPath: "44'/148'/2'",
212
+ name: "Stellar 3",
213
+ // @ts-expect-error wat
214
+ unit: {
215
+ name: "Lumen",
216
+ code: "XLM",
217
+ magnitude: 7,
218
+ },
219
+ blockHeight: 28884848,
220
+ operations: [],
221
+ pendingOperations: [],
222
+ currencyId: "stellar",
223
+ lastSyncDate: "",
224
+ balance: "59999500",
225
+ spendableBalance: "59999500",
226
+ },
227
+ transactions: [
228
+ {
229
+ name: "Multisign - error",
230
+ transaction: t => (Object.assign(Object.assign({}, t), { amount: new bignumber_js_1.BigNumber(100), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z", memoType: "MEMO_HASH", memoValue: "dsadsdasdsasseeee" })),
231
+ expectedStatus: {
232
+ errors: {
233
+ transaction: new errors_2.StellarWrongMemoFormat(),
234
+ },
235
+ warnings: {},
236
+ },
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ FIXME_tests: ["balance is sum of ops"],
242
+ raw: {
243
+ id: "js:1:stellar:f30b743cb3a8bc8c3ea8fe8455c6a52221cc6cf867f7f1f5861dd52aba1d0b8a:sep5",
244
+ seedIdentifier: "gre",
245
+ name: "GRE's Stellar 2",
246
+ xpub: "f30b743cb3a8bc8c3ea8fe8455c6a52221cc6cf867f7f1f5861dd52aba1d0b8a",
247
+ derivationMode: "sep5",
248
+ index: 1,
249
+ freshAddress: "",
250
+ freshAddressPath: "44'/148'/1'",
251
+ balance: "0",
252
+ blockHeight: 0,
253
+ currencyId: "stellar",
254
+ lastSyncDate: "",
255
+ operations: [],
256
+ pendingOperations: [],
257
+ },
258
+ },
259
+ {
260
+ FIXME_tests: ["balance is sum of ops"],
261
+ raw: {
262
+ id: "js:1:stellar:GD7G4RE27CMFTUUUVZBJJ2GBK5GCTD5JQFE5FJCENAUD6AFAVMOBZTSK:sep5",
263
+ seedIdentifier: "LIVE-3170",
264
+ name: "Large Stellar account",
265
+ xpub: "GD7G4RE27CMFTUUUVZBJJ2GBK5GCTD5JQFE5FJCENAUD6AFAVMOBZTSK",
266
+ derivationMode: "sep5",
267
+ index: 1,
268
+ freshAddress: "",
269
+ freshAddressPath: "44'/148'/1'",
270
+ balance: "0",
271
+ blockHeight: 0,
272
+ currencyId: "stellar",
273
+ lastSyncDate: "",
274
+ operations: [],
275
+ pendingOperations: [],
276
+ },
277
+ },
278
+ {
279
+ FIXME_tests: ["balance is sum of ops"],
280
+ raw: {
281
+ id: "libcore:1:stellar:GAS5NQ2VU6LA3QPDSCVBH66IHP2RE52VFCLFQKSGRF7VKMZA2KTLGI3M:sep5",
282
+ seedIdentifier: "25d6c355a7960dc1e390aa13fbc83bf51277552896582a46897f553320d2a6b3",
283
+ name: "Stellar 4",
284
+ xpub: "GAS5NQ2VU6LA3QPDSCVBH66IHP2RE52VFCLFQKSGRF7VKMZA2KTLGI3M",
285
+ derivationMode: "sep5",
286
+ index: 0,
287
+ freshAddress: "GAS5NQ2VU6LA3QPDSCVBH66IHP2RE52VFCLFQKSGRF7VKMZA2KTLGI3M",
288
+ freshAddressPath: "44'/148'/0'",
289
+ balance: "0",
290
+ blockHeight: 0,
291
+ currencyId: "stellar",
292
+ lastSyncDate: "",
293
+ operations: [],
294
+ pendingOperations: [],
295
+ },
296
+ transactions: [
297
+ {
298
+ name: "check spendable balance (selling_liabilities is not zero)",
299
+ transaction: t => (Object.assign(Object.assign({}, t), { useAllAmount: true, fees: new bignumber_js_1.BigNumber("0"), recipient: "GAIXIJBMYPTSF2CDVQ35WOTULCLZIE4W2SDEK3RQGAA3A22BPWY7R53Z" })),
300
+ expectedStatus: {
301
+ // You can get the spendable balance here
302
+ // https://stellar.expert/explorer/public/account/GAS5NQ2VU6LA3QPDSCVBH66IHP2RE52VFCLFQKSGRF7VKMZA2KTLGI3M
303
+ amount: new bignumber_js_1.BigNumber(12486627),
304
+ errors: {},
305
+ warnings: {},
306
+ },
307
+ },
308
+ ],
309
+ },
310
+ ],
311
+ },
312
+ },
313
+ };
314
+ describe("Stellar bridge", () => {
315
+ test.todo("This is an empty test to make jest command pass. Remove it once there is a real test.");
316
+ });
317
+ //# sourceMappingURL=bridge.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.integration.test.js","sourceRoot":"","sources":["../../src/bridge/bridge.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Account, AccountBridge, CurrencyBridge } from "@ledgerhq/types-live";
2
+ import type { StellarSigner, Transaction } from "../types";
3
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
4
+ import { CoinConfig } from "@ledgerhq/coin-framework/config";
5
+ import { StellarCoinConfig } from "../config";
6
+ export declare function createBridges(signerContext: SignerContext<StellarSigner>, coinConfig: CoinConfig<StellarCoinConfig>): {
7
+ currencyBridge: CurrencyBridge;
8
+ accountBridge: AccountBridge<Transaction, Account, import("@ledgerhq/types-live").TransactionStatusCommon, import("@ledgerhq/types-live").AccountRaw>;
9
+ };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AASnF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAC;AAO9E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAiB,MAAM,WAAW,CAAC;AA+C7D,wBAAgB,aAAa,CAC3B,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,EAC3C,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC;;;EAQ1C"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createBridges = void 0;
16
+ const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
17
+ const estimateMaxSpendable_1 = require("../estimateMaxSpendable");
18
+ const getTransactionStatus_1 = require("../getTransactionStatus");
19
+ const prepareTransaction_1 = require("../prepareTransaction");
20
+ const createTransaction_1 = require("../createTransaction");
21
+ const signOperation_1 = require("../signOperation");
22
+ const broadcast_1 = require("../broadcast");
23
+ const getAddressWrapper_1 = __importDefault(require("@ledgerhq/coin-framework/bridge/getAddressWrapper"));
24
+ const hw_getAddress_1 = __importDefault(require("../hw-getAddress"));
25
+ const synchronization_1 = require("../synchronization");
26
+ const config_1 = require("../config");
27
+ const PRELOAD_MAX_AGE = 30 * 60 * 1000; // 30 minutes
28
+ function buildCurrencyBridge(signerContext) {
29
+ const getAddress = (0, hw_getAddress_1.default)(signerContext);
30
+ const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
31
+ getAccountShape: synchronization_1.getAccountShape,
32
+ getAddressFn: getAddress,
33
+ });
34
+ function getPreloadStrategy() {
35
+ return {
36
+ preloadMaxAge: PRELOAD_MAX_AGE,
37
+ };
38
+ }
39
+ return {
40
+ getPreloadStrategy,
41
+ preload: () => __awaiter(this, void 0, void 0, function* () { }),
42
+ hydrate: () => { },
43
+ scanAccounts,
44
+ };
45
+ }
46
+ function buildAccountBridge(signerContext) {
47
+ const getAddress = (0, hw_getAddress_1.default)(signerContext);
48
+ const receive = (0, jsHelpers_1.makeAccountBridgeReceive)((0, getAddressWrapper_1.default)(getAddress));
49
+ const signOperation = (0, signOperation_1.buildSignOperation)(signerContext);
50
+ const sync = (0, jsHelpers_1.makeSync)({ getAccountShape: synchronization_1.getAccountShape });
51
+ const accountBridge = {
52
+ createTransaction: createTransaction_1.createTransaction,
53
+ updateTransaction: jsHelpers_1.defaultUpdateTransaction,
54
+ prepareTransaction: prepareTransaction_1.prepareTransaction,
55
+ estimateMaxSpendable: estimateMaxSpendable_1.estimateMaxSpendable,
56
+ getTransactionStatus: getTransactionStatus_1.getTransactionStatus,
57
+ sync,
58
+ receive,
59
+ signOperation,
60
+ broadcast: broadcast_1.broadcast,
61
+ };
62
+ return accountBridge;
63
+ }
64
+ function createBridges(signerContext, coinConfig) {
65
+ (0, config_1.setCoinConfig)(coinConfig);
66
+ return {
67
+ currencyBridge: buildCurrencyBridge(signerContext),
68
+ accountBridge: buildAccountBridge(signerContext),
69
+ };
70
+ }
71
+ exports.createBridges = createBridges;
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yEAKmD;AACnD,kEAA+D;AAC/D,kEAA+D;AAE/D,8DAA2D;AAC3D,4DAAyD;AACzD,oDAAsD;AACtD,4CAAyC;AACzC,0GAAkF;AAClF,qEAAwC;AAExC,wDAAqD;AAErD,sCAA6D;AAE7D,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAErD,SAAS,mBAAmB,CAAC,aAA2C;IACtE,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAA,4BAAgB,EAAC;QACpC,eAAe,EAAf,iCAAe;QACf,YAAY,EAAE,UAAU;KACzB,CAAC,CAAC;IAEH,SAAS,kBAAkB;QACzB,OAAO;YACL,aAAa,EAAE,eAAe;SAC/B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,OAAO,EAAE,GAAS,EAAE,gDAAE,CAAC,CAAA;QACvB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,aAA2C;IACrE,MAAM,UAAU,GAAG,IAAA,uBAAQ,EAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAA,oCAAwB,EAAC,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAA,kCAAkB,EAAC,aAAa,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,eAAe,EAAf,iCAAe,EAAE,CAAC,CAAC;IAE3C,MAAM,aAAa,GAA2D;QAC5E,iBAAiB,EAAjB,qCAAiB;QACjB,iBAAiB,EAAE,oCAAwB;QAC3C,kBAAkB,EAAlB,uCAAkB;QAClB,oBAAoB,EAApB,2CAAoB;QACpB,oBAAoB,EAApB,2CAAoB;QACpB,IAAI;QACJ,OAAO;QACP,aAAa;QACb,SAAS,EAAT,qBAAS;KACV,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,aAAa,CAC3B,aAA2C,EAC3C,UAAyC;IAEzC,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAC;IAE1B,OAAO;QACL,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC;QAClD,aAAa,EAAE,kBAAkB,CAAC,aAAa,CAAC;KACjD,CAAC;AACJ,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,9 @@
1
+ import type { AccountBridge } from "@ledgerhq/types-live";
2
+ import { Transaction } from "./types";
3
+ /**
4
+ * Broadcast a signed transaction
5
+ * @param {signature: string, operation: string} signedOperation
6
+ */
7
+ export declare const broadcast: AccountBridge<Transaction>["broadcast"];
8
+ export default broadcast;
9
+ //# sourceMappingURL=broadcast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAQ7D,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.broadcast = void 0;
13
+ const operation_1 = require("@ledgerhq/coin-framework/operation");
14
+ const network_1 = require("./network");
15
+ /**
16
+ * Broadcast a signed transaction
17
+ * @param {signature: string, operation: string} signedOperation
18
+ */
19
+ const broadcast = (_a) => __awaiter(void 0, [_a], void 0, function* ({ signedOperation, }) {
20
+ const { signature, operation } = signedOperation;
21
+ const hash = yield (0, network_1.broadcastTransaction)(signature);
22
+ return (0, operation_1.patchOperationWithHash)(operation, hash);
23
+ });
24
+ exports.broadcast = broadcast;
25
+ exports.default = exports.broadcast;
26
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kEAA4E;AAE5E,uCAAiE;AAGjE;;;GAGG;AACI,MAAM,SAAS,GAA4C,KAI3C,EAAE,4CAJgD,EACvE,eAAe,GAGhB;IACC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAY,EAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,IAAA,kCAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAA,CAAC;AARW,QAAA,SAAS,aAQpB;AAEF,kBAAe,iBAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Account } from "@ledgerhq/types-live";
2
+ import { StellarOperation, Transaction } from "./types";
3
+ export declare function buildOptimisticOperation(account: Account, transaction: Transaction): Promise<StellarOperation>;
4
+ //# sourceMappingURL=buildOptimisticOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOptimisticOperation.d.ts","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIxD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAoD3B"}