@ledgerhq/coin-tezos 6.5.0 → 6.6.0-nightly.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +4 -30
  3. package/CHANGELOG.md +20 -0
  4. package/jest.integ.config.js +1 -0
  5. package/lib/api/index.d.ts.map +1 -1
  6. package/lib/api/index.js +188 -40
  7. package/lib/api/index.js.map +1 -1
  8. package/lib/api/index.test.js +79 -10
  9. package/lib/api/index.test.js.map +1 -1
  10. package/lib/api/types.d.ts +7 -5
  11. package/lib/api/types.d.ts.map +1 -1
  12. package/lib/config.d.ts +4 -3
  13. package/lib/config.d.ts.map +1 -1
  14. package/lib/config.js.map +1 -1
  15. package/lib/index.d.ts +1 -1
  16. package/lib/index.d.ts.map +1 -1
  17. package/lib/index.js +1 -3
  18. package/lib/index.js.map +1 -1
  19. package/lib/logic/craftTransaction.d.ts.map +1 -1
  20. package/lib/logic/craftTransaction.js +7 -0
  21. package/lib/logic/craftTransaction.js.map +1 -1
  22. package/lib/logic/craftTransaction.test.js +1 -0
  23. package/lib/logic/craftTransaction.test.js.map +1 -1
  24. package/lib/logic/estimateFees.d.ts.map +1 -1
  25. package/lib/logic/estimateFees.integ.test.js +8 -2
  26. package/lib/logic/estimateFees.integ.test.js.map +1 -1
  27. package/lib/logic/estimateFees.js +119 -45
  28. package/lib/logic/estimateFees.js.map +1 -1
  29. package/lib/logic/getBalance.js +1 -1
  30. package/lib/logic/getBalance.js.map +1 -1
  31. package/lib/logic/getStakes.d.ts +3 -0
  32. package/lib/logic/getStakes.d.ts.map +1 -0
  33. package/lib/logic/getStakes.js +26 -0
  34. package/lib/logic/getStakes.js.map +1 -0
  35. package/lib/logic/getStakes.test.d.ts +2 -0
  36. package/lib/logic/getStakes.test.d.ts.map +1 -0
  37. package/lib/logic/getStakes.test.js +133 -0
  38. package/lib/logic/getStakes.test.js.map +1 -0
  39. package/lib/logic/index.d.ts +2 -0
  40. package/lib/logic/index.d.ts.map +1 -1
  41. package/lib/logic/index.js +5 -1
  42. package/lib/logic/index.js.map +1 -1
  43. package/lib/logic/listOperations.d.ts.map +1 -1
  44. package/lib/logic/listOperations.js +56 -10
  45. package/lib/logic/listOperations.js.map +1 -1
  46. package/lib/logic/listOperations.test.js +14 -10
  47. package/lib/logic/listOperations.test.js.map +1 -1
  48. package/lib/logic/validateIntent.d.ts +3 -0
  49. package/lib/logic/validateIntent.d.ts.map +1 -0
  50. package/lib/logic/validateIntent.js +179 -0
  51. package/lib/logic/validateIntent.js.map +1 -0
  52. package/lib/logic/validateIntent.test.d.ts +2 -0
  53. package/lib/logic/validateIntent.test.d.ts.map +1 -0
  54. package/lib/logic/validateIntent.test.js +249 -0
  55. package/lib/logic/validateIntent.test.js.map +1 -0
  56. package/{lib-es/bridge → lib}/transaction.d.ts +1 -1
  57. package/lib/transaction.d.ts.map +1 -0
  58. package/lib/{bridge/transaction.js → transaction.js} +3 -3
  59. package/lib/transaction.js.map +1 -0
  60. package/lib/types/bridge.d.ts +3 -0
  61. package/lib/types/bridge.d.ts.map +1 -1
  62. package/lib/types/bridge.fixture.d.ts.map +1 -1
  63. package/lib/types/bridge.fixture.js +1 -0
  64. package/lib/types/bridge.fixture.js.map +1 -1
  65. package/lib/types/bridge.js.map +1 -1
  66. package/lib/utils.d.ts +48 -0
  67. package/lib/utils.d.ts.map +1 -0
  68. package/lib/utils.js +112 -0
  69. package/lib/utils.js.map +1 -0
  70. package/lib-es/api/index.d.ts.map +1 -1
  71. package/lib-es/api/index.js +189 -41
  72. package/lib-es/api/index.js.map +1 -1
  73. package/lib-es/api/index.test.js +79 -10
  74. package/lib-es/api/index.test.js.map +1 -1
  75. package/lib-es/api/types.d.ts +7 -5
  76. package/lib-es/api/types.d.ts.map +1 -1
  77. package/lib-es/config.d.ts +4 -3
  78. package/lib-es/config.d.ts.map +1 -1
  79. package/lib-es/config.js.map +1 -1
  80. package/lib-es/index.d.ts +1 -1
  81. package/lib-es/index.d.ts.map +1 -1
  82. package/lib-es/index.js +1 -1
  83. package/lib-es/index.js.map +1 -1
  84. package/lib-es/logic/craftTransaction.d.ts.map +1 -1
  85. package/lib-es/logic/craftTransaction.js +7 -0
  86. package/lib-es/logic/craftTransaction.js.map +1 -1
  87. package/lib-es/logic/craftTransaction.test.js +1 -0
  88. package/lib-es/logic/craftTransaction.test.js.map +1 -1
  89. package/lib-es/logic/estimateFees.d.ts.map +1 -1
  90. package/lib-es/logic/estimateFees.integ.test.js +8 -2
  91. package/lib-es/logic/estimateFees.integ.test.js.map +1 -1
  92. package/lib-es/logic/estimateFees.js +119 -45
  93. package/lib-es/logic/estimateFees.js.map +1 -1
  94. package/lib-es/logic/getBalance.js +1 -1
  95. package/lib-es/logic/getBalance.js.map +1 -1
  96. package/lib-es/logic/getStakes.d.ts +3 -0
  97. package/lib-es/logic/getStakes.d.ts.map +1 -0
  98. package/lib-es/logic/getStakes.js +20 -0
  99. package/lib-es/logic/getStakes.js.map +1 -0
  100. package/lib-es/logic/getStakes.test.d.ts +2 -0
  101. package/lib-es/logic/getStakes.test.d.ts.map +1 -0
  102. package/lib-es/logic/getStakes.test.js +128 -0
  103. package/lib-es/logic/getStakes.test.js.map +1 -0
  104. package/lib-es/logic/index.d.ts +2 -0
  105. package/lib-es/logic/index.d.ts.map +1 -1
  106. package/lib-es/logic/index.js +2 -0
  107. package/lib-es/logic/index.js.map +1 -1
  108. package/lib-es/logic/listOperations.d.ts.map +1 -1
  109. package/lib-es/logic/listOperations.js +56 -10
  110. package/lib-es/logic/listOperations.js.map +1 -1
  111. package/lib-es/logic/listOperations.test.js +14 -10
  112. package/lib-es/logic/listOperations.test.js.map +1 -1
  113. package/lib-es/logic/validateIntent.d.ts +3 -0
  114. package/lib-es/logic/validateIntent.d.ts.map +1 -0
  115. package/lib-es/logic/validateIntent.js +173 -0
  116. package/lib-es/logic/validateIntent.js.map +1 -0
  117. package/lib-es/logic/validateIntent.test.d.ts +2 -0
  118. package/lib-es/logic/validateIntent.test.d.ts.map +1 -0
  119. package/lib-es/logic/validateIntent.test.js +221 -0
  120. package/lib-es/logic/validateIntent.test.js.map +1 -0
  121. package/{lib/bridge → lib-es}/transaction.d.ts +1 -1
  122. package/lib-es/transaction.d.ts.map +1 -0
  123. package/lib-es/{bridge/transaction.js → transaction.js} +3 -3
  124. package/lib-es/transaction.js.map +1 -0
  125. package/lib-es/types/bridge.d.ts +3 -0
  126. package/lib-es/types/bridge.d.ts.map +1 -1
  127. package/lib-es/types/bridge.fixture.d.ts.map +1 -1
  128. package/lib-es/types/bridge.fixture.js +1 -0
  129. package/lib-es/types/bridge.fixture.js.map +1 -1
  130. package/lib-es/types/bridge.js.map +1 -1
  131. package/lib-es/utils.d.ts +48 -0
  132. package/lib-es/utils.d.ts.map +1 -0
  133. package/lib-es/utils.js +105 -0
  134. package/lib-es/utils.js.map +1 -0
  135. package/package.json +9 -12
  136. package/src/api/index.test.ts +87 -15
  137. package/src/api/index.ts +204 -55
  138. package/src/api/types.ts +11 -6
  139. package/src/config.ts +9 -2
  140. package/src/index.ts +1 -2
  141. package/src/logic/craftTransaction.test.ts +1 -0
  142. package/src/logic/craftTransaction.ts +8 -0
  143. package/src/logic/estimateFees.integ.test.ts +8 -2
  144. package/src/logic/estimateFees.ts +140 -49
  145. package/src/logic/getBalance.ts +1 -1
  146. package/src/logic/getStakes.test.ts +145 -0
  147. package/src/logic/getStakes.ts +20 -0
  148. package/src/logic/index.ts +2 -0
  149. package/src/logic/listOperations.test.ts +64 -54
  150. package/src/logic/listOperations.ts +57 -9
  151. package/src/logic/validateIntent.test.ts +262 -0
  152. package/src/logic/validateIntent.ts +207 -0
  153. package/src/{bridge/transaction.ts → transaction.ts} +4 -4
  154. package/src/types/bridge.fixture.ts +1 -0
  155. package/src/types/bridge.ts +6 -1
  156. package/src/utils.ts +115 -0
  157. package/lib/bridge/broadcast.d.ts +0 -4
  158. package/lib/bridge/broadcast.d.ts.map +0 -1
  159. package/lib/bridge/broadcast.js +0 -11
  160. package/lib/bridge/broadcast.js.map +0 -1
  161. package/lib/bridge/broadcast.test.d.ts +0 -2
  162. package/lib/bridge/broadcast.test.d.ts.map +0 -1
  163. package/lib/bridge/broadcast.test.js +0 -36
  164. package/lib/bridge/broadcast.test.js.map +0 -1
  165. package/lib/bridge/buildOptimisticOperation.d.ts +0 -4
  166. package/lib/bridge/buildOptimisticOperation.d.ts.map +0 -1
  167. package/lib/bridge/buildOptimisticOperation.js +0 -28
  168. package/lib/bridge/buildOptimisticOperation.js.map +0 -1
  169. package/lib/bridge/createTransaction.d.ts +0 -4
  170. package/lib/bridge/createTransaction.d.ts.map +0 -1
  171. package/lib/bridge/createTransaction.js +0 -24
  172. package/lib/bridge/createTransaction.js.map +0 -1
  173. package/lib/bridge/estimateMaxSpendable.d.ts +0 -5
  174. package/lib/bridge/estimateMaxSpendable.d.ts.map +0 -1
  175. package/lib/bridge/estimateMaxSpendable.js +0 -30
  176. package/lib/bridge/estimateMaxSpendable.js.map +0 -1
  177. package/lib/bridge/getFeesForTransaction.d.ts +0 -21
  178. package/lib/bridge/getFeesForTransaction.d.ts.map +0 -1
  179. package/lib/bridge/getFeesForTransaction.js +0 -39
  180. package/lib/bridge/getFeesForTransaction.js.map +0 -1
  181. package/lib/bridge/getTransactionStatus.d.ts +0 -4
  182. package/lib/bridge/getTransactionStatus.d.ts.map +0 -1
  183. package/lib/bridge/getTransactionStatus.js +0 -108
  184. package/lib/bridge/getTransactionStatus.js.map +0 -1
  185. package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
  186. package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
  187. package/lib/bridge/getTransactionStatus.test.js +0 -107
  188. package/lib/bridge/getTransactionStatus.test.js.map +0 -1
  189. package/lib/bridge/index.d.ts +0 -10
  190. package/lib/bridge/index.d.ts.map +0 -1
  191. package/lib/bridge/index.js +0 -59
  192. package/lib/bridge/index.js.map +0 -1
  193. package/lib/bridge/logic.d.ts +0 -10
  194. package/lib/bridge/logic.d.ts.map +0 -1
  195. package/lib/bridge/logic.js +0 -155
  196. package/lib/bridge/logic.js.map +0 -1
  197. package/lib/bridge/preload.d.ts +0 -9
  198. package/lib/bridge/preload.d.ts.map +0 -1
  199. package/lib/bridge/preload.js +0 -23
  200. package/lib/bridge/preload.js.map +0 -1
  201. package/lib/bridge/prepareTransaction.d.ts +0 -5
  202. package/lib/bridge/prepareTransaction.d.ts.map +0 -1
  203. package/lib/bridge/prepareTransaction.integ.test.d.ts +0 -2
  204. package/lib/bridge/prepareTransaction.integ.test.d.ts.map +0 -1
  205. package/lib/bridge/prepareTransaction.integ.test.js +0 -34
  206. package/lib/bridge/prepareTransaction.integ.test.js.map +0 -1
  207. package/lib/bridge/prepareTransaction.js +0 -57
  208. package/lib/bridge/prepareTransaction.js.map +0 -1
  209. package/lib/bridge/prepareTransaction.test.d.ts +0 -2
  210. package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
  211. package/lib/bridge/prepareTransaction.test.js +0 -178
  212. package/lib/bridge/prepareTransaction.test.js.map +0 -1
  213. package/lib/bridge/serialization.d.ts +0 -7
  214. package/lib/bridge/serialization.d.ts.map +0 -1
  215. package/lib/bridge/serialization.js +0 -26
  216. package/lib/bridge/serialization.js.map +0 -1
  217. package/lib/bridge/signOperation.d.ts +0 -16
  218. package/lib/bridge/signOperation.d.ts.map +0 -1
  219. package/lib/bridge/signOperation.js +0 -88
  220. package/lib/bridge/signOperation.js.map +0 -1
  221. package/lib/bridge/signOperation.test.d.ts +0 -2
  222. package/lib/bridge/signOperation.test.d.ts.map +0 -1
  223. package/lib/bridge/signOperation.test.js +0 -283
  224. package/lib/bridge/signOperation.test.js.map +0 -1
  225. package/lib/bridge/synchronization.d.ts +0 -5
  226. package/lib/bridge/synchronization.d.ts.map +0 -1
  227. package/lib/bridge/synchronization.integ.test.d.ts +0 -2
  228. package/lib/bridge/synchronization.integ.test.d.ts.map +0 -1
  229. package/lib/bridge/synchronization.integ.test.js +0 -32
  230. package/lib/bridge/synchronization.integ.test.js.map +0 -1
  231. package/lib/bridge/synchronization.js +0 -100
  232. package/lib/bridge/synchronization.js.map +0 -1
  233. package/lib/bridge/transaction.d.ts.map +0 -1
  234. package/lib/bridge/transaction.js.map +0 -1
  235. package/lib-es/bridge/broadcast.d.ts +0 -4
  236. package/lib-es/bridge/broadcast.d.ts.map +0 -1
  237. package/lib-es/bridge/broadcast.js +0 -7
  238. package/lib-es/bridge/broadcast.js.map +0 -1
  239. package/lib-es/bridge/broadcast.test.d.ts +0 -2
  240. package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
  241. package/lib-es/bridge/broadcast.test.js +0 -31
  242. package/lib-es/bridge/broadcast.test.js.map +0 -1
  243. package/lib-es/bridge/buildOptimisticOperation.d.ts +0 -4
  244. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +0 -1
  245. package/lib-es/bridge/buildOptimisticOperation.js +0 -21
  246. package/lib-es/bridge/buildOptimisticOperation.js.map +0 -1
  247. package/lib-es/bridge/createTransaction.d.ts +0 -4
  248. package/lib-es/bridge/createTransaction.d.ts.map +0 -1
  249. package/lib-es/bridge/createTransaction.js +0 -17
  250. package/lib-es/bridge/createTransaction.js.map +0 -1
  251. package/lib-es/bridge/estimateMaxSpendable.d.ts +0 -5
  252. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +0 -1
  253. package/lib-es/bridge/estimateMaxSpendable.js +0 -23
  254. package/lib-es/bridge/estimateMaxSpendable.js.map +0 -1
  255. package/lib-es/bridge/getFeesForTransaction.d.ts +0 -21
  256. package/lib-es/bridge/getFeesForTransaction.d.ts.map +0 -1
  257. package/lib-es/bridge/getFeesForTransaction.js +0 -33
  258. package/lib-es/bridge/getFeesForTransaction.js.map +0 -1
  259. package/lib-es/bridge/getTransactionStatus.d.ts +0 -4
  260. package/lib-es/bridge/getTransactionStatus.d.ts.map +0 -1
  261. package/lib-es/bridge/getTransactionStatus.js +0 -101
  262. package/lib-es/bridge/getTransactionStatus.js.map +0 -1
  263. package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
  264. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
  265. package/lib-es/bridge/getTransactionStatus.test.js +0 -102
  266. package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
  267. package/lib-es/bridge/index.d.ts +0 -10
  268. package/lib-es/bridge/index.d.ts.map +0 -1
  269. package/lib-es/bridge/index.js +0 -53
  270. package/lib-es/bridge/index.js.map +0 -1
  271. package/lib-es/bridge/logic.d.ts +0 -10
  272. package/lib-es/bridge/logic.d.ts.map +0 -1
  273. package/lib-es/bridge/logic.js +0 -145
  274. package/lib-es/bridge/logic.js.map +0 -1
  275. package/lib-es/bridge/preload.d.ts +0 -9
  276. package/lib-es/bridge/preload.d.ts.map +0 -1
  277. package/lib-es/bridge/preload.js +0 -17
  278. package/lib-es/bridge/preload.js.map +0 -1
  279. package/lib-es/bridge/prepareTransaction.d.ts +0 -5
  280. package/lib-es/bridge/prepareTransaction.d.ts.map +0 -1
  281. package/lib-es/bridge/prepareTransaction.integ.test.d.ts +0 -2
  282. package/lib-es/bridge/prepareTransaction.integ.test.d.ts.map +0 -1
  283. package/lib-es/bridge/prepareTransaction.integ.test.js +0 -29
  284. package/lib-es/bridge/prepareTransaction.integ.test.js.map +0 -1
  285. package/lib-es/bridge/prepareTransaction.js +0 -50
  286. package/lib-es/bridge/prepareTransaction.js.map +0 -1
  287. package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
  288. package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
  289. package/lib-es/bridge/prepareTransaction.test.js +0 -173
  290. package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
  291. package/lib-es/bridge/serialization.d.ts +0 -7
  292. package/lib-es/bridge/serialization.d.ts.map +0 -1
  293. package/lib-es/bridge/serialization.js +0 -20
  294. package/lib-es/bridge/serialization.js.map +0 -1
  295. package/lib-es/bridge/signOperation.d.ts +0 -16
  296. package/lib-es/bridge/signOperation.d.ts.map +0 -1
  297. package/lib-es/bridge/signOperation.js +0 -83
  298. package/lib-es/bridge/signOperation.js.map +0 -1
  299. package/lib-es/bridge/signOperation.test.d.ts +0 -2
  300. package/lib-es/bridge/signOperation.test.d.ts.map +0 -1
  301. package/lib-es/bridge/signOperation.test.js +0 -255
  302. package/lib-es/bridge/signOperation.test.js.map +0 -1
  303. package/lib-es/bridge/synchronization.d.ts +0 -5
  304. package/lib-es/bridge/synchronization.d.ts.map +0 -1
  305. package/lib-es/bridge/synchronization.integ.test.d.ts +0 -2
  306. package/lib-es/bridge/synchronization.integ.test.d.ts.map +0 -1
  307. package/lib-es/bridge/synchronization.integ.test.js +0 -27
  308. package/lib-es/bridge/synchronization.integ.test.js.map +0 -1
  309. package/lib-es/bridge/synchronization.js +0 -70
  310. package/lib-es/bridge/synchronization.js.map +0 -1
  311. package/lib-es/bridge/transaction.d.ts.map +0 -1
  312. package/lib-es/bridge/transaction.js.map +0 -1
  313. package/src/bridge/broadcast.test.ts +0 -36
  314. package/src/bridge/broadcast.ts +0 -13
  315. package/src/bridge/buildOptimisticOperation.ts +0 -28
  316. package/src/bridge/createTransaction.ts +0 -19
  317. package/src/bridge/estimateMaxSpendable.ts +0 -37
  318. package/src/bridge/getFeesForTransaction.ts +0 -49
  319. package/src/bridge/getTransactionStatus.test.ts +0 -124
  320. package/src/bridge/getTransactionStatus.ts +0 -123
  321. package/src/bridge/index.ts +0 -74
  322. package/src/bridge/logic.ts +0 -171
  323. package/src/bridge/preload.ts +0 -18
  324. package/src/bridge/prepareTransaction.integ.test.ts +0 -35
  325. package/src/bridge/prepareTransaction.test.ts +0 -205
  326. package/src/bridge/prepareTransaction.ts +0 -69
  327. package/src/bridge/serialization.ts +0 -27
  328. package/src/bridge/signOperation.test.ts +0 -284
  329. package/src/bridge/signOperation.ts +0 -130
  330. package/src/bridge/synchronization.integ.test.ts +0 -33
  331. package/src/bridge/synchronization.ts +0 -100
@@ -1,130 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { FeeNotLoaded } from "@ledgerhq/errors";
3
- import { SignerContext } from "@ledgerhq/coin-framework/signer";
4
- import type { SignOperationEvent, AccountBridge } from "@ledgerhq/types-live";
5
- import type { TezosAccount, TezosSigner, Transaction, TransactionStatus } from "../types";
6
- import { buildOptimisticOperation } from "./buildOptimisticOperation";
7
- import { craftTransaction, rawEncode } from "../logic";
8
- import { getTezosToolkit } from "../logic/tezosToolkit";
9
-
10
- // Exported for test purpose only
11
- export async function getOperationContents({
12
- account,
13
- transaction,
14
- counter,
15
- public_key,
16
- public_key_hash,
17
- }: {
18
- account: TezosAccount;
19
- transaction: Transaction;
20
- counter: number;
21
- public_key: string;
22
- public_key_hash: string;
23
- }) {
24
- let publicKey = undefined;
25
- if (!account.tezosResources.revealed) {
26
- publicKey = {
27
- publicKey: public_key,
28
- publicKeyHash: public_key_hash,
29
- };
30
- }
31
-
32
- return craftTransaction(
33
- {
34
- address: account.freshAddress,
35
- counter,
36
- },
37
- {
38
- type: transaction.mode,
39
- recipient: transaction.recipient,
40
- amount: BigInt(transaction.amount.toString()),
41
- fee: {
42
- fees: (transaction.fees || 0).toString(),
43
- gasLimit: (transaction.gasLimit || 0).toString(),
44
- storageLimit: (transaction.storageLimit || 0).toString(),
45
- },
46
- },
47
- publicKey,
48
- );
49
- }
50
-
51
- export const buildSignOperation =
52
- (
53
- signerContext: SignerContext<TezosSigner>,
54
- ): AccountBridge<Transaction, TezosAccount, TransactionStatus>["signOperation"] =>
55
- ({ account, deviceId, transaction }): Observable<SignOperationEvent> =>
56
- new Observable(o => {
57
- let cancelled = false;
58
-
59
- async function main() {
60
- const { fees } = transaction;
61
- if (!fees) throw new FeeNotLoaded();
62
-
63
- const { freshAddressPath, freshAddress } = account;
64
-
65
- const signedInfo = await signerContext(deviceId, async signer => {
66
- const ledgerSigner = signer.createLedgerSigner(freshAddressPath, false, 0);
67
-
68
- const tezosToolkit = getTezosToolkit();
69
- tezosToolkit.setProvider({ signer: ledgerSigner });
70
-
71
- const publicKey = await ledgerSigner.publicKey();
72
- const publicKeyHash = await ledgerSigner.publicKeyHash();
73
-
74
- const sourceData = await tezosToolkit.rpc.getContract(freshAddress);
75
-
76
- o.next({ type: "device-signature-requested" });
77
-
78
- if (cancelled) {
79
- return;
80
- }
81
-
82
- const { type, contents } = await getOperationContents({
83
- account,
84
- transaction,
85
- counter: Number(sourceData.counter),
86
- public_key: publicKey,
87
- public_key_hash: publicKeyHash,
88
- });
89
-
90
- const forgedBytes = await rawEncode(contents);
91
-
92
- const signature = await ledgerSigner.sign(forgedBytes);
93
-
94
- return {
95
- type,
96
- signature,
97
- };
98
- });
99
-
100
- if (!signedInfo) {
101
- return;
102
- }
103
-
104
- o.next({ type: "device-signature-granted" });
105
-
106
- const { type, signature } = signedInfo;
107
- const operation = buildOptimisticOperation(account, transaction, type);
108
-
109
- o.next({
110
- type: "signed",
111
- signedOperation: {
112
- operation,
113
- // we slice the signature to remove the `03` prefix
114
- // which souldn't be included in the signature
115
- signature: signature.sbytes.slice(2),
116
- },
117
- });
118
- }
119
-
120
- main().then(
121
- () => o.complete(),
122
- e => o.error(e),
123
- );
124
-
125
- return () => {
126
- cancelled = true;
127
- };
128
- });
129
-
130
- export default buildSignOperation;
@@ -1,33 +0,0 @@
1
- import coinConfig, { TezosCoinConfig } from "../config";
2
- import { fetchAllTransactions } from "../network/tzkt";
3
- import { mockConfig } from "../test/config";
4
-
5
- jest.setTimeout(2 * 60 * 1000);
6
-
7
- describe("TEZOS_MAX_TX_QUERIES", () => {
8
- const tezosConfig = mockConfig as TezosCoinConfig;
9
- const bigAccount = "tz1boBHAVpwcvKkNFAQHYr7mjxAz1PpVgKq7";
10
-
11
- test("default have more than 100 txs", async () => {
12
- // Given
13
- coinConfig.setCoinConfig((): TezosCoinConfig => tezosConfig);
14
-
15
- const txs = await fetchAllTransactions(bigAccount);
16
- expect(txs.length).toBeGreaterThan(100);
17
- });
18
- test("lowering it to 1 will only fetch a few txs", async () => {
19
- // Given
20
- coinConfig.setCoinConfig(
21
- (): TezosCoinConfig => ({
22
- ...tezosConfig,
23
- explorer: {
24
- url: "https://xtz-tzkt-explorer.api.live.ledger.com",
25
- maxTxQuery: 1,
26
- },
27
- }),
28
- );
29
-
30
- const txs = await fetchAllTransactions(bigAccount);
31
- expect(txs.length).toBeLessThanOrEqual(100);
32
- });
33
- });
@@ -1,100 +0,0 @@
1
- import invariant from "invariant";
2
- import { BigNumber } from "bignumber.js";
3
- import type { TokenAccount } from "@ledgerhq/types-live";
4
- import { GetAccountShape, makeSync, mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
5
- import { encodeAccountId, areAllOperationsLoaded } from "@ledgerhq/coin-framework/account/index";
6
- import { encodeAddress, isStringHex, reconciliatePublicKey, txToOp } from "./logic";
7
- import api, { fetchAllTransactions } from "../network/tzkt";
8
- import { TezosAccount, TezosOperation } from "../types";
9
-
10
- export const getAccountShape: GetAccountShape<TezosAccount> = async ({
11
- initialAccount,
12
- rest,
13
- currency,
14
- derivationMode,
15
- }) => {
16
- const publicKey = reconciliatePublicKey(rest?.publicKey, initialAccount);
17
- invariant(
18
- isStringHex(publicKey),
19
- `Invalid public key (${publicKey}). Please reimport your Tezos accounts`,
20
- );
21
- const hex = Buffer.from(publicKey, "hex");
22
- const address = encodeAddress(hex);
23
-
24
- const accountId = encodeAccountId({
25
- type: "js",
26
- version: "2",
27
- currencyId: currency.id,
28
- xpubOrAddress: publicKey,
29
- derivationMode,
30
- });
31
-
32
- const initialStableOperations = (
33
- initialAccount && initialAccount.id === accountId ? initialAccount.operations : []
34
- ) as TezosOperation[];
35
-
36
- // fetch transactions, incrementally if possible
37
- const mostRecentStableOperation = initialStableOperations[0];
38
-
39
- const lastId =
40
- initialAccount && areAllOperationsLoaded(initialAccount) && mostRecentStableOperation
41
- ? mostRecentStableOperation.extra.id || undefined
42
- : undefined;
43
-
44
- const apiAccountPromise = api.getAccountByAddress(address);
45
- const blocksCountPromise = api.getBlockCount();
46
-
47
- const [apiAccount, blockHeight] = await Promise.all([apiAccountPromise, blocksCountPromise]);
48
-
49
- if (apiAccount.type === "empty") {
50
- return {
51
- id: accountId,
52
- xpub: publicKey,
53
- freshAddress: address,
54
- blockHeight,
55
- lastSyncDate: new Date(),
56
- tezosResources: {
57
- revealed: false,
58
- counter: 0,
59
- },
60
- };
61
- }
62
-
63
- const fullySupported = apiAccount.type === "user";
64
-
65
- const apiOperations = fullySupported ? await fetchAllTransactions(address, lastId) : [];
66
-
67
- const { revealed, counter } = apiAccount;
68
-
69
- const tezosResources = {
70
- revealed,
71
- counter,
72
- };
73
-
74
- const balance = new BigNumber(apiAccount.balance);
75
- const subAccounts: TokenAccount[] = [];
76
-
77
- const newOps = apiOperations
78
- .map(txToOp({ address, accountId }))
79
- .filter(Boolean) as unknown as TezosOperation[]; // force cast because `filter(Boolean)` remove undefined and null value
80
-
81
- const operations = mergeOps(initialStableOperations, newOps);
82
-
83
- const accountShape = {
84
- id: accountId,
85
- xpub: publicKey,
86
- freshAddress: address,
87
- operations,
88
- operationsCount: operations.length,
89
- balance,
90
- subAccounts,
91
- spendableBalance: balance,
92
- blockHeight,
93
- lastSyncDate: new Date(),
94
- tezosResources,
95
- };
96
-
97
- return accountShape;
98
- };
99
-
100
- export const sync = makeSync({ getAccountShape });