@ledgerhq/coin-tezos 6.7.0-nightly.8 → 6.7.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 (105) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +30 -62
  3. package/lib/api/index.integ.test.d.ts +2 -0
  4. package/lib/api/index.integ.test.d.ts.map +1 -0
  5. package/lib/api/index.integ.test.js +201 -0
  6. package/lib/api/index.integ.test.js.map +1 -0
  7. package/lib/api/index.test.d.ts +2 -0
  8. package/lib/api/index.test.d.ts.map +1 -0
  9. package/lib/api/index.test.js +203 -0
  10. package/lib/api/index.test.js.map +1 -0
  11. package/lib/logic/craftTransaction.integ.test.d.ts +2 -0
  12. package/lib/logic/craftTransaction.integ.test.d.ts.map +1 -0
  13. package/lib/logic/craftTransaction.integ.test.js +86 -0
  14. package/lib/logic/craftTransaction.integ.test.js.map +1 -0
  15. package/lib/logic/craftTransaction.test.d.ts +2 -0
  16. package/lib/logic/craftTransaction.test.d.ts.map +1 -0
  17. package/lib/logic/craftTransaction.test.js +153 -0
  18. package/lib/logic/craftTransaction.test.js.map +1 -0
  19. package/lib/logic/estimateFees.integ.test.d.ts +2 -0
  20. package/lib/logic/estimateFees.integ.test.d.ts.map +1 -0
  21. package/lib/logic/estimateFees.integ.test.js +71 -0
  22. package/lib/logic/estimateFees.integ.test.js.map +1 -0
  23. package/lib/logic/getBalance.test.d.ts +2 -0
  24. package/lib/logic/getBalance.test.d.ts.map +1 -0
  25. package/lib/logic/getBalance.test.js +23 -0
  26. package/lib/logic/getBalance.test.js.map +1 -0
  27. package/lib/logic/getStakes.test.d.ts +2 -0
  28. package/lib/logic/getStakes.test.d.ts.map +1 -0
  29. package/lib/logic/getStakes.test.js +133 -0
  30. package/lib/logic/getStakes.test.js.map +1 -0
  31. package/lib/logic/listOperations.js +1 -1
  32. package/lib/logic/listOperations.js.map +1 -1
  33. package/lib/logic/listOperations.test.d.ts +2 -0
  34. package/lib/logic/listOperations.test.d.ts.map +1 -0
  35. package/lib/logic/listOperations.test.js +196 -0
  36. package/lib/logic/listOperations.test.js.map +1 -0
  37. package/lib/logic/validateIntent.d.ts.map +1 -1
  38. package/lib/logic/validateIntent.js +6 -5
  39. package/lib/logic/validateIntent.js.map +1 -1
  40. package/lib/logic/validateIntent.test.d.ts +2 -0
  41. package/lib/logic/validateIntent.test.d.ts.map +1 -0
  42. package/lib/logic/validateIntent.test.js +279 -0
  43. package/lib/logic/validateIntent.test.js.map +1 -0
  44. package/lib/network/bakers.integration.test.d.ts +2 -0
  45. package/lib/network/bakers.integration.test.d.ts.map +1 -0
  46. package/lib/network/bakers.integration.test.js +57 -0
  47. package/lib/network/bakers.integration.test.js.map +1 -0
  48. package/lib/network/bakers.test.d.ts +2 -0
  49. package/lib/network/bakers.test.d.ts.map +1 -0
  50. package/lib/network/bakers.test.js +209 -0
  51. package/lib/network/bakers.test.js.map +1 -0
  52. package/lib-es/api/index.integ.test.d.ts +2 -0
  53. package/lib-es/api/index.integ.test.d.ts.map +1 -0
  54. package/lib-es/api/index.integ.test.js +199 -0
  55. package/lib-es/api/index.integ.test.js.map +1 -0
  56. package/lib-es/api/index.test.d.ts +2 -0
  57. package/lib-es/api/index.test.d.ts.map +1 -0
  58. package/lib-es/api/index.test.js +198 -0
  59. package/lib-es/api/index.test.js.map +1 -0
  60. package/lib-es/logic/craftTransaction.integ.test.d.ts +2 -0
  61. package/lib-es/logic/craftTransaction.integ.test.d.ts.map +1 -0
  62. package/lib-es/logic/craftTransaction.integ.test.js +81 -0
  63. package/lib-es/logic/craftTransaction.integ.test.js.map +1 -0
  64. package/lib-es/logic/craftTransaction.test.d.ts +2 -0
  65. package/lib-es/logic/craftTransaction.test.d.ts.map +1 -0
  66. package/lib-es/logic/craftTransaction.test.js +148 -0
  67. package/lib-es/logic/craftTransaction.test.js.map +1 -0
  68. package/lib-es/logic/estimateFees.integ.test.d.ts +2 -0
  69. package/lib-es/logic/estimateFees.integ.test.d.ts.map +1 -0
  70. package/lib-es/logic/estimateFees.integ.test.js +66 -0
  71. package/lib-es/logic/estimateFees.integ.test.js.map +1 -0
  72. package/lib-es/logic/getBalance.test.d.ts +2 -0
  73. package/lib-es/logic/getBalance.test.d.ts.map +1 -0
  74. package/lib-es/logic/getBalance.test.js +18 -0
  75. package/lib-es/logic/getBalance.test.js.map +1 -0
  76. package/lib-es/logic/getStakes.test.d.ts +2 -0
  77. package/lib-es/logic/getStakes.test.d.ts.map +1 -0
  78. package/lib-es/logic/getStakes.test.js +128 -0
  79. package/lib-es/logic/getStakes.test.js.map +1 -0
  80. package/lib-es/logic/listOperations.js +1 -1
  81. package/lib-es/logic/listOperations.js.map +1 -1
  82. package/lib-es/logic/listOperations.test.d.ts +2 -0
  83. package/lib-es/logic/listOperations.test.d.ts.map +1 -0
  84. package/lib-es/logic/listOperations.test.js +194 -0
  85. package/lib-es/logic/listOperations.test.js.map +1 -0
  86. package/lib-es/logic/validateIntent.d.ts.map +1 -1
  87. package/lib-es/logic/validateIntent.js +6 -5
  88. package/lib-es/logic/validateIntent.js.map +1 -1
  89. package/lib-es/logic/validateIntent.test.d.ts +2 -0
  90. package/lib-es/logic/validateIntent.test.d.ts.map +1 -0
  91. package/lib-es/logic/validateIntent.test.js +251 -0
  92. package/lib-es/logic/validateIntent.test.js.map +1 -0
  93. package/lib-es/network/bakers.integration.test.d.ts +2 -0
  94. package/lib-es/network/bakers.integration.test.d.ts.map +1 -0
  95. package/lib-es/network/bakers.integration.test.js +52 -0
  96. package/lib-es/network/bakers.integration.test.js.map +1 -0
  97. package/lib-es/network/bakers.test.d.ts +2 -0
  98. package/lib-es/network/bakers.test.d.ts.map +1 -0
  99. package/lib-es/network/bakers.test.js +204 -0
  100. package/lib-es/network/bakers.test.js.map +1 -0
  101. package/package.json +8 -8
  102. package/src/logic/listOperations.test.ts +5 -5
  103. package/src/logic/listOperations.ts +2 -1
  104. package/src/logic/validateIntent.test.ts +23 -0
  105. package/src/logic/validateIntent.ts +6 -4
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-tezos@6.7.0-nightly.7 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
2
+ > @ledgerhq/coin-tezos@6.7.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,93 +1,61 @@
1
1
  # @ledgerhq/coin-tezos
2
2
 
3
- ## 6.7.0-nightly.8
3
+ ## 6.7.0
4
4
 
5
- ### Patch Changes
6
-
7
- - Updated dependencies [[`c96d73f`](https://github.com/LedgerHQ/ledger-live/commit/c96d73fed0a75a9c208f78d51c34b742703a7dda)]:
8
- - @ledgerhq/coin-framework@6.7.0-nightly.8
9
-
10
- ## 6.7.0-nightly.7
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies [[`b4ceaff`](https://github.com/LedgerHQ/ledger-live/commit/b4ceaff2ecf68d8a14e09801c76ab0b014c45286), [`f392f69`](https://github.com/LedgerHQ/ledger-live/commit/f392f6912f445cc2f7cf4dfcfd030fa3da76f736)]:
15
- - @ledgerhq/cryptoassets@13.31.0-nightly.7
16
- - @ledgerhq/types-live@6.87.0-nightly.5
17
- - @ledgerhq/coin-framework@6.7.0-nightly.7
18
- - @ledgerhq/live-network@2.0.20-nightly.3
19
-
20
- ## 6.7.0-nightly.6
21
-
22
- ### Patch Changes
23
-
24
- - Updated dependencies [[`51995e9`](https://github.com/LedgerHQ/ledger-live/commit/51995e96a9e1fafe14c7cbe45ce0b1ec8ebd106b)]:
25
- - @ledgerhq/types-live@6.87.0-nightly.4
26
- - @ledgerhq/coin-framework@6.7.0-nightly.6
27
- - @ledgerhq/cryptoassets@13.31.0-nightly.6
28
-
29
- ## 6.7.0-nightly.5
30
-
31
- ### Patch Changes
5
+ ### Minor Changes
32
6
 
33
- - Updated dependencies []:
34
- - @ledgerhq/coin-framework@6.7.0-nightly.5
35
- - @ledgerhq/cryptoassets@13.31.0-nightly.5
36
- - @ledgerhq/live-network@2.0.20-nightly.2
7
+ - [#12291](https://github.com/LedgerHQ/ledger-live/pull/12291) [`5098fd4`](https://github.com/LedgerHQ/ledger-live/commit/5098fd44f8c8aa883cabefe691c090f83ca936d5) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - fix(coin-tezos): use 0 amount within delegate and undelegate operations
37
8
 
38
- ## 6.7.0-nightly.4
9
+ - [#12091](https://github.com/LedgerHQ/ledger-live/pull/12091) [`04fc7da`](https://github.com/LedgerHQ/ledger-live/commit/04fc7daed03fde65ac8c1ec4c0e28d784e16337a) Thanks [@dilaouid](https://github.com/dilaouid)! - fix: shows "delegate/undelegate" instead of "sent" in the drawer
39
10
 
40
- ### Patch Changes
11
+ - [#12015](https://github.com/LedgerHQ/ledger-live/pull/12015) [`03af552`](https://github.com/LedgerHQ/ledger-live/commit/03af552b621e19e31747a65b1870dfe8d3bb005b) Thanks [@Justkant](https://github.com/Justkant)! - feat: new signRawTransaction to support any XRP transaction with wallet-api
41
12
 
42
- - Updated dependencies [[`7744980`](https://github.com/LedgerHQ/ledger-live/commit/774498090411f1a6d6c06395dda1fc7cd24adf24), [`759064d`](https://github.com/LedgerHQ/ledger-live/commit/759064d4815c636af2d73ba548a85b4f53e7b491)]:
43
- - @ledgerhq/types-live@6.87.0-nightly.3
44
- - @ledgerhq/errors@6.27.0-nightly.0
45
- - @ledgerhq/coin-framework@6.7.0-nightly.4
46
- - @ledgerhq/cryptoassets@13.31.0-nightly.4
47
- - @ledgerhq/devices@8.6.2-nightly.0
48
- - @ledgerhq/live-network@2.0.20-nightly.1
13
+ - [#12062](https://github.com/LedgerHQ/ledger-live/pull/12062) [`d2b12e7`](https://github.com/LedgerHQ/ledger-live/commit/d2b12e70bba9e772d078d1fe4d9c537b8d316a87) Thanks [@qperrot](https://github.com/qperrot)! - feat: estimateFees and craftTransaction for evm staking and new Intent type
49
14
 
50
- ## 6.7.0-nightly.3
15
+ - [#12139](https://github.com/LedgerHQ/ledger-live/pull/12139) [`246b070`](https://github.com/LedgerHQ/ledger-live/commit/246b0701c1f375f3cdd847c5d2a8fe3c2060ef28) Thanks [@dilaouid](https://github.com/dilaouid)! - feat: staking generic bridge support (tezos)
51
16
 
52
17
  ### Patch Changes
53
18
 
54
- - Updated dependencies [[`8645f01`](https://github.com/LedgerHQ/ledger-live/commit/8645f016191d29a55f6b0ca6e4b1d1909fd35445)]:
55
- - @ledgerhq/types-live@6.87.0-nightly.2
56
- - @ledgerhq/coin-framework@6.7.0-nightly.3
57
- - @ledgerhq/cryptoassets@13.31.0-nightly.3
19
+ - Updated dependencies [[`ea16f59`](https://github.com/LedgerHQ/ledger-live/commit/ea16f592e85019a1b77287a7f2b975c6fcffc74c), [`b88faa1`](https://github.com/LedgerHQ/ledger-live/commit/b88faa18e2f5cd309b54fc3157a44db606846cc5), [`cfe65ca`](https://github.com/LedgerHQ/ledger-live/commit/cfe65cafa268be4e53197ee163ce78f28ed72592), [`a9aacdb`](https://github.com/LedgerHQ/ledger-live/commit/a9aacdb330700f0a294833f7d77de17f179229b2), [`3979c07`](https://github.com/LedgerHQ/ledger-live/commit/3979c0715e4f54165c89d00ebe1441e064e1a110), [`c6a676f`](https://github.com/LedgerHQ/ledger-live/commit/c6a676ff80581ac19b896adf44d54812983b72da), [`b5fc1bd`](https://github.com/LedgerHQ/ledger-live/commit/b5fc1bd28fff091241905fec5ff8dc8af4c99b79), [`03af552`](https://github.com/LedgerHQ/ledger-live/commit/03af552b621e19e31747a65b1870dfe8d3bb005b), [`89ac0ed`](https://github.com/LedgerHQ/ledger-live/commit/89ac0eddc145dcf5c7cf240aa8be4301372c8f33), [`565da80`](https://github.com/LedgerHQ/ledger-live/commit/565da807b1ebbfc830fd0e47b3d8856f88d410a6), [`8645f01`](https://github.com/LedgerHQ/ledger-live/commit/8645f016191d29a55f6b0ca6e4b1d1909fd35445), [`1d9860c`](https://github.com/LedgerHQ/ledger-live/commit/1d9860cd1688131d391579955b40c6710b667db8), [`d2b12e7`](https://github.com/LedgerHQ/ledger-live/commit/d2b12e70bba9e772d078d1fe4d9c537b8d316a87), [`db25e21`](https://github.com/LedgerHQ/ledger-live/commit/db25e212b87dea426b153c6f1d988cead63c8c46), [`c8dbf40`](https://github.com/LedgerHQ/ledger-live/commit/c8dbf402268359e225a94782420111e786f875fa), [`cab7d97`](https://github.com/LedgerHQ/ledger-live/commit/cab7d9794e7babb8220c6d339fb08e618e3d4202)]:
20
+ - @ledgerhq/cryptoassets@13.31.0
21
+ - @ledgerhq/types-live@6.87.0
22
+ - @ledgerhq/coin-framework@6.7.0
23
+ - @ledgerhq/live-network@2.0.20
58
24
 
59
- ## 6.7.0-nightly.2
25
+ ## 6.7.0-next.2
60
26
 
61
- ### Patch Changes
27
+ ### Minor Changes
62
28
 
63
- - Updated dependencies [[`c6a676f`](https://github.com/LedgerHQ/ledger-live/commit/c6a676ff80581ac19b896adf44d54812983b72da), [`565da80`](https://github.com/LedgerHQ/ledger-live/commit/565da807b1ebbfc830fd0e47b3d8856f88d410a6)]:
64
- - @ledgerhq/coin-framework@6.7.0-nightly.2
65
- - @ledgerhq/cryptoassets@13.31.0-nightly.2
29
+ - [#12291](https://github.com/LedgerHQ/ledger-live/pull/12291) [`5098fd4`](https://github.com/LedgerHQ/ledger-live/commit/5098fd44f8c8aa883cabefe691c090f83ca936d5) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - fix(coin-tezos): use 0 amount within delegate and undelegate operations
66
30
 
67
- ## 6.7.0-nightly.1
31
+ ## 6.7.0-next.1
68
32
 
69
33
  ### Patch Changes
70
34
 
71
- - Updated dependencies [[`ea16f59`](https://github.com/LedgerHQ/ledger-live/commit/ea16f592e85019a1b77287a7f2b975c6fcffc74c), [`a9aacdb`](https://github.com/LedgerHQ/ledger-live/commit/a9aacdb330700f0a294833f7d77de17f179229b2), [`89ac0ed`](https://github.com/LedgerHQ/ledger-live/commit/89ac0eddc145dcf5c7cf240aa8be4301372c8f33), [`db25e21`](https://github.com/LedgerHQ/ledger-live/commit/db25e212b87dea426b153c6f1d988cead63c8c46)]:
72
- - @ledgerhq/cryptoassets@13.31.0-nightly.1
73
- - @ledgerhq/types-live@6.87.0-nightly.1
74
- - @ledgerhq/coin-framework@6.7.0-nightly.1
75
- - @ledgerhq/live-network@2.0.20-nightly.0
35
+ - Updated dependencies [[`b88faa1`](https://github.com/LedgerHQ/ledger-live/commit/b88faa18e2f5cd309b54fc3157a44db606846cc5)]:
36
+ - @ledgerhq/types-live@6.87.0-next.1
37
+ - @ledgerhq/coin-framework@6.7.0-next.1
38
+ - @ledgerhq/cryptoassets@13.31.0-next.1
76
39
 
77
- ## 6.7.0-nightly.0
40
+ ## 6.7.0-next.0
78
41
 
79
42
  ### Minor Changes
80
43
 
44
+ - [#12091](https://github.com/LedgerHQ/ledger-live/pull/12091) [`04fc7da`](https://github.com/LedgerHQ/ledger-live/commit/04fc7daed03fde65ac8c1ec4c0e28d784e16337a) Thanks [@dilaouid](https://github.com/dilaouid)! - fix: shows "delegate/undelegate" instead of "sent" in the drawer
45
+
81
46
  - [#12015](https://github.com/LedgerHQ/ledger-live/pull/12015) [`03af552`](https://github.com/LedgerHQ/ledger-live/commit/03af552b621e19e31747a65b1870dfe8d3bb005b) Thanks [@Justkant](https://github.com/Justkant)! - feat: new signRawTransaction to support any XRP transaction with wallet-api
82
47
 
83
48
  - [#12062](https://github.com/LedgerHQ/ledger-live/pull/12062) [`d2b12e7`](https://github.com/LedgerHQ/ledger-live/commit/d2b12e70bba9e772d078d1fe4d9c537b8d316a87) Thanks [@qperrot](https://github.com/qperrot)! - feat: estimateFees and craftTransaction for evm staking and new Intent type
84
49
 
50
+ - [#12139](https://github.com/LedgerHQ/ledger-live/pull/12139) [`246b070`](https://github.com/LedgerHQ/ledger-live/commit/246b0701c1f375f3cdd847c5d2a8fe3c2060ef28) Thanks [@dilaouid](https://github.com/dilaouid)! - feat: staking generic bridge support (tezos)
51
+
85
52
  ### Patch Changes
86
53
 
87
- - Updated dependencies [[`cfe65ca`](https://github.com/LedgerHQ/ledger-live/commit/cfe65cafa268be4e53197ee163ce78f28ed72592), [`b5fc1bd`](https://github.com/LedgerHQ/ledger-live/commit/b5fc1bd28fff091241905fec5ff8dc8af4c99b79), [`03af552`](https://github.com/LedgerHQ/ledger-live/commit/03af552b621e19e31747a65b1870dfe8d3bb005b), [`d2b12e7`](https://github.com/LedgerHQ/ledger-live/commit/d2b12e70bba9e772d078d1fe4d9c537b8d316a87), [`cab7d97`](https://github.com/LedgerHQ/ledger-live/commit/cab7d9794e7babb8220c6d339fb08e618e3d4202)]:
88
- - @ledgerhq/cryptoassets@13.31.0-nightly.0
89
- - @ledgerhq/types-live@6.87.0-nightly.0
90
- - @ledgerhq/coin-framework@6.7.0-nightly.0
54
+ - Updated dependencies [[`ea16f59`](https://github.com/LedgerHQ/ledger-live/commit/ea16f592e85019a1b77287a7f2b975c6fcffc74c), [`cfe65ca`](https://github.com/LedgerHQ/ledger-live/commit/cfe65cafa268be4e53197ee163ce78f28ed72592), [`a9aacdb`](https://github.com/LedgerHQ/ledger-live/commit/a9aacdb330700f0a294833f7d77de17f179229b2), [`3979c07`](https://github.com/LedgerHQ/ledger-live/commit/3979c0715e4f54165c89d00ebe1441e064e1a110), [`c6a676f`](https://github.com/LedgerHQ/ledger-live/commit/c6a676ff80581ac19b896adf44d54812983b72da), [`b5fc1bd`](https://github.com/LedgerHQ/ledger-live/commit/b5fc1bd28fff091241905fec5ff8dc8af4c99b79), [`03af552`](https://github.com/LedgerHQ/ledger-live/commit/03af552b621e19e31747a65b1870dfe8d3bb005b), [`89ac0ed`](https://github.com/LedgerHQ/ledger-live/commit/89ac0eddc145dcf5c7cf240aa8be4301372c8f33), [`565da80`](https://github.com/LedgerHQ/ledger-live/commit/565da807b1ebbfc830fd0e47b3d8856f88d410a6), [`8645f01`](https://github.com/LedgerHQ/ledger-live/commit/8645f016191d29a55f6b0ca6e4b1d1909fd35445), [`1d9860c`](https://github.com/LedgerHQ/ledger-live/commit/1d9860cd1688131d391579955b40c6710b667db8), [`d2b12e7`](https://github.com/LedgerHQ/ledger-live/commit/d2b12e70bba9e772d078d1fe4d9c537b8d316a87), [`db25e21`](https://github.com/LedgerHQ/ledger-live/commit/db25e212b87dea426b153c6f1d988cead63c8c46), [`c8dbf40`](https://github.com/LedgerHQ/ledger-live/commit/c8dbf402268359e225a94782420111e786f875fa), [`cab7d97`](https://github.com/LedgerHQ/ledger-live/commit/cab7d9794e7babb8220c6d339fb08e618e3d4202)]:
55
+ - @ledgerhq/cryptoassets@13.31.0-next.0
56
+ - @ledgerhq/types-live@6.87.0-next.0
57
+ - @ledgerhq/coin-framework@6.7.0-next.0
58
+ - @ledgerhq/live-network@2.0.20-next.0
91
59
 
92
60
  ## 6.6.0
93
61
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.integ.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.integ.test.d.ts","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const local_forging_1 = require("@taquito/local-forging");
4
+ const _1 = require(".");
5
+ /**
6
+ * https://teztnets.com/ghostnet-about
7
+ * https://api.tzkt.io/#section/Get-Started/Free-TzKT-API
8
+ */
9
+ describe("Tezos Api", () => {
10
+ let module;
11
+ const address = "tz1heMGVHQnx7ALDcDKqez8fan64Eyicw4DJ";
12
+ beforeAll(() => {
13
+ module = (0, _1.createApi)({
14
+ baker: {
15
+ url: "https://baker.example.com",
16
+ },
17
+ explorer: {
18
+ url: "https://api.ghostnet.tzkt.io",
19
+ maxTxQuery: 100,
20
+ },
21
+ node: {
22
+ url: "https://rpc.ghostnet.teztnets.com",
23
+ },
24
+ fees: {
25
+ minGasLimit: 600,
26
+ minRevealGasLimit: 300,
27
+ minStorageLimit: 0,
28
+ minFees: 500,
29
+ minEstimatedFees: 500,
30
+ },
31
+ });
32
+ });
33
+ describe("estimateFees", () => {
34
+ it("returns a default value", async () => {
35
+ // Given
36
+ const amount = BigInt(100);
37
+ // When
38
+ const result = await module.estimateFees({
39
+ intentType: "transaction",
40
+ asset: { type: "native" },
41
+ type: "send",
42
+ sender: address,
43
+ recipient: "tz1heMGVHQnx7ALDcDKqez8fan64Eyicw4DJ",
44
+ amount,
45
+ });
46
+ // Then
47
+ expect(result.value).toBeGreaterThanOrEqual(BigInt(0));
48
+ expect(result.parameters).toBeDefined();
49
+ expect(result.parameters?.gasLimit).toBeGreaterThanOrEqual(BigInt(0));
50
+ expect(result.parameters?.storageLimit).toBeGreaterThanOrEqual(BigInt(0));
51
+ });
52
+ });
53
+ it.each([
54
+ [
55
+ "ed25519 / tz1",
56
+ "tz1heMGVHQnx7ALDcDKqez8fan64Eyicw4DJ",
57
+ "6D9733FB7E27C56F032FAD41E4C0C90D58D0D5F1A253B2430B702071B57E47C1",
58
+ ],
59
+ [
60
+ "secp256k1 / tz2",
61
+ "tz2DvEBHrtFkq9pTXqt6yavnf4sPe2jut2XH",
62
+ "032fede4de54cf92381832a053f0787125fdc0d065d231585eb34d5eae327c0222",
63
+ ],
64
+ [
65
+ "P256 / tz3",
66
+ "tz3DvEBHrtFkq9pTXqt6yavnf4sPe2jut2XH",
67
+ "0466839a78481025e3613f65fcd4b492a492bedd1a3cba77ae48eaa1803611d8e5f4e23c0d0f3586e2095f4f83d09c841e1c17586b2356d5d3a3ed3f45bb3a857e",
68
+ ],
69
+ ])("does not fail when providing a %s address with pub key", async (_, sender, pubKey) => {
70
+ // When
71
+ const result = await module.estimateFees({
72
+ intentType: "transaction",
73
+ asset: { type: "native" },
74
+ type: "send",
75
+ sender: "tz3DvEBHrtFkq9pTXqt6yavnf4sPe2jut2XH",
76
+ senderPublicKey: pubKey,
77
+ recipient: sender,
78
+ amount: BigInt(100),
79
+ });
80
+ // Then
81
+ expect(result.value).toBeGreaterThanOrEqual(BigInt(0));
82
+ expect(result.parameters).toBeDefined();
83
+ expect(result.parameters?.gasLimit).toBeGreaterThanOrEqual(BigInt(0));
84
+ expect(result.parameters?.storageLimit).toBeGreaterThanOrEqual(BigInt(0));
85
+ });
86
+ it("fails when using an unsupported address type", async () => {
87
+ await expect(module.estimateFees({
88
+ intentType: "transaction",
89
+ asset: { type: "native" },
90
+ type: "send",
91
+ sender: address,
92
+ recipient: "tz5heMGVHQnx7ALDcDKqez8fan64Eyicw4DJ",
93
+ amount: BigInt(100),
94
+ })).rejects.toThrow('Invalid address "tz5heMGVHQnx7ALDcDKqez8fan64Eyicw4DJ"');
95
+ });
96
+ describe("listOperations", () => {
97
+ it("returns a list regarding address parameter", async () => {
98
+ // When
99
+ const [tx, _] = await module.listOperations(address, { minHeight: 0, order: "asc" });
100
+ // Then
101
+ expect(tx.length).toBeGreaterThanOrEqual(1);
102
+ tx.forEach(operation => {
103
+ const isSenderOrReceipt = operation.senders.includes(address) || operation.recipients.includes(address);
104
+ expect(isSenderOrReceipt).toBeTruthy();
105
+ expect(operation.tx.block).toBeDefined();
106
+ });
107
+ });
108
+ it("returns all operations", async () => {
109
+ // When
110
+ const [tx, _] = await module.listOperations(address, { minHeight: 0, order: "asc" });
111
+ // Then
112
+ // Find a way to create a unique id. In Tezos, the same hash may represent different operations in case of delegation.
113
+ const checkSet = new Set(tx.map(elt => `${elt.tx.hash}${elt.type}${elt.senders[0]}`));
114
+ expect(checkSet.size).toEqual(tx.length);
115
+ });
116
+ it("returns operations from latest, but in asc order", async () => {
117
+ // When
118
+ const [txDesc] = await module.listOperations(address, { minHeight: 0, order: "desc" });
119
+ // Then
120
+ // Check if the result is sorted in ascending order
121
+ expect(txDesc[0].tx.block.height).toBeGreaterThanOrEqual(txDesc[txDesc.length - 1].tx.block.height);
122
+ });
123
+ });
124
+ describe("lastBlock", () => {
125
+ it("returns last block info", async () => {
126
+ // When
127
+ const result = await module.lastBlock();
128
+ // Then
129
+ expect(result.hash).toBeDefined();
130
+ expect(result.height).toBeDefined();
131
+ expect(result.time).toBeInstanceOf(Date);
132
+ });
133
+ });
134
+ describe("getBalance", () => {
135
+ it("returns a list regarding address parameter", async () => {
136
+ // When
137
+ const result = await module.getBalance(address);
138
+ // Then
139
+ expect(result[0].asset).toEqual({ type: "native" });
140
+ expect(result[0].value).toBeGreaterThan(0);
141
+ });
142
+ });
143
+ describe("craftTransaction", () => {
144
+ async function decode(sbytes) {
145
+ // note: strip the conventional prefix (aka watermark) added by rawEncode
146
+ // output of craftTransaction is "payload to sign = prefix + actual raw transaction"
147
+ return await local_forging_1.localForger.parse(sbytes.slice(2));
148
+ }
149
+ it.each(["send", "delegate", "undelegate"])("returns a raw transaction with %s", async (type) => {
150
+ const recipient = "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9";
151
+ const amount = BigInt(10);
152
+ // When
153
+ const { transaction: encodedTransaction } = await module.craftTransaction({
154
+ intentType: "transaction",
155
+ asset: { type: "native" },
156
+ type,
157
+ sender: address,
158
+ recipient: recipient,
159
+ amount: amount,
160
+ });
161
+ const decodedTransaction = await decode(encodedTransaction);
162
+ expect(decodedTransaction.contents).toHaveLength(1);
163
+ const operationContent = decodedTransaction.contents[0];
164
+ expect(operationContent.source).toEqual(address);
165
+ expect(BigInt(operationContent.fee)).toBeGreaterThan(0);
166
+ if (type === "send") {
167
+ expect(BigInt(operationContent.amount)).toEqual(amount);
168
+ expect(operationContent.destination).toEqual(recipient);
169
+ }
170
+ else if (type === "delegate") {
171
+ expect(operationContent.delegate).toEqual(recipient);
172
+ }
173
+ });
174
+ it("should use estimated fees when user does not provide them for crafting a transaction", async () => {
175
+ const { transaction: encodedTransaction } = await module.craftTransaction({
176
+ intentType: "transaction",
177
+ asset: { type: "native" },
178
+ type: "send",
179
+ sender: address,
180
+ recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
181
+ amount: BigInt(10),
182
+ });
183
+ const decodedTransaction = await decode(encodedTransaction);
184
+ const transactionFee = BigInt(decodedTransaction.contents[0].fee);
185
+ expect(transactionFee).toBeGreaterThan(0);
186
+ });
187
+ it.each([1n, 50n, 99n])("should use custom user fees when user provides it for crafting a transaction", async (customFees) => {
188
+ const { transaction: encodedTransaction } = await module.craftTransaction({
189
+ intentType: "transaction",
190
+ asset: { type: "native" },
191
+ type: "send",
192
+ sender: address,
193
+ recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
194
+ amount: BigInt(10),
195
+ }, { value: customFees });
196
+ const decodedTransaction = await decode(encodedTransaction);
197
+ expect(decodedTransaction.contents[0].fee).toEqual(customFees.toString());
198
+ });
199
+ });
200
+ });
201
+ //# sourceMappingURL=index.integ.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,203 @@
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
+ const tzkt_1 = __importDefault(require("../network/tzkt"));
7
+ const index_1 = require("./index");
8
+ const DEFAULT_ESTIMATED_FEES = 300n;
9
+ const DEFAULT_GAS_LIMIT = 30n;
10
+ const DEFAULT_STORAGE_LIMIT = 40n;
11
+ const logicGetTransactions = jest.fn();
12
+ const logicEstimateFees = jest.fn();
13
+ const logicCraftTransactionMock = jest.fn((_account, _transaction) => {
14
+ return { type: undefined, contents: undefined };
15
+ });
16
+ jest.mock("../logic", () => ({
17
+ listOperations: async () => logicGetTransactions(),
18
+ estimateFees: async () => logicEstimateFees(),
19
+ craftTransaction: (account, transaction) => logicCraftTransactionMock(account, transaction),
20
+ rawEncode: () => Promise.resolve("tz1heMGVHQnx7ALDcDKqez8fan64Eyicw4DJ"),
21
+ }));
22
+ jest.spyOn(tzkt_1.default, "getAccountByAddress").mockResolvedValue({
23
+ type: "user",
24
+ balance: 1000,
25
+ revealed: true,
26
+ address: "tz1test",
27
+ publicKey: "edpktest",
28
+ counter: 0,
29
+ delegationLevel: 0,
30
+ delegationTime: "2021-01-01T00:00:00Z",
31
+ numTransactions: 0,
32
+ firstActivityTime: "2021-01-01T00:00:00Z",
33
+ });
34
+ const api = (0, index_1.createApi)({
35
+ baker: {
36
+ url: "https://baker.example.com",
37
+ },
38
+ explorer: {
39
+ url: "foo",
40
+ maxTxQuery: 1,
41
+ },
42
+ node: {
43
+ url: "bar",
44
+ },
45
+ fees: {
46
+ minGasLimit: 1,
47
+ minRevealGasLimit: 1,
48
+ minStorageLimit: 1,
49
+ minFees: 1,
50
+ minEstimatedFees: 2,
51
+ },
52
+ });
53
+ describe("get operations", () => {
54
+ afterEach(() => {
55
+ logicGetTransactions.mockClear();
56
+ });
57
+ it("could return no operation", async () => {
58
+ logicGetTransactions.mockResolvedValue([[], ""]);
59
+ const [operations, token] = await api.listOperations("addr", { minHeight: 100, order: "asc" });
60
+ expect(operations).toEqual([]);
61
+ expect(token).toEqual("");
62
+ });
63
+ const op = {
64
+ id: "blockhash",
65
+ asset: { type: "native" },
66
+ tx: {
67
+ hash: "opHash",
68
+ fees: BigInt(100),
69
+ block: {
70
+ hash: "blockHash",
71
+ height: 123456,
72
+ time: new Date(),
73
+ },
74
+ date: new Date(),
75
+ },
76
+ type: "transaction",
77
+ value: BigInt(1000),
78
+ senders: ["tz1Sender"],
79
+ recipients: ["tz1Recipient"],
80
+ };
81
+ it("only does 1 iteration", async () => {
82
+ logicGetTransactions.mockResolvedValue([[op], "888"]);
83
+ const [operations, token] = await api.listOperations("addr", { minHeight: 100, order: "asc" });
84
+ expect(logicGetTransactions).toHaveBeenCalledTimes(1);
85
+ expect(operations.length).toBe(1);
86
+ expect(token).toEqual("888");
87
+ });
88
+ });
89
+ describe("Testing craftTransaction function", () => {
90
+ beforeEach(() => jest.clearAllMocks());
91
+ it("should use estimated fees when user does not provide them for crafting a transaction ", async () => {
92
+ logicEstimateFees.mockResolvedValue({
93
+ estimatedFees: DEFAULT_ESTIMATED_FEES,
94
+ gasLimit: DEFAULT_GAS_LIMIT,
95
+ storageLimit: DEFAULT_STORAGE_LIMIT,
96
+ });
97
+ await api.craftTransaction({
98
+ intentType: "transaction",
99
+ type: "send",
100
+ sender: "tz1test",
101
+ recipient: "tz1recipient",
102
+ amount: 1000n,
103
+ });
104
+ expect(logicEstimateFees).toHaveBeenCalledTimes(1);
105
+ expect(logicCraftTransactionMock).toHaveBeenCalledWith(expect.objectContaining({ address: "tz1test" }), expect.objectContaining({
106
+ fee: expect.objectContaining({
107
+ fees: DEFAULT_ESTIMATED_FEES.toString(),
108
+ gasLimit: DEFAULT_GAS_LIMIT.toString(),
109
+ storageLimit: DEFAULT_STORAGE_LIMIT.toString(),
110
+ }),
111
+ }));
112
+ });
113
+ it.each([[1n], [50n], [99n]])("should use custom user fees when user provides it for crafting a transaction", async (customFees) => {
114
+ logicEstimateFees.mockResolvedValue({
115
+ estimatedFees: DEFAULT_ESTIMATED_FEES,
116
+ gasLimit: DEFAULT_GAS_LIMIT,
117
+ storageLimit: DEFAULT_STORAGE_LIMIT,
118
+ parameters: {
119
+ gasLimit: DEFAULT_GAS_LIMIT,
120
+ storageLimit: DEFAULT_STORAGE_LIMIT,
121
+ },
122
+ });
123
+ await api.craftTransaction({
124
+ intentType: "transaction",
125
+ type: "send",
126
+ sender: "tz1test",
127
+ recipient: "tz1recipient",
128
+ amount: 1000n,
129
+ }, {
130
+ value: customFees,
131
+ });
132
+ expect(logicEstimateFees).toHaveBeenCalledTimes(1);
133
+ expect(logicCraftTransactionMock).toHaveBeenCalledWith(expect.any(Object), expect.objectContaining({
134
+ fee: {
135
+ fees: customFees.toString(),
136
+ gasLimit: DEFAULT_GAS_LIMIT.toString(),
137
+ storageLimit: DEFAULT_STORAGE_LIMIT.toString(),
138
+ },
139
+ }));
140
+ });
141
+ });
142
+ describe("Testing estimateFees function", () => {
143
+ beforeEach(() => jest.clearAllMocks());
144
+ it("should return estimation from logic module", async () => {
145
+ logicEstimateFees.mockResolvedValue({
146
+ estimatedFees: DEFAULT_ESTIMATED_FEES,
147
+ gasLimit: DEFAULT_GAS_LIMIT,
148
+ storageLimit: DEFAULT_STORAGE_LIMIT,
149
+ });
150
+ const result = await api.estimateFees({
151
+ intentType: "transaction",
152
+ type: "send",
153
+ sender: "tz1test",
154
+ recipient: "tz1recipient",
155
+ amount: 1000n,
156
+ });
157
+ expect(result).toEqual({
158
+ value: DEFAULT_ESTIMATED_FEES,
159
+ parameters: {
160
+ gasLimit: DEFAULT_GAS_LIMIT,
161
+ storageLimit: DEFAULT_STORAGE_LIMIT,
162
+ },
163
+ });
164
+ });
165
+ it("should throw taquito errors", async () => {
166
+ logicEstimateFees.mockResolvedValue({
167
+ estimatedFees: DEFAULT_ESTIMATED_FEES,
168
+ gasLimit: DEFAULT_GAS_LIMIT,
169
+ storageLimit: DEFAULT_STORAGE_LIMIT,
170
+ taquitoError: "test",
171
+ });
172
+ await expect(api.estimateFees({
173
+ intentType: "transaction",
174
+ type: "send",
175
+ sender: "tz1test",
176
+ recipient: "tz1recipient",
177
+ amount: 1000n,
178
+ })).rejects.toThrow("Fees estimation failed: test");
179
+ });
180
+ it("should not throw for delegate.unchanged errors", async () => {
181
+ logicEstimateFees.mockResolvedValue({
182
+ estimatedFees: DEFAULT_ESTIMATED_FEES,
183
+ gasLimit: DEFAULT_GAS_LIMIT,
184
+ storageLimit: DEFAULT_STORAGE_LIMIT,
185
+ taquitoError: "proto.022-PsRiotum.delegate.unchanged",
186
+ });
187
+ const result = await api.estimateFees({
188
+ intentType: "staking",
189
+ type: "delegate",
190
+ sender: "tz1test",
191
+ recipient: "tz1validator",
192
+ amount: 0n,
193
+ });
194
+ expect(result).toEqual({
195
+ value: DEFAULT_ESTIMATED_FEES,
196
+ parameters: {
197
+ gasLimit: DEFAULT_GAS_LIMIT,
198
+ storageLimit: DEFAULT_STORAGE_LIMIT,
199
+ },
200
+ });
201
+ });
202
+ });
203
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=craftTransaction.integ.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craftTransaction.integ.test.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.integ.test.ts"],"names":[],"mappings":""}