@ledgerhq/coin-tezos 10.2.0 → 10.2.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 (77) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/api/index.d.ts +1 -1
  3. package/lib/api/index.d.ts.map +1 -1
  4. package/lib/api/index.js +1 -1
  5. package/lib/api/index.js.map +1 -1
  6. package/lib/logic/craftRawOperations.js +26 -17
  7. package/lib/logic/craftRawOperations.js.map +1 -1
  8. package/lib/logic/estimateFees.js +4 -4
  9. package/lib/logic/estimateFees.js.map +1 -1
  10. package/lib/logic/listOperations.d.ts.map +1 -1
  11. package/lib/logic/listOperations.js +9 -7
  12. package/lib/logic/listOperations.js.map +1 -1
  13. package/lib/logic/validateIntent.js +1 -1
  14. package/lib/logic/validateIntent.js.map +1 -1
  15. package/lib/network/tzkt.js +1 -1
  16. package/lib/network/tzkt.js.map +1 -1
  17. package/lib/test/config.d.ts +2 -22
  18. package/lib/test/config.d.ts.map +1 -1
  19. package/lib/test/config.js.map +1 -1
  20. package/lib/utils.d.ts +0 -3
  21. package/lib/utils.d.ts.map +1 -1
  22. package/lib/utils.js +17 -3
  23. package/lib/utils.js.map +1 -1
  24. package/lib-es/api/index.d.ts +1 -1
  25. package/lib-es/api/index.d.ts.map +1 -1
  26. package/lib-es/api/index.js +1 -1
  27. package/lib-es/api/index.js.map +1 -1
  28. package/lib-es/logic/craftRawOperations.js +26 -17
  29. package/lib-es/logic/craftRawOperations.js.map +1 -1
  30. package/lib-es/logic/estimateFees.js +4 -4
  31. package/lib-es/logic/estimateFees.js.map +1 -1
  32. package/lib-es/logic/listOperations.d.ts.map +1 -1
  33. package/lib-es/logic/listOperations.js +9 -7
  34. package/lib-es/logic/listOperations.js.map +1 -1
  35. package/lib-es/logic/validateIntent.js +1 -1
  36. package/lib-es/logic/validateIntent.js.map +1 -1
  37. package/lib-es/network/tzkt.js +1 -1
  38. package/lib-es/network/tzkt.js.map +1 -1
  39. package/lib-es/test/config.d.ts +2 -22
  40. package/lib-es/test/config.d.ts.map +1 -1
  41. package/lib-es/test/config.js.map +1 -1
  42. package/lib-es/utils.d.ts +0 -3
  43. package/lib-es/utils.d.ts.map +1 -1
  44. package/lib-es/utils.js +17 -3
  45. package/lib-es/utils.js.map +1 -1
  46. package/package.json +2 -2
  47. package/src/api/index-mainnet.integ.test.ts +40 -50
  48. package/src/api/index.integ.test.ts +60 -45
  49. package/src/api/index.test.ts +229 -180
  50. package/src/api/index.ts +5 -4
  51. package/src/logic/broadcast.integ.test.ts +2 -7
  52. package/src/logic/craftRawOperations.test.ts +11 -10
  53. package/src/logic/craftRawOperations.ts +35 -19
  54. package/src/logic/craftTransaction.integ.test.ts +2 -2
  55. package/src/logic/craftTransaction.test.ts +63 -95
  56. package/src/logic/estimateFees.integ.test.ts +19 -20
  57. package/src/logic/estimateFees.test.ts +30 -63
  58. package/src/logic/estimateFees.ts +4 -4
  59. package/src/logic/getBalance.test.ts +6 -6
  60. package/src/logic/getBlock.integ.test.ts +20 -21
  61. package/src/logic/getBlock.test.ts +44 -51
  62. package/src/logic/getBlockInfo.integ.test.ts +13 -14
  63. package/src/logic/getBlockInfo.test.ts +8 -7
  64. package/src/logic/getStakes.test.ts +17 -17
  65. package/src/logic/listOperations.integ.test.ts +40 -37
  66. package/src/logic/listOperations.test.ts +34 -31
  67. package/src/logic/listOperations.ts +19 -19
  68. package/src/logic/validateIntent.test.ts +17 -19
  69. package/src/logic/validateIntent.ts +1 -1
  70. package/src/network/bakers.integ.test.ts +1 -1
  71. package/src/network/bakers.test.ts +7 -15
  72. package/src/network/tzkt.integ.test.ts +13 -14
  73. package/src/network/tzkt.test.ts +194 -259
  74. package/src/network/tzkt.ts +1 -1
  75. package/src/test/config.ts +3 -1
  76. package/src/utils.ts +18 -3
  77. package/.oxlintrc.json +0 -20
@@ -1,23 +1,3 @@
1
- export declare const mockConfig: {
2
- status: {
3
- type: string;
4
- };
5
- baker: {
6
- url: string;
7
- };
8
- explorer: {
9
- url: string;
10
- maxTxQuery: number;
11
- };
12
- node: {
13
- url: string;
14
- };
15
- fees: {
16
- minGasLimit: number;
17
- minRevealGasLimit: number;
18
- minStorageLimit: number;
19
- minFees: number;
20
- minEstimatedFees: number;
21
- };
22
- };
1
+ import type { TezosCoinConfig } from '../config';
2
+ export declare const mockConfig: TezosCoinConfig;
23
3
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/test/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;CAmBtB,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/test/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,eAAO,MAAM,UAAU,EAAE,eAmBxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/test/config.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sCAAsC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,KAAK,EAAE;QACL,GAAG,EAAE,0CAA0C;KAChD;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,+CAA+C;QACpD,UAAU,EAAE,GAAG;KAChB;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,sCAAsC;KAC5C;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;QACV,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/test/config.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sCAAsC;AAItC,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,KAAK,EAAE;QACL,GAAG,EAAE,0CAA0C;KAChD;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,+CAA+C;QACpD,UAAU,EAAE,GAAG;KAChB;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,sCAAsC;KAC5C;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;QACV,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAA"}
package/lib-es/utils.d.ts CHANGED
@@ -43,9 +43,6 @@ export declare function parseTezosTokenAsset(asset: TezosAssetLike | undefined):
43
43
  contractAddress: string;
44
44
  tokenId: number;
45
45
  } | null;
46
- /**
47
- * Resolves Tezos operation mode from intent type and asset (native XTZ vs token).
48
- */
49
46
  export declare function resolveTezosOperationMode(intentType: string, asset: TezosAssetLike | undefined): TezosOperationMode;
50
47
  /**
51
48
  * Creates a mock signer for Taquito operations (estimation and crafting)
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAMvD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAGpC,eAAO,MAAM,2BAA2B,SAAU,CAAA;AAElD,4IAA4I;AAC5I,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAIvC;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,GAAG,SAAS,GAChC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcrD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,GAAG,SAAS,GAChC,kBAAkB,CAMpB;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,CA6CpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoC/D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe;;;;;EAO/D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,WAElD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAMvD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAGpC,eAAO,MAAM,2BAA2B,SAAU,CAAA;AAElD,4IAA4I;AAC5I,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACX,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAIvC;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,GAAG,SAAS,GAChC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcrD;AAkBD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,GAAG,SAAS,GAChC,kBAAkB,CAQpB;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,CA6CpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoC/D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe;;;;;EAO/D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,WAElD"}
package/lib-es/utils.js CHANGED
@@ -62,12 +62,26 @@ export function parseTezosTokenAsset(asset) {
62
62
  /**
63
63
  * Resolves Tezos operation mode from intent type and asset (native XTZ vs token).
64
64
  */
65
+ function isTezosOperationMode(v) {
66
+ const modes = [
67
+ 'send',
68
+ 'delegate',
69
+ 'undelegate',
70
+ 'stake',
71
+ 'unstake',
72
+ 'finalize_unstake',
73
+ 'send_token',
74
+ ];
75
+ return modes.some((m) => m === v);
76
+ }
65
77
  export function resolveTezosOperationMode(intentType, asset) {
66
- const base = intentType;
67
- if (base === 'send' && parseTezosTokenAsset(asset) !== null) {
78
+ if (intentType === 'send' && parseTezosTokenAsset(asset) !== null) {
68
79
  return 'send_token';
69
80
  }
70
- return base;
81
+ if (isTezosOperationMode(intentType)) {
82
+ return intentType;
83
+ }
84
+ throw new Error(`resolveTezosOperationMode: unexpected mode "${intentType}"`);
71
85
  }
72
86
  /**
73
87
  * Creates a mock signer for Taquito operations (estimation and crafting)
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-tezos",
3
- "version": "10.2.0",
3
+ "version": "10.2.1",
4
4
  "description": "Tezos Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -61,7 +61,7 @@
61
61
  "@taquito/rpc": "^23.0.0-RC.0",
62
62
  "@taquito/taquito": "^23.0.0-RC.0",
63
63
  "@taquito/utils": "^23.0.0-RC.0",
64
- "@ledgerhq/coin-module-framework": "^8.2.0"
64
+ "@ledgerhq/coin-module-framework": "^8.3.0"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@ledgerhq/live-network": "^3.0.0",
@@ -1,7 +1,7 @@
1
1
  // SPDX-FileCopyrightText: © 2026 LEDGER SAS
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import type { TezosCoinConfig, TezosConfig, TezosContext } from '../config'
4
+ import type { TezosCoinConfig, TezosContext } from '../config'
5
5
  import { localForger } from '@taquito/local-forging'
6
6
  import { OpKind } from '@taquito/rpc'
7
7
  import { createTzktApi } from '../network/tzkt'
@@ -18,7 +18,8 @@ import { createApi } from '.'
18
18
  const UNREVEALED_SENDER = 'tz2RZHPmNVQY7h1oopsvDBMrp8i48zhc9cAL'
19
19
  const UNREVEALED_PUBLIC_KEY = '0268eae382350b43ba1af0e1140e4b68dc9d2084836494554860c1be0605a7af2d'
20
20
 
21
- const defaultConfig: TezosConfig = {
21
+ const defaultConfig: TezosCoinConfig = {
22
+ status: { type: 'active' },
22
23
  baker: {
23
24
  url: 'https://baker.example.com',
24
25
  },
@@ -38,16 +39,6 @@ const defaultConfig: TezosConfig = {
38
39
  },
39
40
  }
40
41
 
41
- /** Decoded operation. */
42
- type DecodedOperation = {
43
- kind: number
44
- fee?: string
45
- gas_limit?: string
46
- storage_limit?: string
47
- delegate?: string
48
- source?: string
49
- }
50
-
51
42
  /**
52
43
  * Mainnet-specific integration tests
53
44
  * Please implement your tests in testnet-specific tests file (see index.integ.test.ts)
@@ -56,10 +47,10 @@ type DecodedOperation = {
56
47
  describe('Tezos Api - Mainnet', () => {
57
48
  const module = createApi()
58
49
  const context: TezosContext = {
59
- config: async () => defaultConfig as TezosCoinConfig,
50
+ config: async () => defaultConfig,
60
51
  logger: () => undefined,
61
52
  }
62
- const tzktApi = createTzktApi(defaultConfig as TezosCoinConfig)
53
+ const tzktApi = createTzktApi(defaultConfig)
63
54
 
64
55
  describe('estimateFees', () => {
65
56
  it('fallback to an estimation without the public key', async () => {
@@ -124,39 +115,38 @@ describe('Tezos Api - Mainnet', () => {
124
115
 
125
116
  expect(decoded.contents.length).toBe(2)
126
117
 
127
- const reveal = decoded.contents[0] as DecodedOperation
128
- expect(reveal.kind).toBe(OpKind.REVEAL)
129
- expect(BigInt(reveal.fee ?? '0')).toBeGreaterThanOrEqual(500)
130
- expect(Number(reveal.gas_limit ?? '0')).toBeGreaterThanOrEqual(300)
131
- expect(Number(reveal.storage_limit ?? '0')).toBeGreaterThanOrEqual(0)
118
+ const reveal = decoded.contents[0]
119
+ if (reveal.kind !== OpKind.REVEAL) fail('expected reveal op')
120
+ expect(BigInt(reveal.fee)).toBeGreaterThanOrEqual(500n)
121
+ expect(Number(reveal.gas_limit)).toBeGreaterThanOrEqual(300)
122
+ expect(Number(reveal.storage_limit)).toBeGreaterThanOrEqual(0)
132
123
  expect(reveal.source).toEqual(sender)
133
124
 
134
- const delegation = decoded.contents[1] as DecodedOperation
135
- expect(delegation.kind).toBe(OpKind.DELEGATION)
136
- expect(BigInt(delegation.fee ?? '0')).toBeGreaterThanOrEqual(500)
137
- expect(Number(delegation.gas_limit ?? '0')).toBeGreaterThanOrEqual(2500)
138
- expect(Number(delegation.storage_limit ?? '0')).toBeGreaterThanOrEqual(0)
125
+ const delegation = decoded.contents[1]
126
+ if (delegation.kind !== OpKind.DELEGATION) fail('expected delegation op')
127
+ expect(BigInt(delegation.fee)).toBeGreaterThanOrEqual(500n)
128
+ expect(Number(delegation.gas_limit)).toBeGreaterThanOrEqual(2500)
129
+ expect(Number(delegation.storage_limit)).toBeGreaterThanOrEqual(0)
139
130
  expect(delegation.delegate).toEqual(delegate)
140
131
  expect(delegation.source).toEqual(sender)
141
132
 
142
- const total = decoded.contents.reduce((sum, op) => sum + BigInt(op.fee ?? '0'), 0n)
133
+ const total = BigInt(reveal.fee) + BigInt(delegation.fee)
143
134
  expect(total).toBeGreaterThanOrEqual(1000n)
144
135
  })
145
136
  })
146
137
 
147
138
  describe('with custom fees settings', () => {
148
139
  const contextCustomFees: TezosContext = {
149
- config: async () =>
150
- ({
151
- ...defaultConfig,
152
- fees: {
153
- minGasLimit: 600,
154
- minRevealGasLimit: 300,
155
- minStorageLimit: 0,
156
- minFees: 1200,
157
- minEstimatedFees: 1100,
158
- },
159
- }) as TezosCoinConfig,
140
+ config: async () => ({
141
+ ...defaultConfig,
142
+ fees: {
143
+ minGasLimit: 600,
144
+ minRevealGasLimit: 300,
145
+ minStorageLimit: 0,
146
+ minFees: 1200,
147
+ minEstimatedFees: 1100,
148
+ },
149
+ }),
160
150
  logger: () => undefined,
161
151
  }
162
152
 
@@ -193,17 +183,17 @@ describe('Tezos Api - Mainnet', () => {
193
183
  )
194
184
  const decoded = await localForger.parse(encodedTransaction.slice(2))
195
185
 
196
- const reveal = decoded.contents[0] as DecodedOperation
197
- expect(reveal.kind).toBe(OpKind.REVEAL)
198
- expect(BigInt(reveal.fee ?? '0')).toEqual(1200n)
186
+ const reveal = decoded.contents[0]
187
+ if (reveal.kind !== OpKind.REVEAL) fail('expected reveal op')
188
+ expect(BigInt(reveal.fee)).toEqual(1200n)
199
189
 
200
- const delegation = decoded.contents[1] as DecodedOperation
201
- expect(delegation.kind).toBe(OpKind.DELEGATION)
202
- expect(BigInt(delegation.fee ?? '0')).toBeGreaterThanOrEqual(1800n)
190
+ const delegation = decoded.contents[1]
191
+ if (delegation.kind !== OpKind.DELEGATION) fail('expected delegation op')
192
+ expect(BigInt(delegation.fee)).toBeGreaterThanOrEqual(1800n)
203
193
 
204
194
  // The provided customFee exceeds the default estimation. In this case, we expect the fee to be increased on
205
195
  // the main operation (delegate) so that total fee paid respects customFee.
206
- const totalFees = decoded.contents.reduce((sum, op) => sum + BigInt(op.fee ?? '0'), 0n)
196
+ const totalFees = BigInt(reveal.fee) + BigInt(delegation.fee)
207
197
  expect(totalFees).toBe(3000n)
208
198
  })
209
199
 
@@ -223,18 +213,18 @@ describe('Tezos Api - Mainnet', () => {
223
213
  )
224
214
  const decoded = await localForger.parse(encodedTransaction.slice(2))
225
215
 
226
- const reveal = decoded.contents[0] as DecodedOperation
227
- expect(reveal.kind).toBe(OpKind.REVEAL)
228
- expect(BigInt(reveal.fee ?? '0')).toEqual(1200n)
216
+ const reveal = decoded.contents[0]
217
+ if (reveal.kind !== OpKind.REVEAL) fail('expected reveal op')
218
+ expect(BigInt(reveal.fee)).toEqual(1200n)
229
219
 
230
- const delegation = decoded.contents[1] as DecodedOperation
231
- expect(delegation.kind).toBe(OpKind.DELEGATION)
232
- expect(BigInt(delegation.fee ?? '0')).toBeGreaterThanOrEqual(800n)
220
+ const delegation = decoded.contents[1]
221
+ if (delegation.kind !== OpKind.DELEGATION) fail('expected delegation op')
222
+ expect(BigInt(delegation.fee)).toBeGreaterThanOrEqual(800n)
233
223
 
234
224
  // The provided customFee is less than the default estimation. In this case, we expect the fee to be decreased
235
225
  // on the main operation (delegate) so that total fee paid respects customFee. Transaction could fail, but
236
226
  // that's caller responsibility.
237
- const totalFees = decoded.contents.reduce((sum, op) => sum + BigInt(op.fee ?? '0'), 0n)
227
+ const totalFees = BigInt(reveal.fee) + BigInt(delegation.fee)
238
228
  expect(totalFees).toBe(2000n)
239
229
  })
240
230
  })
@@ -1,22 +1,13 @@
1
1
  // SPDX-FileCopyrightText: © 2026 LEDGER SAS
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import type { TezosCoinConfig, TezosConfig, TezosContext } from '../config'
5
- import type { SendTransactionIntent } from '@ledgerhq/coin-module-framework/api/types'
4
+ import type { TezosContext } from '../config'
5
+ import { createSendTransactionIntentMockData } from '@ledgerhq/coin-module-framework/test-utils'
6
6
  import { localForger } from '@taquito/local-forging'
7
7
  import { createApi } from '.'
8
8
 
9
- const defaultConfig: TezosConfig = {
10
- baker: { url: 'https://baker.example.com' },
11
- explorer: { url: 'https://api.shadownet.tzkt.io', maxTxQuery: 100 },
12
- node: { url: 'https://rpc.shadownet.teztnets.com' },
13
- fees: {
14
- minGasLimit: 600,
15
- minRevealGasLimit: 300,
16
- minStorageLimit: 0,
17
- minFees: 500,
18
- minEstimatedFees: 500,
19
- },
9
+ function assertHasFee(op: object): asserts op is { fee: string } {
10
+ if (!('fee' in op)) fail('expected fee field on op')
20
11
  }
21
12
 
22
13
  /**
@@ -27,7 +18,19 @@ const defaultConfig: TezosConfig = {
27
18
  describe('Tezos Api', () => {
28
19
  const module = createApi()
29
20
  const context: TezosContext = {
30
- config: async () => defaultConfig as TezosCoinConfig,
21
+ config: async () => ({
22
+ status: { type: 'active' },
23
+ baker: { url: 'https://baker.example.com' },
24
+ explorer: { url: 'https://api.shadownet.tzkt.io', maxTxQuery: 100 },
25
+ node: { url: 'https://rpc.shadownet.teztnets.com' },
26
+ fees: {
27
+ minGasLimit: 600,
28
+ minRevealGasLimit: 300,
29
+ minStorageLimit: 0,
30
+ minFees: 500,
31
+ minEstimatedFees: 500,
32
+ },
33
+ }),
31
34
  logger: () => undefined,
32
35
  }
33
36
  // Persistent Shadownet test account — see LIVE-28763 PR for chain-of-custody.
@@ -78,15 +81,16 @@ describe('Tezos Api', () => {
78
81
  'p2pk66gP3wq6k9QgNwAgaGLeXc3YFfrxgYdC7cdYuJWAHYBw4hExVHW',
79
82
  ],
80
83
  ])('does not fail when providing a %s sender with pub key', async (_, sender, pubKey) => {
81
- const result = await module.estimateFees(context, {
82
- intentType: 'transaction',
83
- asset: { type: 'native' },
84
- type: 'send',
85
- sender,
86
- senderPublicKey: pubKey,
87
- recipient: address,
88
- amount: BigInt(100),
89
- } as SendTransactionIntent)
84
+ const result = await module.estimateFees(
85
+ context,
86
+ createSendTransactionIntentMockData({
87
+ type: 'send',
88
+ sender,
89
+ senderPublicKey: pubKey,
90
+ recipient: address,
91
+ amount: BigInt(100),
92
+ })
93
+ )
90
94
 
91
95
  expect(result.value).toBeGreaterThanOrEqual(BigInt(0))
92
96
  expect(result.parameters?.gasLimit).toBeGreaterThanOrEqual(BigInt(0))
@@ -214,14 +218,17 @@ describe('Tezos Api', () => {
214
218
  expect(decodedTransaction.contents).toHaveLength(1)
215
219
 
216
220
  const operationContent = decodedTransaction.contents[0]
217
- expect(operationContent.source).toEqual(address)
218
- expect(BigInt(operationContent.fee)).toBeGreaterThan(0)
221
+ expect(operationContent).toMatchObject({ source: address })
222
+ assertHasFee(operationContent)
223
+ expect(BigInt(String(operationContent.fee))).toBeGreaterThan(0)
219
224
 
220
225
  if (type === 'send') {
221
- expect(BigInt(operationContent.amount)).toEqual(amount)
222
- expect(operationContent.destination).toEqual(recipient)
226
+ expect(operationContent).toMatchObject({
227
+ destination: recipient,
228
+ amount: amount.toString(),
229
+ })
223
230
  } else if (type === 'delegate') {
224
- expect(operationContent.delegate).toEqual(recipient)
231
+ expect(operationContent).toMatchObject({ delegate: recipient })
225
232
  }
226
233
  }
227
234
  )
@@ -237,7 +244,9 @@ describe('Tezos Api', () => {
237
244
  })
238
245
 
239
246
  const decodedTransaction = await decode(encodedTransaction)
240
- const transactionFee = BigInt(decodedTransaction.contents[0].fee)
247
+ const op0 = decodedTransaction.contents[0]
248
+ assertHasFee(op0)
249
+ const transactionFee = BigInt(String(op0.fee))
241
250
  expect(transactionFee).toBeGreaterThan(0)
242
251
  })
243
252
 
@@ -258,7 +267,7 @@ describe('Tezos Api', () => {
258
267
  )
259
268
 
260
269
  const decodedTransaction = await decode(encodedTransaction)
261
- expect(decodedTransaction.contents[0].fee).toEqual(customFees.toString())
270
+ expect(decodedTransaction.contents[0]).toMatchObject({ fee: customFees.toString() })
262
271
  }
263
272
  )
264
273
  })
@@ -268,17 +277,19 @@ describe('Tezos Api', () => {
268
277
  const minEstimatedFees = 550
269
278
 
270
279
  const contextCustomFees: TezosContext = {
271
- config: async () =>
272
- ({
273
- ...defaultConfig,
274
- fees: {
275
- minGasLimit: 600,
276
- minRevealGasLimit: 300,
277
- minStorageLimit: 0,
278
- minFees,
279
- minEstimatedFees,
280
- },
281
- }) as TezosCoinConfig,
280
+ config: async () => ({
281
+ status: { type: 'active' },
282
+ baker: { url: 'https://baker.example.com' },
283
+ explorer: { url: 'https://api.shadownet.tzkt.io', maxTxQuery: 100 },
284
+ node: { url: 'https://rpc.shadownet.teztnets.com' },
285
+ fees: {
286
+ minGasLimit: 600,
287
+ minRevealGasLimit: 300,
288
+ minStorageLimit: 0,
289
+ minFees,
290
+ minEstimatedFees,
291
+ },
292
+ }),
282
293
  logger: () => undefined,
283
294
  }
284
295
 
@@ -324,7 +335,9 @@ describe('Tezos Api', () => {
324
335
  }
325
336
  )
326
337
  const decoded = await localForger.parse(encodedTransaction.slice(2))
327
- const fee = BigInt(decoded.contents[0].fee ?? '0')
338
+ const op = decoded.contents[0]
339
+ assertHasFee(op)
340
+ const fee = BigInt(String(op.fee))
328
341
  expect(fee).toBeGreaterThanOrEqual(BigInt(minFees))
329
342
  })
330
343
 
@@ -341,7 +354,9 @@ describe('Tezos Api', () => {
341
354
  }
342
355
  )
343
356
  const decoded = await localForger.parse(encodedTransaction.slice(2))
344
- const fee = BigInt(decoded.contents[0].fee ?? '0')
357
+ const op = decoded.contents[0]
358
+ assertHasFee(op)
359
+ const fee = BigInt(String(op.fee))
345
360
  expect(fee).toBeGreaterThanOrEqual(BigInt(minFees))
346
361
  })
347
362
 
@@ -360,7 +375,7 @@ describe('Tezos Api', () => {
360
375
  { customFees: { value: customFee } }
361
376
  )
362
377
  const decoded = await localForger.parse(encodedTransaction.slice(2))
363
- expect(decoded.contents[0].fee).toBe(customFee.toString())
378
+ expect(decoded.contents[0]).toMatchObject({ fee: customFee.toString() })
364
379
  })
365
380
 
366
381
  it('craft transaction with customFee when default estimation is lesser than customFee', async () => {
@@ -378,7 +393,7 @@ describe('Tezos Api', () => {
378
393
  { customFees: { value: customFee } }
379
394
  )
380
395
  const decoded = await localForger.parse(encodedTransaction.slice(2))
381
- expect(decoded.contents[0].fee).toBe(customFee.toString())
396
+ expect(decoded.contents[0]).toMatchObject({ fee: customFee.toString() })
382
397
  })
383
398
  })
384
399
  })