@ledgerhq/coin-tezos 6.6.0-nightly.1 → 6.6.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 (331) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +30 -4
  3. package/CHANGELOG.md +17 -8
  4. package/jest.integ.config.js +0 -1
  5. package/lib/api/index.d.ts.map +1 -1
  6. package/lib/api/index.js +40 -188
  7. package/lib/api/index.js.map +1 -1
  8. package/lib/api/index.test.js +10 -79
  9. package/lib/api/index.test.js.map +1 -1
  10. package/lib/api/types.d.ts +5 -7
  11. package/lib/api/types.d.ts.map +1 -1
  12. package/lib/bridge/broadcast.d.ts +4 -0
  13. package/lib/bridge/broadcast.d.ts.map +1 -0
  14. package/lib/bridge/broadcast.js +11 -0
  15. package/lib/bridge/broadcast.js.map +1 -0
  16. package/lib/bridge/broadcast.test.d.ts +2 -0
  17. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  18. package/lib/bridge/broadcast.test.js +36 -0
  19. package/lib/bridge/broadcast.test.js.map +1 -0
  20. package/lib/bridge/buildOptimisticOperation.d.ts +4 -0
  21. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -0
  22. package/lib/bridge/buildOptimisticOperation.js +28 -0
  23. package/lib/bridge/buildOptimisticOperation.js.map +1 -0
  24. package/lib/bridge/createTransaction.d.ts +4 -0
  25. package/lib/bridge/createTransaction.d.ts.map +1 -0
  26. package/lib/bridge/createTransaction.js +24 -0
  27. package/lib/bridge/createTransaction.js.map +1 -0
  28. package/lib/bridge/estimateMaxSpendable.d.ts +5 -0
  29. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
  30. package/lib/bridge/estimateMaxSpendable.js +30 -0
  31. package/lib/bridge/estimateMaxSpendable.js.map +1 -0
  32. package/lib/bridge/getFeesForTransaction.d.ts +21 -0
  33. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -0
  34. package/lib/bridge/getFeesForTransaction.js +39 -0
  35. package/lib/bridge/getFeesForTransaction.js.map +1 -0
  36. package/lib/bridge/getTransactionStatus.d.ts +4 -0
  37. package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
  38. package/lib/bridge/getTransactionStatus.js +108 -0
  39. package/lib/bridge/getTransactionStatus.js.map +1 -0
  40. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  41. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  42. package/lib/bridge/getTransactionStatus.test.js +107 -0
  43. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  44. package/lib/bridge/index.d.ts +10 -0
  45. package/lib/bridge/index.d.ts.map +1 -0
  46. package/lib/bridge/index.js +59 -0
  47. package/lib/bridge/index.js.map +1 -0
  48. package/lib/bridge/logic.d.ts +10 -0
  49. package/lib/bridge/logic.d.ts.map +1 -0
  50. package/lib/bridge/logic.js +155 -0
  51. package/lib/bridge/logic.js.map +1 -0
  52. package/lib/bridge/preload.d.ts +9 -0
  53. package/lib/bridge/preload.d.ts.map +1 -0
  54. package/lib/bridge/preload.js +23 -0
  55. package/lib/bridge/preload.js.map +1 -0
  56. package/lib/bridge/prepareTransaction.d.ts +5 -0
  57. package/lib/bridge/prepareTransaction.d.ts.map +1 -0
  58. package/lib/bridge/prepareTransaction.integ.test.d.ts +2 -0
  59. package/lib/bridge/prepareTransaction.integ.test.d.ts.map +1 -0
  60. package/lib/bridge/prepareTransaction.integ.test.js +34 -0
  61. package/lib/bridge/prepareTransaction.integ.test.js.map +1 -0
  62. package/lib/bridge/prepareTransaction.js +57 -0
  63. package/lib/bridge/prepareTransaction.js.map +1 -0
  64. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  65. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  66. package/lib/bridge/prepareTransaction.test.js +178 -0
  67. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  68. package/lib/bridge/serialization.d.ts +7 -0
  69. package/lib/bridge/serialization.d.ts.map +1 -0
  70. package/lib/bridge/serialization.js +26 -0
  71. package/lib/bridge/serialization.js.map +1 -0
  72. package/lib/bridge/signOperation.d.ts +16 -0
  73. package/lib/bridge/signOperation.d.ts.map +1 -0
  74. package/lib/bridge/signOperation.js +88 -0
  75. package/lib/bridge/signOperation.js.map +1 -0
  76. package/lib/bridge/signOperation.test.d.ts +2 -0
  77. package/lib/bridge/signOperation.test.d.ts.map +1 -0
  78. package/lib/bridge/signOperation.test.js +283 -0
  79. package/lib/bridge/signOperation.test.js.map +1 -0
  80. package/lib/bridge/synchronization.d.ts +5 -0
  81. package/lib/bridge/synchronization.d.ts.map +1 -0
  82. package/lib/bridge/synchronization.integ.test.d.ts +2 -0
  83. package/lib/bridge/synchronization.integ.test.d.ts.map +1 -0
  84. package/lib/bridge/synchronization.integ.test.js +32 -0
  85. package/lib/bridge/synchronization.integ.test.js.map +1 -0
  86. package/lib/bridge/synchronization.js +100 -0
  87. package/lib/bridge/synchronization.js.map +1 -0
  88. package/lib/{transaction.d.ts → bridge/transaction.d.ts} +1 -1
  89. package/lib/bridge/transaction.d.ts.map +1 -0
  90. package/lib/{transaction.js → bridge/transaction.js} +3 -3
  91. package/lib/bridge/transaction.js.map +1 -0
  92. package/lib/config.d.ts +3 -4
  93. package/lib/config.d.ts.map +1 -1
  94. package/lib/config.js.map +1 -1
  95. package/lib/index.d.ts +1 -1
  96. package/lib/index.d.ts.map +1 -1
  97. package/lib/index.js +3 -1
  98. package/lib/index.js.map +1 -1
  99. package/lib/logic/craftTransaction.d.ts.map +1 -1
  100. package/lib/logic/craftTransaction.js +0 -7
  101. package/lib/logic/craftTransaction.js.map +1 -1
  102. package/lib/logic/craftTransaction.test.js +0 -1
  103. package/lib/logic/craftTransaction.test.js.map +1 -1
  104. package/lib/logic/estimateFees.d.ts.map +1 -1
  105. package/lib/logic/estimateFees.integ.test.js +2 -8
  106. package/lib/logic/estimateFees.integ.test.js.map +1 -1
  107. package/lib/logic/estimateFees.js +45 -119
  108. package/lib/logic/estimateFees.js.map +1 -1
  109. package/lib/logic/getBalance.js +1 -1
  110. package/lib/logic/getBalance.js.map +1 -1
  111. package/lib/logic/index.d.ts +0 -2
  112. package/lib/logic/index.d.ts.map +1 -1
  113. package/lib/logic/index.js +1 -5
  114. package/lib/logic/index.js.map +1 -1
  115. package/lib/logic/listOperations.d.ts.map +1 -1
  116. package/lib/logic/listOperations.js +10 -56
  117. package/lib/logic/listOperations.js.map +1 -1
  118. package/lib/logic/listOperations.test.js +10 -14
  119. package/lib/logic/listOperations.test.js.map +1 -1
  120. package/lib/types/bridge.d.ts +0 -3
  121. package/lib/types/bridge.d.ts.map +1 -1
  122. package/lib/types/bridge.fixture.d.ts.map +1 -1
  123. package/lib/types/bridge.fixture.js +0 -1
  124. package/lib/types/bridge.fixture.js.map +1 -1
  125. package/lib/types/bridge.js.map +1 -1
  126. package/lib-es/api/index.d.ts.map +1 -1
  127. package/lib-es/api/index.js +41 -189
  128. package/lib-es/api/index.js.map +1 -1
  129. package/lib-es/api/index.test.js +10 -79
  130. package/lib-es/api/index.test.js.map +1 -1
  131. package/lib-es/api/types.d.ts +5 -7
  132. package/lib-es/api/types.d.ts.map +1 -1
  133. package/lib-es/bridge/broadcast.d.ts +4 -0
  134. package/lib-es/bridge/broadcast.d.ts.map +1 -0
  135. package/lib-es/bridge/broadcast.js +7 -0
  136. package/lib-es/bridge/broadcast.js.map +1 -0
  137. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  138. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  139. package/lib-es/bridge/broadcast.test.js +31 -0
  140. package/lib-es/bridge/broadcast.test.js.map +1 -0
  141. package/lib-es/bridge/buildOptimisticOperation.d.ts +4 -0
  142. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -0
  143. package/lib-es/bridge/buildOptimisticOperation.js +21 -0
  144. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -0
  145. package/lib-es/bridge/createTransaction.d.ts +4 -0
  146. package/lib-es/bridge/createTransaction.d.ts.map +1 -0
  147. package/lib-es/bridge/createTransaction.js +17 -0
  148. package/lib-es/bridge/createTransaction.js.map +1 -0
  149. package/lib-es/bridge/estimateMaxSpendable.d.ts +5 -0
  150. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
  151. package/lib-es/bridge/estimateMaxSpendable.js +23 -0
  152. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
  153. package/lib-es/bridge/getFeesForTransaction.d.ts +21 -0
  154. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -0
  155. package/lib-es/bridge/getFeesForTransaction.js +33 -0
  156. package/lib-es/bridge/getFeesForTransaction.js.map +1 -0
  157. package/lib-es/bridge/getTransactionStatus.d.ts +4 -0
  158. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
  159. package/lib-es/bridge/getTransactionStatus.js +101 -0
  160. package/lib-es/bridge/getTransactionStatus.js.map +1 -0
  161. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  162. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  163. package/lib-es/bridge/getTransactionStatus.test.js +102 -0
  164. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  165. package/lib-es/bridge/index.d.ts +10 -0
  166. package/lib-es/bridge/index.d.ts.map +1 -0
  167. package/lib-es/bridge/index.js +53 -0
  168. package/lib-es/bridge/index.js.map +1 -0
  169. package/lib-es/bridge/logic.d.ts +10 -0
  170. package/lib-es/bridge/logic.d.ts.map +1 -0
  171. package/lib-es/bridge/logic.js +145 -0
  172. package/lib-es/bridge/logic.js.map +1 -0
  173. package/lib-es/bridge/preload.d.ts +9 -0
  174. package/lib-es/bridge/preload.d.ts.map +1 -0
  175. package/lib-es/bridge/preload.js +17 -0
  176. package/lib-es/bridge/preload.js.map +1 -0
  177. package/lib-es/bridge/prepareTransaction.d.ts +5 -0
  178. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
  179. package/lib-es/bridge/prepareTransaction.integ.test.d.ts +2 -0
  180. package/lib-es/bridge/prepareTransaction.integ.test.d.ts.map +1 -0
  181. package/lib-es/bridge/prepareTransaction.integ.test.js +29 -0
  182. package/lib-es/bridge/prepareTransaction.integ.test.js.map +1 -0
  183. package/lib-es/bridge/prepareTransaction.js +50 -0
  184. package/lib-es/bridge/prepareTransaction.js.map +1 -0
  185. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  186. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  187. package/lib-es/bridge/prepareTransaction.test.js +173 -0
  188. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  189. package/lib-es/bridge/serialization.d.ts +7 -0
  190. package/lib-es/bridge/serialization.d.ts.map +1 -0
  191. package/lib-es/bridge/serialization.js +20 -0
  192. package/lib-es/bridge/serialization.js.map +1 -0
  193. package/lib-es/bridge/signOperation.d.ts +16 -0
  194. package/lib-es/bridge/signOperation.d.ts.map +1 -0
  195. package/lib-es/bridge/signOperation.js +83 -0
  196. package/lib-es/bridge/signOperation.js.map +1 -0
  197. package/lib-es/bridge/signOperation.test.d.ts +2 -0
  198. package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
  199. package/lib-es/bridge/signOperation.test.js +255 -0
  200. package/lib-es/bridge/signOperation.test.js.map +1 -0
  201. package/lib-es/bridge/synchronization.d.ts +5 -0
  202. package/lib-es/bridge/synchronization.d.ts.map +1 -0
  203. package/lib-es/bridge/synchronization.integ.test.d.ts +2 -0
  204. package/lib-es/bridge/synchronization.integ.test.d.ts.map +1 -0
  205. package/lib-es/bridge/synchronization.integ.test.js +27 -0
  206. package/lib-es/bridge/synchronization.integ.test.js.map +1 -0
  207. package/lib-es/bridge/synchronization.js +70 -0
  208. package/lib-es/bridge/synchronization.js.map +1 -0
  209. package/lib-es/{transaction.d.ts → bridge/transaction.d.ts} +1 -1
  210. package/lib-es/bridge/transaction.d.ts.map +1 -0
  211. package/lib-es/{transaction.js → bridge/transaction.js} +3 -3
  212. package/lib-es/bridge/transaction.js.map +1 -0
  213. package/lib-es/config.d.ts +3 -4
  214. package/lib-es/config.d.ts.map +1 -1
  215. package/lib-es/config.js.map +1 -1
  216. package/lib-es/index.d.ts +1 -1
  217. package/lib-es/index.d.ts.map +1 -1
  218. package/lib-es/index.js +1 -1
  219. package/lib-es/index.js.map +1 -1
  220. package/lib-es/logic/craftTransaction.d.ts.map +1 -1
  221. package/lib-es/logic/craftTransaction.js +0 -7
  222. package/lib-es/logic/craftTransaction.js.map +1 -1
  223. package/lib-es/logic/craftTransaction.test.js +0 -1
  224. package/lib-es/logic/craftTransaction.test.js.map +1 -1
  225. package/lib-es/logic/estimateFees.d.ts.map +1 -1
  226. package/lib-es/logic/estimateFees.integ.test.js +2 -8
  227. package/lib-es/logic/estimateFees.integ.test.js.map +1 -1
  228. package/lib-es/logic/estimateFees.js +45 -119
  229. package/lib-es/logic/estimateFees.js.map +1 -1
  230. package/lib-es/logic/getBalance.js +1 -1
  231. package/lib-es/logic/getBalance.js.map +1 -1
  232. package/lib-es/logic/index.d.ts +0 -2
  233. package/lib-es/logic/index.d.ts.map +1 -1
  234. package/lib-es/logic/index.js +0 -2
  235. package/lib-es/logic/index.js.map +1 -1
  236. package/lib-es/logic/listOperations.d.ts.map +1 -1
  237. package/lib-es/logic/listOperations.js +10 -56
  238. package/lib-es/logic/listOperations.js.map +1 -1
  239. package/lib-es/logic/listOperations.test.js +10 -14
  240. package/lib-es/logic/listOperations.test.js.map +1 -1
  241. package/lib-es/types/bridge.d.ts +0 -3
  242. package/lib-es/types/bridge.d.ts.map +1 -1
  243. package/lib-es/types/bridge.fixture.d.ts.map +1 -1
  244. package/lib-es/types/bridge.fixture.js +0 -1
  245. package/lib-es/types/bridge.fixture.js.map +1 -1
  246. package/lib-es/types/bridge.js.map +1 -1
  247. package/package.json +14 -11
  248. package/src/api/index.test.ts +15 -87
  249. package/src/api/index.ts +55 -204
  250. package/src/api/types.ts +6 -11
  251. package/src/bridge/broadcast.test.ts +36 -0
  252. package/src/bridge/broadcast.ts +13 -0
  253. package/src/bridge/buildOptimisticOperation.ts +28 -0
  254. package/src/bridge/createTransaction.ts +19 -0
  255. package/src/bridge/estimateMaxSpendable.ts +37 -0
  256. package/src/bridge/getFeesForTransaction.ts +49 -0
  257. package/src/bridge/getTransactionStatus.test.ts +124 -0
  258. package/src/bridge/getTransactionStatus.ts +123 -0
  259. package/src/bridge/index.ts +74 -0
  260. package/src/bridge/logic.ts +171 -0
  261. package/src/bridge/preload.ts +18 -0
  262. package/src/bridge/prepareTransaction.integ.test.ts +35 -0
  263. package/src/bridge/prepareTransaction.test.ts +205 -0
  264. package/src/bridge/prepareTransaction.ts +69 -0
  265. package/src/bridge/serialization.ts +27 -0
  266. package/src/bridge/signOperation.test.ts +284 -0
  267. package/src/bridge/signOperation.ts +130 -0
  268. package/src/bridge/synchronization.integ.test.ts +33 -0
  269. package/src/bridge/synchronization.ts +100 -0
  270. package/src/{transaction.ts → bridge/transaction.ts} +4 -4
  271. package/src/config.ts +2 -9
  272. package/src/index.ts +2 -1
  273. package/src/logic/craftTransaction.test.ts +0 -1
  274. package/src/logic/craftTransaction.ts +0 -8
  275. package/src/logic/estimateFees.integ.test.ts +2 -8
  276. package/src/logic/estimateFees.ts +49 -140
  277. package/src/logic/getBalance.ts +1 -1
  278. package/src/logic/index.ts +0 -2
  279. package/src/logic/listOperations.test.ts +54 -64
  280. package/src/logic/listOperations.ts +9 -57
  281. package/src/types/bridge.fixture.ts +0 -1
  282. package/src/types/bridge.ts +1 -6
  283. package/lib/logic/getStakes.d.ts +0 -3
  284. package/lib/logic/getStakes.d.ts.map +0 -1
  285. package/lib/logic/getStakes.js +0 -26
  286. package/lib/logic/getStakes.js.map +0 -1
  287. package/lib/logic/getStakes.test.d.ts +0 -2
  288. package/lib/logic/getStakes.test.d.ts.map +0 -1
  289. package/lib/logic/getStakes.test.js +0 -133
  290. package/lib/logic/getStakes.test.js.map +0 -1
  291. package/lib/logic/validateIntent.d.ts +0 -3
  292. package/lib/logic/validateIntent.d.ts.map +0 -1
  293. package/lib/logic/validateIntent.js +0 -179
  294. package/lib/logic/validateIntent.js.map +0 -1
  295. package/lib/logic/validateIntent.test.d.ts +0 -2
  296. package/lib/logic/validateIntent.test.d.ts.map +0 -1
  297. package/lib/logic/validateIntent.test.js +0 -249
  298. package/lib/logic/validateIntent.test.js.map +0 -1
  299. package/lib/transaction.d.ts.map +0 -1
  300. package/lib/transaction.js.map +0 -1
  301. package/lib/utils.d.ts +0 -48
  302. package/lib/utils.d.ts.map +0 -1
  303. package/lib/utils.js +0 -112
  304. package/lib/utils.js.map +0 -1
  305. package/lib-es/logic/getStakes.d.ts +0 -3
  306. package/lib-es/logic/getStakes.d.ts.map +0 -1
  307. package/lib-es/logic/getStakes.js +0 -20
  308. package/lib-es/logic/getStakes.js.map +0 -1
  309. package/lib-es/logic/getStakes.test.d.ts +0 -2
  310. package/lib-es/logic/getStakes.test.d.ts.map +0 -1
  311. package/lib-es/logic/getStakes.test.js +0 -128
  312. package/lib-es/logic/getStakes.test.js.map +0 -1
  313. package/lib-es/logic/validateIntent.d.ts +0 -3
  314. package/lib-es/logic/validateIntent.d.ts.map +0 -1
  315. package/lib-es/logic/validateIntent.js +0 -173
  316. package/lib-es/logic/validateIntent.js.map +0 -1
  317. package/lib-es/logic/validateIntent.test.d.ts +0 -2
  318. package/lib-es/logic/validateIntent.test.d.ts.map +0 -1
  319. package/lib-es/logic/validateIntent.test.js +0 -221
  320. package/lib-es/logic/validateIntent.test.js.map +0 -1
  321. package/lib-es/transaction.d.ts.map +0 -1
  322. package/lib-es/transaction.js.map +0 -1
  323. package/lib-es/utils.d.ts +0 -48
  324. package/lib-es/utils.d.ts.map +0 -1
  325. package/lib-es/utils.js +0 -105
  326. package/lib-es/utils.js.map +0 -1
  327. package/src/logic/getStakes.test.ts +0 -145
  328. package/src/logic/getStakes.ts +0 -20
  329. package/src/logic/validateIntent.test.ts +0 -262
  330. package/src/logic/validateIntent.ts +0 -207
  331. package/src/utils.ts +0 -115
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateIntent.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAuInG,wBAAsB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuE9F"}
@@ -1,173 +0,0 @@
1
- import { InvalidAddress, RecipientRequired, RecommendUndelegation, NotEnoughBalance, NotEnoughBalanceToDelegate, AmountRequired, InvalidAddressBecauseDestinationIsAlsoSource, } from "@ledgerhq/errors";
2
- import { validateAddress, ValidationResult } from "@taquito/utils";
3
- import api from "../network/tzkt";
4
- import { estimateFees } from "./estimateFees";
5
- import { InvalidAddressBecauseAlreadyDelegated } from "../types/errors";
6
- import { mapIntentTypeToTezosMode } from "../utils";
7
- /**
8
- * Validates basic recipient and amount for send transactions
9
- */
10
- function validateBasicSendParams(intent) {
11
- const errors = {};
12
- if (intent.type !== "send") {
13
- return errors;
14
- }
15
- if (!intent.recipient) {
16
- errors.recipient = new RecipientRequired("");
17
- }
18
- else if (validateAddress(intent.recipient) !== ValidationResult.VALID) {
19
- errors.recipient = new InvalidAddress(undefined, { currencyName: "Tezos" });
20
- }
21
- else if (intent.sender === intent.recipient) {
22
- errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
23
- }
24
- if (intent.amount === 0n && !intent.useAllAmount) {
25
- errors.amount = new AmountRequired();
26
- }
27
- else if (intent.amount < 0n) {
28
- errors.amount = new NotEnoughBalance();
29
- }
30
- return errors;
31
- }
32
- /**
33
- * Validates specific transaction constraints based on account state
34
- */
35
- function validateTransactionConstraints(intent, senderInfo) {
36
- const errors = {};
37
- // send max not allowed on delegated accounts (must undelegate acc first)
38
- if (intent.type === "send" && intent.useAllAmount) {
39
- if (senderInfo.type === "user" && senderInfo.delegate?.address) {
40
- errors.amount = new RecommendUndelegation();
41
- }
42
- }
43
- // stake requires non-zero balance
44
- if (intent.type === "stake") {
45
- const balance = BigInt(senderInfo.balance || "0");
46
- if (balance === 0n) {
47
- errors.amount = new NotEnoughBalanceToDelegate();
48
- }
49
- }
50
- return errors;
51
- }
52
- /**
53
- * Maps Taquito-specific errors to our error types
54
- */
55
- function mapTaquitoErrors(taquitoError, intentType) {
56
- const errors = {};
57
- if (taquitoError.endsWith("balance_too_low") || taquitoError.endsWith("subtraction_underflow")) {
58
- if (intentType === "stake") {
59
- errors.amount = new NotEnoughBalanceToDelegate();
60
- }
61
- else {
62
- errors.amount = new NotEnoughBalance();
63
- }
64
- }
65
- else if (taquitoError.endsWith("delegate.unchanged") && intentType === "stake") {
66
- errors.recipient = new InvalidAddressBecauseAlreadyDelegated();
67
- }
68
- else if (taquitoError.includes("empty_implicit_contract")) {
69
- errors.amount = new NotEnoughBalanceToDelegate();
70
- }
71
- else {
72
- errors.amount = new Error(taquitoError);
73
- }
74
- return errors;
75
- }
76
- /**
77
- * Calculates final amounts based on transaction type
78
- */
79
- function calculateAmounts(intent, senderInfo, estimatedFees) {
80
- if (intent.type === "stake" || intent.type === "unstake") {
81
- const amount = BigInt(senderInfo.type === "user" ? senderInfo.balance : 0);
82
- return { amount, totalSpent: estimatedFees };
83
- }
84
- if (intent.type === "send" && intent.useAllAmount) {
85
- if (senderInfo.type === "user") {
86
- const balance = BigInt(senderInfo.balance);
87
- const amount = balance > estimatedFees ? balance - estimatedFees : 0n;
88
- return { amount, totalSpent: amount + estimatedFees };
89
- }
90
- return { amount: 0n, totalSpent: 0n };
91
- }
92
- const amount = intent.amount;
93
- return { amount, totalSpent: amount + estimatedFees };
94
- }
95
- /**
96
- * Validates balance coverage for the transaction
97
- */
98
- function validateBalanceCoverage(senderInfo, totalSpent) {
99
- const errors = {};
100
- if (senderInfo.type === "user") {
101
- const accountBalance = BigInt(senderInfo.balance);
102
- if (totalSpent > accountBalance) {
103
- errors.amount = new NotEnoughBalance();
104
- }
105
- }
106
- return errors;
107
- }
108
- export async function validateIntent(intent) {
109
- const errors = {};
110
- const warnings = {};
111
- let estimatedFees;
112
- let amount;
113
- let totalSpent;
114
- // Basic validation for send transactions
115
- const basicErrors = validateBasicSendParams(intent);
116
- Object.assign(errors, basicErrors);
117
- if (Object.keys(errors).length > 0) {
118
- return { errors, warnings, estimatedFees: 0n, amount: 0n, totalSpent: 0n };
119
- }
120
- try {
121
- // Get sender account information
122
- const senderInfo = await api.getAccountByAddress(intent.sender);
123
- if (senderInfo.type !== "user")
124
- throw new Error("unexpected account type");
125
- // Validate transaction-specific constraints
126
- const constraintErrors = validateTransactionConstraints(intent, senderInfo);
127
- Object.assign(errors, constraintErrors);
128
- if (Object.keys(errors).length > 0) {
129
- return { errors, warnings, estimatedFees: 0n, amount: 0n, totalSpent: 0n };
130
- }
131
- // Estimate fees
132
- if (senderInfo.revealed) {
133
- const estimation = await estimateFees({
134
- account: {
135
- address: intent.sender,
136
- revealed: senderInfo.revealed,
137
- balance: BigInt(senderInfo.balance),
138
- xpub: intent.senderPublicKey ?? senderInfo.publicKey,
139
- },
140
- transaction: {
141
- mode: mapIntentTypeToTezosMode(intent.type),
142
- recipient: intent.recipient,
143
- amount: intent.amount,
144
- useAllAmount: !!intent.useAllAmount,
145
- },
146
- });
147
- estimatedFees = estimation.estimatedFees;
148
- // Handle Taquito errors
149
- if (estimation.taquitoError) {
150
- const taquitoErrors = mapTaquitoErrors(estimation.taquitoError, intent.type);
151
- Object.assign(errors, taquitoErrors);
152
- }
153
- }
154
- else {
155
- estimatedFees = 2000n;
156
- }
157
- // Calculate final amounts
158
- const amounts = calculateAmounts(intent, senderInfo, estimatedFees);
159
- amount = amounts.amount;
160
- totalSpent = amounts.totalSpent;
161
- // Final balance validation
162
- const balanceErrors = validateBalanceCoverage(senderInfo, totalSpent);
163
- Object.assign(errors, balanceErrors);
164
- }
165
- catch (e) {
166
- errors.estimation = e;
167
- estimatedFees = 0n;
168
- amount = intent.amount;
169
- totalSpent = intent.amount;
170
- }
171
- return { errors, warnings, estimatedFees, amount, totalSpent };
172
- }
173
- //# sourceMappingURL=validateIntent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateIntent.js","sourceRoot":"","sources":["../../src/logic/validateIntent.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=validateIntent.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateIntent.test.d.ts","sourceRoot":"","sources":["../../src/logic/validateIntent.test.ts"],"names":[],"mappings":""}
@@ -1,221 +0,0 @@
1
- import { validateIntent } from "./validateIntent";
2
- import * as estimateFeesModule from "./estimateFees";
3
- import tzktApi from "../network/tzkt";
4
- import coinConfig from "../config";
5
- import { RecipientRequired, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, AmountRequired, NotEnoughBalance, } from "@ledgerhq/errors";
6
- describe("validateIntent", () => {
7
- const senderAddress = "tz1TzrmTBSuiVHV2VfMnGRMYvTEPCP42oSM8";
8
- const validRecipient = "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx";
9
- const mockEstimateFees = jest.spyOn(estimateFeesModule, "estimateFees");
10
- const mockGetAccountByAddress = jest.spyOn(tzktApi, "getAccountByAddress");
11
- beforeEach(() => {
12
- jest.clearAllMocks();
13
- coinConfig.setCoinConfig(() => ({
14
- status: { type: "active" },
15
- baker: { url: "http://baker.example.com" },
16
- explorer: { url: "http://tezos.explorer.com", maxTxQuery: 100 },
17
- node: { url: "http://tezos.node.com" },
18
- fees: {
19
- minGasLimit: 600,
20
- minRevealGasLimit: 300,
21
- minStorageLimit: 0,
22
- minFees: 500,
23
- minEstimatedFees: 500,
24
- },
25
- }));
26
- mockEstimateFees.mockResolvedValue({
27
- fees: BigInt(1000),
28
- gasLimit: BigInt(10000),
29
- storageLimit: BigInt(0),
30
- estimatedFees: BigInt(1000),
31
- });
32
- mockGetAccountByAddress.mockResolvedValue({
33
- type: "user",
34
- address: senderAddress,
35
- publicKey: "edpk...",
36
- balance: 5000000,
37
- revealed: true,
38
- counter: 0,
39
- delegationLevel: 0,
40
- delegationTime: "2021-01-01T00:00:00Z",
41
- numTransactions: 0,
42
- firstActivityTime: "2021-01-01T00:00:00Z",
43
- });
44
- });
45
- describe("recipient validation", () => {
46
- it("should return RecipientRequired error when recipient is missing", async () => {
47
- const result = await validateIntent({
48
- asset: { type: "native" },
49
- type: "send",
50
- sender: senderAddress,
51
- recipient: "",
52
- amount: BigInt(1000),
53
- });
54
- expect(result.errors.recipient).toBeInstanceOf(RecipientRequired);
55
- });
56
- it("should return InvalidAddress error for invalid recipient", async () => {
57
- const result = await validateIntent({
58
- asset: { type: "native" },
59
- type: "send",
60
- sender: senderAddress,
61
- recipient: "invalid_address",
62
- amount: BigInt(1000),
63
- });
64
- expect(result.errors.recipient).toBeInstanceOf(InvalidAddress);
65
- });
66
- it("should return InvalidAddressBecauseDestinationIsAlsoSource when sender equals recipient", async () => {
67
- const result = await validateIntent({
68
- asset: { type: "native" },
69
- type: "send",
70
- sender: senderAddress,
71
- recipient: senderAddress,
72
- amount: BigInt(1000),
73
- });
74
- expect(result.errors.recipient).toBeInstanceOf(InvalidAddressBecauseDestinationIsAlsoSource);
75
- });
76
- });
77
- describe("amount validation", () => {
78
- it("should return AmountRequired error when amount is zero and not useAllAmount", async () => {
79
- const result = await validateIntent({
80
- asset: { type: "native" },
81
- type: "send",
82
- sender: senderAddress,
83
- recipient: validRecipient,
84
- amount: BigInt(0),
85
- useAllAmount: false,
86
- });
87
- expect(result.errors.amount).toBeInstanceOf(AmountRequired);
88
- });
89
- it("should not return AmountRequired error when useAllAmount is true", async () => {
90
- const result = await validateIntent({
91
- asset: { type: "native" },
92
- type: "send",
93
- sender: senderAddress,
94
- recipient: validRecipient,
95
- amount: BigInt(0),
96
- useAllAmount: true,
97
- });
98
- expect(result.errors.amount).toBeUndefined();
99
- });
100
- });
101
- describe("balance validation", () => {
102
- it("should return NotEnoughBalance error when amount exceeds balance", async () => {
103
- const balance = 1000000; // 1 XTZ
104
- const amount = 2000000; // 2 XTZ
105
- mockGetAccountByAddress.mockResolvedValue({
106
- type: "user",
107
- address: senderAddress,
108
- publicKey: "edpk...",
109
- balance,
110
- revealed: true,
111
- counter: 0,
112
- delegationLevel: 0,
113
- delegationTime: "2021-01-01T00:00:00Z",
114
- numTransactions: 0,
115
- firstActivityTime: "2021-01-01T00:00:00Z",
116
- });
117
- const result = await validateIntent({
118
- asset: { type: "native" },
119
- type: "send",
120
- sender: senderAddress,
121
- recipient: validRecipient,
122
- amount: BigInt(amount),
123
- });
124
- expect(result.errors.amount).toBeInstanceOf(NotEnoughBalance);
125
- });
126
- it("should pass validation when amount is within balance", async () => {
127
- const balance = 5000000; // 5 XTZ
128
- const amount = 1000000; // 1 XTZ
129
- mockGetAccountByAddress.mockResolvedValue({
130
- type: "user",
131
- address: senderAddress,
132
- publicKey: "edpk...",
133
- balance,
134
- revealed: true,
135
- counter: 0,
136
- delegationLevel: 0,
137
- delegationTime: "2021-01-01T00:00:00Z",
138
- numTransactions: 0,
139
- firstActivityTime: "2021-01-01T00:00:00Z",
140
- });
141
- const result = await validateIntent({
142
- asset: { type: "native" },
143
- type: "send",
144
- sender: senderAddress,
145
- recipient: validRecipient,
146
- amount: BigInt(amount),
147
- });
148
- expect(result.errors.amount).toBeUndefined();
149
- expect(result.amount).toBe(BigInt(amount));
150
- });
151
- });
152
- describe("transaction types", () => {
153
- it("should pass validation for delegate transaction", async () => {
154
- const result = await validateIntent({
155
- asset: { type: "native" },
156
- type: "delegate",
157
- sender: senderAddress,
158
- recipient: validRecipient,
159
- amount: BigInt(0),
160
- });
161
- expect(result.errors).toEqual({});
162
- });
163
- it("should pass validation for undelegate transaction", async () => {
164
- const result = await validateIntent({
165
- asset: { type: "native" },
166
- type: "undelegate",
167
- sender: senderAddress,
168
- recipient: "",
169
- amount: BigInt(0),
170
- });
171
- expect(result.errors).toEqual({});
172
- });
173
- it("should handle stake intent (mapped to delegate)", async () => {
174
- const result = await validateIntent({
175
- asset: { type: "native" },
176
- type: "stake",
177
- sender: senderAddress,
178
- recipient: validRecipient,
179
- amount: BigInt(0),
180
- });
181
- expect(result.errors).toEqual({});
182
- });
183
- it("should handle unstake intent (mapped to undelegate)", async () => {
184
- const result = await validateIntent({
185
- asset: { type: "native" },
186
- type: "unstake",
187
- sender: senderAddress,
188
- recipient: "",
189
- amount: BigInt(0),
190
- });
191
- expect(result.errors).toEqual({});
192
- });
193
- });
194
- describe("successful validation", () => {
195
- it("should return valid result with correct values", async () => {
196
- const amount = BigInt(1000000);
197
- const estimatedFees = BigInt(1500);
198
- mockEstimateFees.mockResolvedValue({
199
- fees: BigInt(1000),
200
- gasLimit: BigInt(10000),
201
- storageLimit: BigInt(0),
202
- estimatedFees,
203
- });
204
- const result = await validateIntent({
205
- asset: { type: "native" },
206
- type: "send",
207
- sender: senderAddress,
208
- recipient: validRecipient,
209
- amount,
210
- });
211
- expect(result).toMatchObject({
212
- errors: {},
213
- warnings: {},
214
- estimatedFees,
215
- amount,
216
- totalSpent: amount + estimatedFees,
217
- });
218
- });
219
- });
220
- });
221
- //# sourceMappingURL=validateIntent.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateIntent.test.js","sourceRoot":"","sources":["../../src/logic/validateIntent.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,eAAO,MAAM,iBAAiB,0GAWzB,WAAW,eACD,OAAO,KACnB,MAoBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,WAiBvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAO,WAAW,KAAG,cAiBjD,CAAC;;+HA5DG,WAAW,eACD,OAAO,KACnB,MAAM;6BAsB8B,cAAc,KAAG,WAAW;0BAmB/B,WAAW,KAAG,cAAc;;;;;AAmBhE,wBAOE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
package/lib-es/utils.d.ts DELETED
@@ -1,48 +0,0 @@
1
- /**
2
- * Dust margin in mutez to prevent transaction failures on send max operations
3
- * This ensures a small safety buffer remains in the account after send max
4
- * Based on production behavior where ~281-287 mutez typically remain
5
- * Increased to 500 to handle edge cases and fee estimation variations
6
- */
7
- export declare const DUST_MARGIN_MUTEZ = 500;
8
- /**
9
- * Suggested fee returned by Taquito for a minimal amount pre-estimation (mutez)
10
- * Used as a stable fallback for send-max when RPC estimation is unavailable.
11
- */
12
- export declare const MIN_SUGGESTED_FEE_SMALL_TRANSFER = 489;
13
- /**
14
- * Typical operation size (bytes) for a simple XTZ transfer used to approximate
15
- * the increased fee component when computing send-max in fallback mode.
16
- * Chosen to match Taquito’s behavior closely in integration tests.
17
- */
18
- export declare const OP_SIZE_XTZ_TRANSFER = 154;
19
- /**
20
- * Helper function to map generic staking intents to Tezos operation modes
21
- */
22
- export declare function mapIntentTypeToTezosMode(intentType: string): "send" | "delegate" | "undelegate";
23
- /**
24
- * Creates a mock signer for Taquito operations (estimation and crafting)
25
- */
26
- export declare function createMockSigner(publicKeyHash: string, publicKey: string): {
27
- publicKeyHash: () => Promise<string>;
28
- publicKey: () => Promise<string>;
29
- sign: () => Promise<never>;
30
- secretKey: () => Promise<never>;
31
- };
32
- /**
33
- * Normalize a Tezos public key to base58 format (edpk/sppk/p2pk) based on the
34
- * sender address prefix (tz1/tz2/tz3). Accepts either an already base58-encoded
35
- * key or a hex key returned by the Ledger app. Returns undefined if input is
36
- * empty or cannot be parsed.
37
- */
38
- export declare function normalizePublicKeyForAddress(maybeKey: string | undefined, address: string): string | undefined;
39
- /**
40
- * Creates default fallback estimation values
41
- */
42
- export declare function createFallbackEstimation(): {
43
- fees: bigint;
44
- gasLimit: bigint;
45
- storageLimit: bigint;
46
- estimatedFees: bigint;
47
- };
48
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,CAW/F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;EAOxE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CA6BpB;AAED;;GAEG;AACH,wBAAgB,wBAAwB;;;;;EAOvC"}
package/lib-es/utils.js DELETED
@@ -1,105 +0,0 @@
1
- import { validatePublicKey, ValidationResult, b58Encode, PrefixV2 } from "@taquito/utils";
2
- import { DerivationType } from "@taquito/ledger-signer";
3
- import { compressPublicKey } from "@taquito/ledger-signer/dist/lib/utils";
4
- /**
5
- * Default limits and fees for Tezos operations
6
- */
7
- // Safe fallback values aligned with Taquito estimation defaults for a simple transfer
8
- // These are used when network estimation is unavailable (e.g., signer not configured)
9
- const DEFAULT_LIMITS = {
10
- GAS: 2169n,
11
- STORAGE: 277n,
12
- BASE_FEE: 491n,
13
- };
14
- /**
15
- * Dust margin in mutez to prevent transaction failures on send max operations
16
- * This ensures a small safety buffer remains in the account after send max
17
- * Based on production behavior where ~281-287 mutez typically remain
18
- * Increased to 500 to handle edge cases and fee estimation variations
19
- */
20
- export const DUST_MARGIN_MUTEZ = 500;
21
- /**
22
- * Suggested fee returned by Taquito for a minimal amount pre-estimation (mutez)
23
- * Used as a stable fallback for send-max when RPC estimation is unavailable.
24
- */
25
- export const MIN_SUGGESTED_FEE_SMALL_TRANSFER = 489;
26
- /**
27
- * Typical operation size (bytes) for a simple XTZ transfer used to approximate
28
- * the increased fee component when computing send-max in fallback mode.
29
- * Chosen to match Taquito’s behavior closely in integration tests.
30
- */
31
- export const OP_SIZE_XTZ_TRANSFER = 154;
32
- /**
33
- * Helper function to map generic staking intents to Tezos operation modes
34
- */
35
- export function mapIntentTypeToTezosMode(intentType) {
36
- switch (intentType) {
37
- case "stake":
38
- case "delegate":
39
- return "delegate";
40
- case "unstake":
41
- case "undelegate":
42
- return "undelegate";
43
- default:
44
- return "send";
45
- }
46
- }
47
- /**
48
- * Creates a mock signer for Taquito operations (estimation and crafting)
49
- */
50
- export function createMockSigner(publicKeyHash, publicKey) {
51
- return {
52
- publicKeyHash: async () => publicKeyHash,
53
- publicKey: async () => publicKey,
54
- sign: () => Promise.reject(new Error("unsupported")),
55
- secretKey: () => Promise.reject(new Error("unsupported")),
56
- };
57
- }
58
- /**
59
- * Normalize a Tezos public key to base58 format (edpk/sppk/p2pk) based on the
60
- * sender address prefix (tz1/tz2/tz3). Accepts either an already base58-encoded
61
- * key or a hex key returned by the Ledger app. Returns undefined if input is
62
- * empty or cannot be parsed.
63
- */
64
- export function normalizePublicKeyForAddress(maybeKey, address) {
65
- if (!maybeKey)
66
- return undefined;
67
- // If it's already a valid base58 public key, keep it
68
- if (validatePublicKey(maybeKey) === ValidationResult.VALID)
69
- return maybeKey;
70
- // Attempt to convert hex → base58 according to address curve
71
- try {
72
- const pkHex = maybeKey.trim().toLowerCase();
73
- if (pkHex === "")
74
- return undefined;
75
- const keyBuf = Buffer.from(pkHex, "hex");
76
- // Choose curve/prefix from address tz1/tz2/tz3
77
- // default are values for tz1 and fallbacks to it
78
- let derivationType = DerivationType.ED25519;
79
- let prefix = PrefixV2.Ed25519PublicKey;
80
- if (address.startsWith("tz2")) {
81
- derivationType = DerivationType.SECP256K1;
82
- prefix = PrefixV2.Secp256k1PublicKey;
83
- }
84
- else if (address.startsWith("tz3")) {
85
- derivationType = DerivationType.P256;
86
- prefix = PrefixV2.P256PublicKey;
87
- }
88
- return b58Encode(compressPublicKey(keyBuf, derivationType), prefix);
89
- }
90
- catch {
91
- return undefined;
92
- }
93
- }
94
- /**
95
- * Creates default fallback estimation values
96
- */
97
- export function createFallbackEstimation() {
98
- return {
99
- fees: DEFAULT_LIMITS.BASE_FEE,
100
- gasLimit: DEFAULT_LIMITS.GAS,
101
- storageLimit: DEFAULT_LIMITS.STORAGE,
102
- estimatedFees: DEFAULT_LIMITS.BASE_FEE,
103
- };
104
- }
105
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}