@ledgerhq/coin-evm 2.26.0 → 2.26.1-nightly.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/api/index.d.ts.map +1 -1
  3. package/lib/api/index.integ.test.js +104 -14
  4. package/lib/api/index.integ.test.js.map +1 -1
  5. package/lib/api/index.js +6 -0
  6. package/lib/api/index.js.map +1 -1
  7. package/lib/logic/getBalance.d.ts.map +1 -1
  8. package/lib/logic/getBalance.js +1 -0
  9. package/lib/logic/getBalance.js.map +1 -1
  10. package/lib/logic/getBalance.test.js +4 -4
  11. package/lib/logic/getBalance.test.js.map +1 -1
  12. package/lib/logic/listOperations.d.ts.map +1 -1
  13. package/lib/logic/listOperations.js +6 -5
  14. package/lib/logic/listOperations.js.map +1 -1
  15. package/lib/logic/listOperations.test.js +2 -2
  16. package/lib/logic/listOperations.test.js.map +1 -1
  17. package/lib-es/api/index.d.ts.map +1 -1
  18. package/lib-es/api/index.integ.test.js +104 -14
  19. package/lib-es/api/index.integ.test.js.map +1 -1
  20. package/lib-es/api/index.js +6 -0
  21. package/lib-es/api/index.js.map +1 -1
  22. package/lib-es/logic/getBalance.d.ts.map +1 -1
  23. package/lib-es/logic/getBalance.js +1 -0
  24. package/lib-es/logic/getBalance.js.map +1 -1
  25. package/lib-es/logic/getBalance.test.js +4 -4
  26. package/lib-es/logic/getBalance.test.js.map +1 -1
  27. package/lib-es/logic/listOperations.d.ts.map +1 -1
  28. package/lib-es/logic/listOperations.js +6 -5
  29. package/lib-es/logic/listOperations.js.map +1 -1
  30. package/lib-es/logic/listOperations.test.js +2 -2
  31. package/lib-es/logic/listOperations.test.js.map +1 -1
  32. package/package.json +11 -11
  33. package/src/api/index.integ.test.ts +110 -15
  34. package/src/api/index.ts +10 -0
  35. package/src/logic/getBalance.test.ts +4 -4
  36. package/src/logic/getBalance.ts +1 -0
  37. package/src/logic/listOperations.test.ts +2 -2
  38. package/src/logic/listOperations.ts +6 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @ledgerhq/coin-evm
2
2
 
3
+ ## 2.26.1-nightly.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`75a08cc`](https://github.com/LedgerHQ/ledger-live/commit/75a08cc3061347bae98ddef7ac3cdcd6181ddab5)]:
8
+ - @ledgerhq/live-env@2.14.0-nightly.0
9
+ - @ledgerhq/coin-framework@6.0.1-nightly.0
10
+ - @ledgerhq/evm-tools@1.7.3-nightly.0
11
+ - @ledgerhq/cryptoassets@13.24.1-nightly.0
12
+ - @ledgerhq/live-network@2.0.15-nightly.0
13
+
3
14
  ## 2.26.0
4
15
 
5
16
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAW1D,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,GAAG,SAAS,CA6BpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAW1D,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAmCpF"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ethers_1 = require("ethers");
3
4
  const index_1 = require("./index");
4
5
  describe.each([
5
6
  [
@@ -35,10 +36,34 @@ describe.each([
35
36
  expect(result.time).toBeInstanceOf(Date);
36
37
  });
37
38
  });
38
- describe("craftTransaction", () => {
39
+ describe.each([
40
+ [
41
+ "legacy",
42
+ (transaction) => {
43
+ expect(transaction).toMatchObject({
44
+ type: null,
45
+ gasPrice: expect.any(ethers_1.ethers.BigNumber),
46
+ });
47
+ expect(transaction.gasPrice?.toBigInt()).toBeGreaterThan(0);
48
+ },
49
+ ],
50
+ [
51
+ "eip1559",
52
+ (transaction) => {
53
+ expect(transaction).toMatchObject({
54
+ type: 2,
55
+ gasPrice: null,
56
+ maxFeePerGas: expect.any(ethers_1.ethers.BigNumber),
57
+ maxPriorityFeePerGas: expect.any(ethers_1.ethers.BigNumber),
58
+ });
59
+ expect(transaction.maxFeePerGas?.toBigInt()).toBeGreaterThan(0);
60
+ expect(transaction.maxPriorityFeePerGas?.toBigInt()).toBeGreaterThan(0);
61
+ },
62
+ ],
63
+ ])("craftTransaction", (mode, expectTransactionForMode) => {
39
64
  it("crafts a transaction with the native asset", async () => {
40
65
  const result = await module.craftTransaction({
41
- type: "send-legacy",
66
+ type: `send-${mode}`,
42
67
  amount: 10n,
43
68
  sender: "0x9bcd841436ef4f85dacefb1aec772af71619024e",
44
69
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -46,11 +71,16 @@ describe.each([
46
71
  type: "native",
47
72
  },
48
73
  });
49
- expect(result).toMatch(/^0x[A-Fa-f0-9]{72}$/);
74
+ expect(result).toMatch(/^0x[A-Fa-f0-9]+$/);
75
+ expect(ethers_1.ethers.utils.parseTransaction(result)).toMatchObject({
76
+ value: ethers_1.BigNumber.from(10),
77
+ to: "0x7b2C7232f9E38F30E2868f0E5Bf311Cd83554b5A",
78
+ });
79
+ expectTransactionForMode(ethers_1.ethers.utils.parseTransaction(result));
50
80
  });
51
81
  it("crafts a transaction with the USDC asset", async () => {
52
82
  const result = await module.craftTransaction({
53
- type: "send-legacy",
83
+ type: `send-${mode}`,
54
84
  amount: 10n,
55
85
  sender: "0x9bcd841436ef4f85dacefb1aec772af71619024e",
56
86
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -59,21 +89,44 @@ describe.each([
59
89
  assetReference: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
60
90
  },
61
91
  });
62
- expect(result).toMatch(/^0x[A-Fa-f0-9]{212}$/);
92
+ expect(result).toMatch(/^0x[A-Fa-f0-9]+$/);
93
+ expect(ethers_1.ethers.utils.parseTransaction(result)).toMatchObject({
94
+ value: ethers_1.BigNumber.from(0),
95
+ to: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
96
+ });
97
+ expectTransactionForMode(ethers_1.ethers.utils.parseTransaction(result));
63
98
  });
64
99
  });
65
100
  describe("getBalance", () => {
101
+ it("returns empty balance for a pristine account", async () => {
102
+ const result = await module.getBalance("0x6895Df5ed013c85B3D9D2446c227C9AfC3813551");
103
+ expect(result).toEqual([
104
+ {
105
+ value: 0n,
106
+ asset: { type: "native" },
107
+ },
108
+ ]);
109
+ });
66
110
  it("returns balance for an address", async () => {
67
111
  const result = await module.getBalance("0x9bcd841436ef4f85dacefb1aec772af71619024e");
68
112
  expect(result).toBeInstanceOf(Array);
69
- expect(result.length).toBeGreaterThan(0);
70
- expect(result[0]).toMatchObject({
113
+ expect(result[0]).toEqual({
71
114
  value: expect.any(BigInt),
72
115
  asset: { type: "native" },
73
116
  });
117
+ expect(result[0].value).toBeGreaterThan(0);
118
+ result.slice(1).forEach(balance => {
119
+ expect(balance.asset.type).not.toEqual("native");
120
+ expect(balance.value).toBeGreaterThanOrEqual(0);
121
+ });
74
122
  });
75
123
  });
76
124
  describe("listOperations", () => {
125
+ it("returns empty operation list for a pristine account", async () => {
126
+ expect(await module.listOperations("0x6895Df5ed013c85B3D9D2446c227C9AfC3813551", {
127
+ minHeight: 200,
128
+ })).toEqual([[], ""]);
129
+ });
77
130
  it("list operations for an address", async () => {
78
131
  const [result] = await module.listOperations("0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1", {
79
132
  minHeight: 200,
@@ -83,14 +136,53 @@ describe.each([
83
136
  expect(["FEES", "IN", "OUT"]).toContainEqual(op.type);
84
137
  expect(op.senders.concat(op.recipients)).toContain("0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1");
85
138
  expect(op.value).toBeGreaterThanOrEqual(0n);
139
+ expect(op.tx.hash).toMatch(/^0x[A-Fa-f0-9]{64}$/);
140
+ expect(op.tx.block.hash).toMatch(/^0x[A-Fa-f0-9]{64}$/);
86
141
  expect(op.tx.block.height).toBeGreaterThanOrEqual(200);
142
+ expect(op.tx.fees).toBeGreaterThan(0);
143
+ expect(op.tx.date).toBeInstanceOf(Date);
87
144
  });
88
145
  });
89
146
  });
90
- describe("estimateFees", () => {
147
+ describe.each([
148
+ [
149
+ "legacy",
150
+ (estimation) => {
151
+ expect(estimation).toEqual({
152
+ value: expect.any(BigInt),
153
+ parameters: {
154
+ gasPrice: expect.any(BigInt),
155
+ maxFeePerGas: null,
156
+ maxPriorityFeePerGas: null,
157
+ nextBaseFee: null,
158
+ },
159
+ });
160
+ expect(estimation.value).toBeGreaterThan(0);
161
+ expect(estimation.parameters?.gasPrice).toBeGreaterThan(0);
162
+ },
163
+ ],
164
+ [
165
+ "eip1559",
166
+ (estimation) => {
167
+ expect(estimation).toEqual({
168
+ value: expect.any(BigInt),
169
+ parameters: {
170
+ gasPrice: null,
171
+ maxFeePerGas: expect.any(BigInt),
172
+ maxPriorityFeePerGas: expect.any(BigInt),
173
+ nextBaseFee: expect.any(BigInt),
174
+ },
175
+ });
176
+ expect(estimation.value).toBeGreaterThan(0);
177
+ expect(estimation.parameters?.maxFeePerGas).toBeGreaterThan(0);
178
+ expect(estimation.parameters?.maxPriorityFeePerGas).toBeGreaterThan(0);
179
+ expect(estimation.parameters?.nextBaseFee).toBeGreaterThan(0);
180
+ },
181
+ ],
182
+ ])("estimateFees for %s transaction", (mode, expectEstimationForMode) => {
91
183
  it("estimates fees for native asset transfer", async () => {
92
184
  const result = await module.estimateFees({
93
- type: "send-legacy",
185
+ type: `send-${mode}`,
94
186
  amount: 100000000000000n, // 0.0001 ETH (smaller amount)
95
187
  sender: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
96
188
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -98,12 +190,11 @@ describe.each([
98
190
  type: "native",
99
191
  },
100
192
  });
101
- expect(typeof result.value).toBe("bigint");
102
- expect(result.value).toBeGreaterThan(0n);
193
+ expectEstimationForMode(result);
103
194
  });
104
195
  it("estimates fees for USDC token transfer", async () => {
105
196
  const result = await module.estimateFees({
106
- type: "send-legacy",
197
+ type: `send-${mode}`,
107
198
  amount: 1000000n, // 1 USDC (6 decimals)
108
199
  sender: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
109
200
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -112,8 +203,7 @@ describe.each([
112
203
  assetReference: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
113
204
  },
114
205
  });
115
- expect(typeof result.value).toBe("bigint");
116
- expect(result.value).toBeGreaterThan(0n);
206
+ expectEstimationForMode(result);
117
207
  });
118
208
  });
119
209
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
package/lib/api/index.js CHANGED
@@ -21,6 +21,12 @@ function createApi(config, currencyId) {
21
21
  getBlockInfo(_height) {
22
22
  throw new Error("getBlockInfo is not supported");
23
23
  },
24
+ getStakes(_address, _cursor) {
25
+ throw new Error("getStakes is not supported");
26
+ },
27
+ getRewards(_address, _cursor) {
28
+ throw new Error("getRewards is not supported");
29
+ },
24
30
  };
25
31
  }
26
32
  exports.createApi = createApi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAWA,kEAA0E;AAG1E,sCAA0D;AAC1D,0CAQwB;AAExB,SAAgB,SAAS,CAAC,MAAiB,EAAE,UAA4B;IACvE,IAAA,sBAAa,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAA,kCAAqB,EAAC,UAAU,CAAC,CAAC;IAEnD,OAAO;QACL,SAAS,EAAE,CAAC,EAAU,EAAE,eAAiC,EAAmB,EAAE,CAC5E,IAAA,iBAAS,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;QACzD,OAAO,EAAP,eAAO;QACP,gBAAgB,EAAE,CAChB,iBAAsD,EACtD,UAA0B,EACT,EAAE,CAAC,IAAA,wBAAgB,EAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;QACnF,YAAY,EAAE,CACZ,iBAAsD,EAC9B,EAAE,CAAC,IAAA,oBAAY,EAAC,QAAQ,EAAE,iBAAiB,CAAC;QACtE,UAAU,EAAE,CAAC,OAAe,EAAsB,EAAE,CAAC,IAAA,kBAAU,EAAC,QAAQ,EAAE,OAAO,CAAC;QAClF,SAAS,EAAE,GAAuB,EAAE,CAAC,IAAA,iBAAS,EAAC,QAAQ,CAAC;QACxD,cAAc,EAAE,CACd,OAAe,EACf,UAAsB,EAC4B,EAAE,CACpD,IAAA,sBAAc,EAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;QAC/C,QAAQ,CAAC,OAAO;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,YAAY,CAAC,OAAe;YAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC;AA7BD,8BA6BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAeA,kEAA0E;AAG1E,sCAA0D;AAC1D,0CAQwB;AAExB,SAAgB,SAAS,CAAC,MAAiB,EAAE,UAA4B;IACvE,IAAA,sBAAa,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAA,kCAAqB,EAAC,UAAU,CAAC,CAAC;IAEnD,OAAO;QACL,SAAS,EAAE,CAAC,EAAU,EAAE,eAAiC,EAAmB,EAAE,CAC5E,IAAA,iBAAS,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;QACzD,OAAO,EAAP,eAAO;QACP,gBAAgB,EAAE,CAChB,iBAAsD,EACtD,UAA0B,EACT,EAAE,CAAC,IAAA,wBAAgB,EAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;QACnF,YAAY,EAAE,CACZ,iBAAsD,EAC9B,EAAE,CAAC,IAAA,oBAAY,EAAC,QAAQ,EAAE,iBAAiB,CAAC;QACtE,UAAU,EAAE,CAAC,OAAe,EAAsB,EAAE,CAAC,IAAA,kBAAU,EAAC,QAAQ,EAAE,OAAO,CAAC;QAClF,SAAS,EAAE,GAAuB,EAAE,CAAC,IAAA,iBAAS,EAAC,QAAQ,CAAC;QACxD,cAAc,EAAE,CACd,OAAe,EACf,UAAsB,EAC4B,EAAE,CACpD,IAAA,sBAAc,EAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;QAC/C,QAAQ,CAAC,OAAO;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,YAAY,CAAC,OAAe;YAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,SAAS,CAAC,QAAgB,EAAE,OAAgB;YAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,QAAgB,EAAE,OAAgB;YAC3C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC;AAnCD,8BAmCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA6C9F;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA8C9F;AAED,eAAe,UAAU,CAAC"}
@@ -38,6 +38,7 @@ async function getBalance(currency, address) {
38
38
  asset: {
39
39
  type: assetType,
40
40
  assetReference: operation.contract,
41
+ assetOwner: address,
41
42
  },
42
43
  });
43
44
  contractAddresses.add(operation.contract);
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":";;;AAGA,0CAA6C;AAC7C,kDAAqD;AAErD;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,QAAwB,EAAE,OAAe;IACxE,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC;IAE7C,iDAAiD;IACjD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC;QACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAC;IAEH,4FAA4F;IAC5F,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACjE,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,CAAC,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpC,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5C,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE,SAAS,CAAC,QAAQ;iBACnC;aACF,CAAC,CAAC;YACH,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA7CD,gCA6CC;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":";;;AAGA,0CAA6C;AAC7C,kDAAqD;AAErD;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,QAAwB,EAAE,OAAe;IACxE,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC;IAE7C,iDAAiD;IACjD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC;QACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAC;IAEH,4FAA4F;IAC5F,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACjE,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,CAAC,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpC,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5C,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE,SAAS,CAAC,QAAQ;oBAClC,UAAU,EAAE,OAAO;iBACpB;aACF,CAAC,CAAC;YACH,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AA9CD,gCA8CC;AAED,kBAAe,UAAU,CAAC"}
@@ -48,15 +48,15 @@ describe("getBalance", () => {
48
48
  { value: BigInt("10000000000000000000000"), asset: { type: "native" } },
49
49
  {
50
50
  value: BigInt("1000000"),
51
- asset: { type: "erc20", assetReference: "0x123" },
51
+ asset: { type: "erc20", assetReference: "0x123", assetOwner: "address" },
52
52
  },
53
53
  {
54
54
  value: BigInt("2000000"),
55
- asset: { type: "erc20", assetReference: "0x456" },
55
+ asset: { type: "erc20", assetReference: "0x456", assetOwner: "address" },
56
56
  },
57
57
  ], // expected
58
58
  ],
59
- ])("should return %s", async (_, operations, tokenBalances, expected) => {
59
+ ])("returns %s", async (_, operations, tokenBalances, expected) => {
60
60
  const mockGetTokenBalance = jest
61
61
  .fn()
62
62
  .mockImplementation((_currency, _address, contractAddress) => {
@@ -69,7 +69,7 @@ describe("getBalance", () => {
69
69
  jest.spyOn(explorerModule, "getExplorerApi").mockReturnValue({
70
70
  getLastOperations: jest.fn().mockResolvedValue(operations),
71
71
  });
72
- expect(await (0, _1.getBalance)({}, "")).toEqual(expected);
72
+ expect(await (0, _1.getBalance)({}, "address")).toEqual(expected);
73
73
  });
74
74
  });
75
75
  //# sourceMappingURL=getBalance.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAqC;AAErC,4DAA8C;AAC9C,oEAAsD;AACtD,wBAA+B;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,IAAI,CAAC;QACN;YACE,qBAAqB,EAAE,mBAAmB;YAC1C,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,YAAY;YACzC,EAAE,EAAE,yBAAyB;YAC7B,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,WAAW;SACvF;QACD;YACE,2BAA2B,EAAE,mBAAmB;YAChD;gBACE,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aAC3F,EAAE,aAAa;YAChB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,iBAAiB;YAC7D;gBACE,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvE;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE;iBAClD;gBACD;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE;iBAClD;aACF,EAAE,WAAW;SACf;KACF,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;QACtE,MAAM,mBAAmB,GAAG,IAAI;aAC7B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;YAC3D,OAAO,IAAI,sBAAS,CAAE,aAAqB,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,eAAe,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,sBAAS,CAAC,yBAAyB,CAAC,CAAC;YACrF,eAAe,EAAE,mBAAmB;SAC9B,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,eAAe,CAAC;YAC3D,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;SACpD,CAAC,CAAC;QAEV,MAAM,CAAC,MAAM,IAAA,aAAU,EAAC,EAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAqC;AAErC,4DAA8C;AAC9C,oEAAsD;AACtD,wBAA+B;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,IAAI,CAAC;QACN;YACE,qBAAqB,EAAE,mBAAmB;YAC1C,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,YAAY;YACzC,EAAE,EAAE,yBAAyB;YAC7B,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,WAAW;SACvF;QACD;YACE,2BAA2B,EAAE,mBAAmB;YAChD;gBACE,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aAC3F,EAAE,aAAa;YAChB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,iBAAiB;YAC7D;gBACE,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvE;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;iBACzE;gBACD;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;iBACzE;aACF,EAAE,WAAW;SACf;KACF,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;QAChE,MAAM,mBAAmB,GAAG,IAAI;aAC7B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;YAC3D,OAAO,IAAI,sBAAS,CAAE,aAAqB,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,eAAe,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,sBAAS,CAAC,yBAAyB,CAAC,CAAC;YACrF,eAAe,EAAE,mBAAmB;SAC9B,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,eAAe,CAAC;YAC3D,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;SACpD,CAAC,CAAC;QAEV,MAAM,CAAC,MAAM,IAAA,aAAU,EAAC,EAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA4C9D,wBAAsB,cAAc,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAmBlD"}
1
+ {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA6C9D,wBAAsB,cAAc,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAmBlD"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listOperations = void 0;
4
4
  const explorer_1 = require("../network/explorer");
5
- const toOperation = (assetType, op) => {
6
- const assetInfo = { type: assetType };
7
- if (assetType !== "native") {
5
+ const toOperation = (asset, op) => {
6
+ const assetInfo = { type: asset.type };
7
+ if (asset.type === "token") {
8
8
  assetInfo.assetReference = op.contract ?? "";
9
+ assetInfo.assetOwner = asset.owner;
9
10
  if (op.standard) {
10
11
  if (op.standard === "ERC721") {
11
12
  assetInfo.type = "erc721";
@@ -42,8 +43,8 @@ const toOperation = (assetType, op) => {
42
43
  async function listOperations(currency, address, pagination) {
43
44
  const explorerApi = (0, explorer_1.getExplorerApi)(currency);
44
45
  const { lastCoinOperations, lastTokenOperations } = await explorerApi.getLastOperations(currency, address, `js:2:${currency.id}:${address}:`, pagination.minHeight);
45
- const nativeOperations = lastCoinOperations.map(op => toOperation("native", op));
46
- const tokenOperations = lastTokenOperations.map(op => toOperation("token", op));
46
+ const nativeOperations = lastCoinOperations.map(op => toOperation({ type: "native" }, op));
47
+ const tokenOperations = lastTokenOperations.map(op => toOperation({ type: "token", owner: address }, op));
47
48
  return [
48
49
  nativeOperations.concat(tokenOperations).filter(op => ["FEES", "IN", "OUT"].includes(op.type)),
49
50
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;;AAQA,kDAAqD;AAErD,MAAM,WAAW,GAAG,CAClB,SAA6B,EAC7B,EAAiB,EACY,EAAE;IAC/B,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAEjD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7C,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC5B,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,oBAAoB;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC;gBAC3B,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE;aACzB;YACD,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;SACd;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,OAAe,EACf,UAAsB;IAEtB,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACrF,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,UAAU,CAAC,SAAS,CACrB,CAAC;IACF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC1B,CAAC;IACF,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;IAEF,OAAO;QACL,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9F,EAAE;KACH,CAAC;AACJ,CAAC;AAvBD,wCAuBC"}
1
+ {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;;AAQA,kDAAqD;AAErD,MAAM,WAAW,GAAG,CAClB,KAA4D,EAC5D,EAAiB,EACY,EAAE;IAC/B,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7C,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC5B,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,oBAAoB;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC;gBAC3B,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE;aACzB;YACD,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;SACd;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,OAAe,EACf,UAAsB;IAEtB,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACrF,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,UAAU,CAAC,SAAS,CACrB,CAAC;IACF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACpC,CAAC;IACF,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACnD,CAAC;IAEF,OAAO;QACL,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9F,EAAE;KACH,CAAC;AACJ,CAAC;AAvBD,wCAuBC"}
@@ -12,7 +12,7 @@ describe("listOperations", () => {
12
12
  it.each([
13
13
  ["an etherscan explorer", "etherscan", etherscan_1.default],
14
14
  ["a ledger explorer", "ledger", ledger_1.default],
15
- ])("list latest operations using %s", async (_, type, explorer) => {
15
+ ])("lists latest operations using %s", async (_, type, explorer) => {
16
16
  (0, config_1.setCoinConfig)(() => ({ info: { explorer: { type } } }));
17
17
  jest.spyOn(explorer, "getLastOperations").mockResolvedValue({
18
18
  lastCoinOperations: [
@@ -107,7 +107,7 @@ describe("listOperations", () => {
107
107
  senders: ["address"],
108
108
  recipients: ["address1"],
109
109
  value: 1n,
110
- asset: { type: "erc20", assetReference: "contract-address" },
110
+ asset: { type: "erc20", assetReference: "contract-address", assetOwner: "address" },
111
111
  tx: {
112
112
  hash: "token-op-1-tx-hash",
113
113
  block: {
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":";;;;;AACA,gEAAqC;AACrC,sCAAyD;AACzD,8EAA8D;AAC9D,wEAAwD;AACxD,qDAAkD;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,uBAAuB,EAAE,WAAW,EAAE,mBAAiB,CAAC;QACzD,CAAC,mBAAmB,EAAE,QAAQ,EAAE,gBAAc,CAAC;KAChD,CAAC,CAAC,kCAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACjE,IAAA,sBAAa,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAA6B,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,iBAAiB,CAAC;YAC1D,kBAAkB,EAAE;gBAClB;oBACE,EAAE,EAAE,aAAa;oBACjB,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,CAAC,UAAU,CAAC;oBACrB,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,KAAK,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,EAAE;oBACf,SAAS,EAAE,wBAAwB;oBACnC,GAAG,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC;oBACtB,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;oBAC5B,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,EAAE,EAAE,aAAa;oBACjB,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,CAAC,UAAU,CAAC;oBACxB,KAAK,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,qBAAqB;oBAC3B,WAAW,EAAE,EAAE;oBACf,SAAS,EAAE,wBAAwB;oBACnC,GAAG,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC;oBACtB,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;oBAC5B,KAAK,EAAE,EAAE;iBACV;aACF;YACD,mBAAmB,EAAE;gBACnB;oBACE,EAAE,EAAE,YAAY;oBAChB,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,CAAC,UAAU,CAAC;oBACxB,QAAQ,EAAE,kBAAkB;oBAC5B,KAAK,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;oBACvB,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,EAAE;oBACf,SAAS,EAAE,uBAAuB;oBAClC,GAAG,EAAE,IAAI,sBAAS,CAAC,EAAE,CAAC;oBACtB,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;oBAC5B,KAAK,EAAE,EAAE;iBACV;aACF;YACD,iBAAiB,EAAE,EAAE;YACrB,sBAAsB,EAAE,EAAE;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,IAAA,+BAAc,EAAC,EAAoB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACtF;gBACE;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,CAAC,UAAU,CAAC;oBACrB,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,EAAE,EAAE;wBACF,IAAI,EAAE,qBAAqB;wBAC3B,KAAK,EAAE;4BACL,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,wBAAwB;yBAC/B;wBACD,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;qBAC7B;iBACF;gBACD;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,CAAC,UAAU,CAAC;oBACxB,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,EAAE,EAAE;wBACF,IAAI,EAAE,qBAAqB;wBAC3B,KAAK,EAAE;4BACL,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,wBAAwB;yBAC/B;wBACD,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;qBAC7B;iBACF;gBACD;oBACE,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,CAAC,UAAU,CAAC;oBACxB,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE;oBACnF,EAAE,EAAE;wBACF,IAAI,EAAE,oBAAoB;wBAC1B,KAAK,EAAE;4BACL,MAAM,EAAE,EAAE;4BACV,IAAI,EAAE,uBAAuB;yBAC9B;wBACD,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;qBAC7B;iBACF;aACF;YACD,EAAE;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAW1D,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,GAAG,SAAS,CA6BpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAW1D,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAmCpF"}
@@ -1,3 +1,4 @@
1
+ import { ethers, BigNumber } from "ethers";
1
2
  import { createApi } from "./index";
2
3
  describe.each([
3
4
  [
@@ -33,10 +34,34 @@ describe.each([
33
34
  expect(result.time).toBeInstanceOf(Date);
34
35
  });
35
36
  });
36
- describe("craftTransaction", () => {
37
+ describe.each([
38
+ [
39
+ "legacy",
40
+ (transaction) => {
41
+ expect(transaction).toMatchObject({
42
+ type: null,
43
+ gasPrice: expect.any(ethers.BigNumber),
44
+ });
45
+ expect(transaction.gasPrice?.toBigInt()).toBeGreaterThan(0);
46
+ },
47
+ ],
48
+ [
49
+ "eip1559",
50
+ (transaction) => {
51
+ expect(transaction).toMatchObject({
52
+ type: 2,
53
+ gasPrice: null,
54
+ maxFeePerGas: expect.any(ethers.BigNumber),
55
+ maxPriorityFeePerGas: expect.any(ethers.BigNumber),
56
+ });
57
+ expect(transaction.maxFeePerGas?.toBigInt()).toBeGreaterThan(0);
58
+ expect(transaction.maxPriorityFeePerGas?.toBigInt()).toBeGreaterThan(0);
59
+ },
60
+ ],
61
+ ])("craftTransaction", (mode, expectTransactionForMode) => {
37
62
  it("crafts a transaction with the native asset", async () => {
38
63
  const result = await module.craftTransaction({
39
- type: "send-legacy",
64
+ type: `send-${mode}`,
40
65
  amount: 10n,
41
66
  sender: "0x9bcd841436ef4f85dacefb1aec772af71619024e",
42
67
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -44,11 +69,16 @@ describe.each([
44
69
  type: "native",
45
70
  },
46
71
  });
47
- expect(result).toMatch(/^0x[A-Fa-f0-9]{72}$/);
72
+ expect(result).toMatch(/^0x[A-Fa-f0-9]+$/);
73
+ expect(ethers.utils.parseTransaction(result)).toMatchObject({
74
+ value: BigNumber.from(10),
75
+ to: "0x7b2C7232f9E38F30E2868f0E5Bf311Cd83554b5A",
76
+ });
77
+ expectTransactionForMode(ethers.utils.parseTransaction(result));
48
78
  });
49
79
  it("crafts a transaction with the USDC asset", async () => {
50
80
  const result = await module.craftTransaction({
51
- type: "send-legacy",
81
+ type: `send-${mode}`,
52
82
  amount: 10n,
53
83
  sender: "0x9bcd841436ef4f85dacefb1aec772af71619024e",
54
84
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -57,21 +87,44 @@ describe.each([
57
87
  assetReference: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
58
88
  },
59
89
  });
60
- expect(result).toMatch(/^0x[A-Fa-f0-9]{212}$/);
90
+ expect(result).toMatch(/^0x[A-Fa-f0-9]+$/);
91
+ expect(ethers.utils.parseTransaction(result)).toMatchObject({
92
+ value: BigNumber.from(0),
93
+ to: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
94
+ });
95
+ expectTransactionForMode(ethers.utils.parseTransaction(result));
61
96
  });
62
97
  });
63
98
  describe("getBalance", () => {
99
+ it("returns empty balance for a pristine account", async () => {
100
+ const result = await module.getBalance("0x6895Df5ed013c85B3D9D2446c227C9AfC3813551");
101
+ expect(result).toEqual([
102
+ {
103
+ value: 0n,
104
+ asset: { type: "native" },
105
+ },
106
+ ]);
107
+ });
64
108
  it("returns balance for an address", async () => {
65
109
  const result = await module.getBalance("0x9bcd841436ef4f85dacefb1aec772af71619024e");
66
110
  expect(result).toBeInstanceOf(Array);
67
- expect(result.length).toBeGreaterThan(0);
68
- expect(result[0]).toMatchObject({
111
+ expect(result[0]).toEqual({
69
112
  value: expect.any(BigInt),
70
113
  asset: { type: "native" },
71
114
  });
115
+ expect(result[0].value).toBeGreaterThan(0);
116
+ result.slice(1).forEach(balance => {
117
+ expect(balance.asset.type).not.toEqual("native");
118
+ expect(balance.value).toBeGreaterThanOrEqual(0);
119
+ });
72
120
  });
73
121
  });
74
122
  describe("listOperations", () => {
123
+ it("returns empty operation list for a pristine account", async () => {
124
+ expect(await module.listOperations("0x6895Df5ed013c85B3D9D2446c227C9AfC3813551", {
125
+ minHeight: 200,
126
+ })).toEqual([[], ""]);
127
+ });
75
128
  it("list operations for an address", async () => {
76
129
  const [result] = await module.listOperations("0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1", {
77
130
  minHeight: 200,
@@ -81,14 +134,53 @@ describe.each([
81
134
  expect(["FEES", "IN", "OUT"]).toContainEqual(op.type);
82
135
  expect(op.senders.concat(op.recipients)).toContain("0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1");
83
136
  expect(op.value).toBeGreaterThanOrEqual(0n);
137
+ expect(op.tx.hash).toMatch(/^0x[A-Fa-f0-9]{64}$/);
138
+ expect(op.tx.block.hash).toMatch(/^0x[A-Fa-f0-9]{64}$/);
84
139
  expect(op.tx.block.height).toBeGreaterThanOrEqual(200);
140
+ expect(op.tx.fees).toBeGreaterThan(0);
141
+ expect(op.tx.date).toBeInstanceOf(Date);
85
142
  });
86
143
  });
87
144
  });
88
- describe("estimateFees", () => {
145
+ describe.each([
146
+ [
147
+ "legacy",
148
+ (estimation) => {
149
+ expect(estimation).toEqual({
150
+ value: expect.any(BigInt),
151
+ parameters: {
152
+ gasPrice: expect.any(BigInt),
153
+ maxFeePerGas: null,
154
+ maxPriorityFeePerGas: null,
155
+ nextBaseFee: null,
156
+ },
157
+ });
158
+ expect(estimation.value).toBeGreaterThan(0);
159
+ expect(estimation.parameters?.gasPrice).toBeGreaterThan(0);
160
+ },
161
+ ],
162
+ [
163
+ "eip1559",
164
+ (estimation) => {
165
+ expect(estimation).toEqual({
166
+ value: expect.any(BigInt),
167
+ parameters: {
168
+ gasPrice: null,
169
+ maxFeePerGas: expect.any(BigInt),
170
+ maxPriorityFeePerGas: expect.any(BigInt),
171
+ nextBaseFee: expect.any(BigInt),
172
+ },
173
+ });
174
+ expect(estimation.value).toBeGreaterThan(0);
175
+ expect(estimation.parameters?.maxFeePerGas).toBeGreaterThan(0);
176
+ expect(estimation.parameters?.maxPriorityFeePerGas).toBeGreaterThan(0);
177
+ expect(estimation.parameters?.nextBaseFee).toBeGreaterThan(0);
178
+ },
179
+ ],
180
+ ])("estimateFees for %s transaction", (mode, expectEstimationForMode) => {
89
181
  it("estimates fees for native asset transfer", async () => {
90
182
  const result = await module.estimateFees({
91
- type: "send-legacy",
183
+ type: `send-${mode}`,
92
184
  amount: 100000000000000n, // 0.0001 ETH (smaller amount)
93
185
  sender: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
94
186
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -96,12 +188,11 @@ describe.each([
96
188
  type: "native",
97
189
  },
98
190
  });
99
- expect(typeof result.value).toBe("bigint");
100
- expect(result.value).toBeGreaterThan(0n);
191
+ expectEstimationForMode(result);
101
192
  });
102
193
  it("estimates fees for USDC token transfer", async () => {
103
194
  const result = await module.estimateFees({
104
- type: "send-legacy",
195
+ type: `send-${mode}`,
105
196
  amount: 1000000n, // 1 USDC (6 decimals)
106
197
  sender: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
107
198
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -110,8 +201,7 @@ describe.each([
110
201
  assetReference: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
111
202
  },
112
203
  });
113
- expect(typeof result.value).toBe("bigint");
114
- expect(result.value).toBeGreaterThan(0n);
204
+ expectEstimationForMode(result);
115
205
  });
116
206
  });
117
207
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,12 @@ export function createApi(config, currencyId) {
18
18
  getBlockInfo(_height) {
19
19
  throw new Error("getBlockInfo is not supported");
20
20
  },
21
+ getStakes(_address, _cursor) {
22
+ throw new Error("getStakes is not supported");
23
+ },
24
+ getRewards(_address, _cursor) {
25
+ throw new Error("getRewards is not supported");
26
+ },
21
27
  };
22
28
  }
23
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,SAAS,CAAC,MAAiB,EAAE,UAA4B;IACvE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEnD,OAAO;QACL,SAAS,EAAE,CAAC,EAAU,EAAE,eAAiC,EAAmB,EAAE,CAC5E,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;QACzD,OAAO;QACP,gBAAgB,EAAE,CAChB,iBAAsD,EACtD,UAA0B,EACT,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;QACnF,YAAY,EAAE,CACZ,iBAAsD,EAC9B,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACtE,UAAU,EAAE,CAAC,OAAe,EAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;QAClF,SAAS,EAAE,GAAuB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxD,cAAc,EAAE,CACd,OAAe,EACf,UAAsB,EAC4B,EAAE,CACpD,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;QAC/C,QAAQ,CAAC,OAAO;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,YAAY,CAAC,OAAe;YAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,SAAS,CAAC,MAAiB,EAAE,UAA4B;IACvE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEnD,OAAO;QACL,SAAS,EAAE,CAAC,EAAU,EAAE,eAAiC,EAAmB,EAAE,CAC5E,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;QACzD,OAAO;QACP,gBAAgB,EAAE,CAChB,iBAAsD,EACtD,UAA0B,EACT,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;QACnF,YAAY,EAAE,CACZ,iBAAsD,EAC9B,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACtE,UAAU,EAAE,CAAC,OAAe,EAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;QAClF,SAAS,EAAE,GAAuB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;QACxD,cAAc,EAAE,CACd,OAAe,EACf,UAAsB,EAC4B,EAAE,CACpD,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;QAC/C,QAAQ,CAAC,OAAO;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,YAAY,CAAC,OAAe;YAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,SAAS,CAAC,QAAgB,EAAE,OAAgB;YAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,QAAgB,EAAE,OAAgB;YAC3C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA6C9F;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA8C9F;AAED,eAAe,UAAU,CAAC"}
@@ -35,6 +35,7 @@ export async function getBalance(currency, address) {
35
35
  asset: {
36
36
  type: assetType,
37
37
  assetReference: operation.contract,
38
+ assetOwner: address,
38
39
  },
39
40
  });
40
41
  contractAddresses.add(operation.contract);
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAwB,EAAE,OAAe;IACxE,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,iDAAiD;IACjD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC;QACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAC;IAEH,4FAA4F;IAC5F,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACjE,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,CAAC,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpC,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5C,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE,SAAS,CAAC,QAAQ;iBACnC;aACF,CAAC,CAAC;YACH,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAwB,EAAE,OAAe;IACxE,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,iDAAiD;IACjD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC;QACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAC;IAEH,4FAA4F;IAC5F,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACjE,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,CAAC,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,SAAS,GAAG,OAAO,CAAC;YACxB,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpC,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5C,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE,SAAS,CAAC,QAAQ;oBAClC,UAAU,EAAE,OAAO;iBACpB;aACF,CAAC,CAAC;YACH,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,UAAU,CAAC"}
@@ -20,15 +20,15 @@ describe("getBalance", () => {
20
20
  { value: BigInt("10000000000000000000000"), asset: { type: "native" } },
21
21
  {
22
22
  value: BigInt("1000000"),
23
- asset: { type: "erc20", assetReference: "0x123" },
23
+ asset: { type: "erc20", assetReference: "0x123", assetOwner: "address" },
24
24
  },
25
25
  {
26
26
  value: BigInt("2000000"),
27
- asset: { type: "erc20", assetReference: "0x456" },
27
+ asset: { type: "erc20", assetReference: "0x456", assetOwner: "address" },
28
28
  },
29
29
  ], // expected
30
30
  ],
31
- ])("should return %s", async (_, operations, tokenBalances, expected) => {
31
+ ])("returns %s", async (_, operations, tokenBalances, expected) => {
32
32
  const mockGetTokenBalance = jest
33
33
  .fn()
34
34
  .mockImplementation((_currency, _address, contractAddress) => {
@@ -41,7 +41,7 @@ describe("getBalance", () => {
41
41
  jest.spyOn(explorerModule, "getExplorerApi").mockReturnValue({
42
42
  getLastOperations: jest.fn().mockResolvedValue(operations),
43
43
  });
44
- expect(await getBalance({}, "")).toEqual(expected);
44
+ expect(await getBalance({}, "address")).toEqual(expected);
45
45
  });
46
46
  });
47
47
  //# sourceMappingURL=getBalance.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,IAAI,CAAC;QACN;YACE,qBAAqB,EAAE,mBAAmB;YAC1C,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,YAAY;YACzC,EAAE,EAAE,yBAAyB;YAC7B,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,WAAW;SACvF;QACD;YACE,2BAA2B,EAAE,mBAAmB;YAChD;gBACE,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aAC3F,EAAE,aAAa;YAChB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,iBAAiB;YAC7D;gBACE,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvE;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE;iBAClD;gBACD;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE;iBAClD;aACF,EAAE,WAAW;SACf;KACF,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;QACtE,MAAM,mBAAmB,GAAG,IAAI;aAC7B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;YAC3D,OAAO,IAAI,SAAS,CAAE,aAAqB,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,eAAe,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACrF,eAAe,EAAE,mBAAmB;SAC9B,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,eAAe,CAAC;YAC3D,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;SACpD,CAAC,CAAC;QAEV,MAAM,CAAC,MAAM,UAAU,CAAC,EAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,IAAI,CAAC;QACN;YACE,qBAAqB,EAAE,mBAAmB;YAC1C,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,YAAY;YACzC,EAAE,EAAE,yBAAyB;YAC7B,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,WAAW;SACvF;QACD;YACE,2BAA2B,EAAE,mBAAmB;YAChD;gBACE,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aAC3F,EAAE,aAAa;YAChB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,iBAAiB;YAC7D;gBACE,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACvE;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;iBACzE;gBACD;oBACE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;iBACzE;aACF,EAAE,WAAW;SACf;KACF,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;QAChE,MAAM,mBAAmB,GAAG,IAAI;aAC7B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE;YAC3D,OAAO,IAAI,SAAS,CAAE,aAAqB,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,eAAe,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACrF,eAAe,EAAE,mBAAmB;SAC9B,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,eAAe,CAAC;YAC3D,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;SACpD,CAAC,CAAC;QAEV,MAAM,CAAC,MAAM,UAAU,CAAC,EAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA4C9D,wBAAsB,cAAc,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAmBlD"}
1
+ {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,SAAS,EACT,UAAU,EACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA6C9D,wBAAsB,cAAc,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAmBlD"}
@@ -1,8 +1,9 @@
1
1
  import { getExplorerApi } from "../network/explorer";
2
- const toOperation = (assetType, op) => {
3
- const assetInfo = { type: assetType };
4
- if (assetType !== "native") {
2
+ const toOperation = (asset, op) => {
3
+ const assetInfo = { type: asset.type };
4
+ if (asset.type === "token") {
5
5
  assetInfo.assetReference = op.contract ?? "";
6
+ assetInfo.assetOwner = asset.owner;
6
7
  if (op.standard) {
7
8
  if (op.standard === "ERC721") {
8
9
  assetInfo.type = "erc721";
@@ -39,8 +40,8 @@ const toOperation = (assetType, op) => {
39
40
  export async function listOperations(currency, address, pagination) {
40
41
  const explorerApi = getExplorerApi(currency);
41
42
  const { lastCoinOperations, lastTokenOperations } = await explorerApi.getLastOperations(currency, address, `js:2:${currency.id}:${address}:`, pagination.minHeight);
42
- const nativeOperations = lastCoinOperations.map(op => toOperation("native", op));
43
- const tokenOperations = lastTokenOperations.map(op => toOperation("token", op));
43
+ const nativeOperations = lastCoinOperations.map(op => toOperation({ type: "native" }, op));
44
+ const tokenOperations = lastTokenOperations.map(op => toOperation({ type: "token", owner: address }, op));
44
45
  return [
45
46
  nativeOperations.concat(tokenOperations).filter(op => ["FEES", "IN", "OUT"].includes(op.type)),
46
47
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,GAAG,CAClB,SAA6B,EAC7B,EAAiB,EACY,EAAE;IAC/B,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAEjD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7C,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC5B,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,oBAAoB;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC;gBAC3B,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE;aACzB;YACD,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;SACd;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,OAAe,EACf,UAAsB;IAEtB,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACrF,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,UAAU,CAAC,SAAS,CACrB,CAAC;IACF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC1B,CAAC;IACF,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;IAEF,OAAO;QACL,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9F,EAAE;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,GAAG,CAClB,KAA4D,EAC5D,EAAiB,EACY,EAAE;IAC/B,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7C,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC5B,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,oBAAoB;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC;gBAC3B,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE;aACzB;YACD,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;SACd;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,OAAe,EACf,UAAsB;IAEtB,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,CACrF,QAAQ,EACR,OAAO,EACP,QAAQ,QAAQ,CAAC,EAAE,IAAI,OAAO,GAAG,EACjC,UAAU,CAAC,SAAS,CACrB,CAAC;IACF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACpC,CAAC;IACF,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAA8B,EAAE,CAAC,EAAE,CAChF,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACnD,CAAC;IAEF,OAAO;QACL,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9F,EAAE;KACH,CAAC;AACJ,CAAC"}
@@ -7,7 +7,7 @@ describe("listOperations", () => {
7
7
  it.each([
8
8
  ["an etherscan explorer", "etherscan", etherscanExplorer],
9
9
  ["a ledger explorer", "ledger", ledgerExplorer],
10
- ])("list latest operations using %s", async (_, type, explorer) => {
10
+ ])("lists latest operations using %s", async (_, type, explorer) => {
11
11
  setCoinConfig(() => ({ info: { explorer: { type } } }));
12
12
  jest.spyOn(explorer, "getLastOperations").mockResolvedValue({
13
13
  lastCoinOperations: [
@@ -102,7 +102,7 @@ describe("listOperations", () => {
102
102
  senders: ["address"],
103
103
  recipients: ["address1"],
104
104
  value: 1n,
105
- asset: { type: "erc20", assetReference: "contract-address" },
105
+ asset: { type: "erc20", assetReference: "contract-address", assetOwner: "address" },
106
106
  tx: {
107
107
  hash: "token-op-1-tx-hash",
108
108
  block: {
@@ -1 +1 @@
1
- {"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-evm",
3
- "version": "2.26.0",
3
+ "version": "2.26.1-nightly.0",
4
4
  "description": "Ledger EVM Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -55,14 +55,14 @@
55
55
  "lodash": "^4.17.21",
56
56
  "react-native-get-random-values": "^1.8.0",
57
57
  "rxjs": "^7.8.1",
58
- "@ledgerhq/coin-framework": "^6.0.0",
59
- "@ledgerhq/cryptoassets": "^13.24.0",
60
- "@ledgerhq/devices": "8.4.8",
58
+ "@ledgerhq/coin-framework": "^6.0.1-nightly.0",
59
+ "@ledgerhq/cryptoassets": "^13.24.1-nightly.0",
60
+ "@ledgerhq/devices": "8.4.9-nightly.1",
61
61
  "@ledgerhq/domain-service": "^1.2.39",
62
- "@ledgerhq/errors": "^6.23.0",
63
- "@ledgerhq/evm-tools": "^1.7.2",
64
- "@ledgerhq/live-env": "^2.13.0",
65
- "@ledgerhq/live-network": "^2.0.14",
62
+ "@ledgerhq/errors": "^6.24.0-nightly.0",
63
+ "@ledgerhq/evm-tools": "^1.7.3-nightly.0",
64
+ "@ledgerhq/live-env": "^2.14.0-nightly.0",
65
+ "@ledgerhq/live-network": "^2.0.15-nightly.0",
66
66
  "@ledgerhq/live-promise": "^0.1.1",
67
67
  "@ledgerhq/logs": "^6.13.0"
68
68
  },
@@ -81,10 +81,10 @@
81
81
  "msw": "^2.2.12",
82
82
  "prando": "^6.0.1",
83
83
  "ts-jest": "^29.1.1",
84
- "@ledgerhq/hw-app-eth": "^6.45.14",
84
+ "@ledgerhq/disable-network-setup": "^0.0.0",
85
+ "@ledgerhq/hw-app-eth": "^6.45.15-nightly.0",
85
86
  "@ledgerhq/types-cryptoassets": "^7.25.0",
86
- "@ledgerhq/types-live": "^6.80.0",
87
- "@ledgerhq/disable-network-setup": "^0.0.0"
87
+ "@ledgerhq/types-live": "^6.80.0"
88
88
  },
89
89
  "scripts": {
90
90
  "clean": "rimraf lib lib-es",
@@ -1,4 +1,5 @@
1
1
  import { AlpacaApi, FeeEstimation } from "@ledgerhq/coin-framework/lib/api/types";
2
+ import { ethers, BigNumber } from "ethers";
2
3
  import { EvmConfig } from "../config";
3
4
  import { createApi } from "./index";
4
5
 
@@ -40,10 +41,34 @@ describe.each([
40
41
  });
41
42
  });
42
43
 
43
- describe("craftTransaction", () => {
44
+ describe.each([
45
+ [
46
+ "legacy",
47
+ (transaction: ethers.Transaction): void => {
48
+ expect(transaction).toMatchObject({
49
+ type: null,
50
+ gasPrice: expect.any(ethers.BigNumber),
51
+ });
52
+ expect(transaction.gasPrice?.toBigInt()).toBeGreaterThan(0);
53
+ },
54
+ ],
55
+ [
56
+ "eip1559",
57
+ (transaction: ethers.Transaction): void => {
58
+ expect(transaction).toMatchObject({
59
+ type: 2,
60
+ gasPrice: null,
61
+ maxFeePerGas: expect.any(ethers.BigNumber),
62
+ maxPriorityFeePerGas: expect.any(ethers.BigNumber),
63
+ });
64
+ expect(transaction.maxFeePerGas?.toBigInt()).toBeGreaterThan(0);
65
+ expect(transaction.maxPriorityFeePerGas?.toBigInt()).toBeGreaterThan(0);
66
+ },
67
+ ],
68
+ ])("craftTransaction", (mode, expectTransactionForMode) => {
44
69
  it("crafts a transaction with the native asset", async () => {
45
70
  const result = await module.craftTransaction({
46
- type: "send-legacy",
71
+ type: `send-${mode}`,
47
72
  amount: 10n,
48
73
  sender: "0x9bcd841436ef4f85dacefb1aec772af71619024e",
49
74
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -52,12 +77,17 @@ describe.each([
52
77
  },
53
78
  });
54
79
 
55
- expect(result).toMatch(/^0x[A-Fa-f0-9]{72}$/);
80
+ expect(result).toMatch(/^0x[A-Fa-f0-9]+$/);
81
+ expect(ethers.utils.parseTransaction(result)).toMatchObject({
82
+ value: BigNumber.from(10),
83
+ to: "0x7b2C7232f9E38F30E2868f0E5Bf311Cd83554b5A",
84
+ });
85
+ expectTransactionForMode(ethers.utils.parseTransaction(result));
56
86
  });
57
87
 
58
88
  it("crafts a transaction with the USDC asset", async () => {
59
89
  const result = await module.craftTransaction({
60
- type: "send-legacy",
90
+ type: `send-${mode}`,
61
91
  amount: 10n,
62
92
  sender: "0x9bcd841436ef4f85dacefb1aec772af71619024e",
63
93
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -67,24 +97,52 @@ describe.each([
67
97
  },
68
98
  });
69
99
 
70
- expect(result).toMatch(/^0x[A-Fa-f0-9]{212}$/);
100
+ expect(result).toMatch(/^0x[A-Fa-f0-9]+$/);
101
+ expect(ethers.utils.parseTransaction(result)).toMatchObject({
102
+ value: BigNumber.from(0),
103
+ to: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
104
+ });
105
+ expectTransactionForMode(ethers.utils.parseTransaction(result));
71
106
  });
72
107
  });
73
108
 
74
109
  describe("getBalance", () => {
110
+ it("returns empty balance for a pristine account", async () => {
111
+ const result = await module.getBalance("0x6895Df5ed013c85B3D9D2446c227C9AfC3813551");
112
+
113
+ expect(result).toEqual([
114
+ {
115
+ value: 0n,
116
+ asset: { type: "native" },
117
+ },
118
+ ]);
119
+ });
120
+
75
121
  it("returns balance for an address", async () => {
76
122
  const result = await module.getBalance("0x9bcd841436ef4f85dacefb1aec772af71619024e");
77
123
 
78
124
  expect(result).toBeInstanceOf(Array);
79
- expect(result.length).toBeGreaterThan(0);
80
- expect(result[0]).toMatchObject({
125
+ expect(result[0]).toEqual({
81
126
  value: expect.any(BigInt),
82
127
  asset: { type: "native" },
83
128
  });
129
+ expect(result[0].value).toBeGreaterThan(0);
130
+ result.slice(1).forEach(balance => {
131
+ expect(balance.asset.type).not.toEqual("native");
132
+ expect(balance.value).toBeGreaterThanOrEqual(0);
133
+ });
84
134
  });
85
135
  });
86
136
 
87
137
  describe("listOperations", () => {
138
+ it("returns empty operation list for a pristine account", async () => {
139
+ expect(
140
+ await module.listOperations("0x6895Df5ed013c85B3D9D2446c227C9AfC3813551", {
141
+ minHeight: 200,
142
+ }),
143
+ ).toEqual([[], ""]);
144
+ });
145
+
88
146
  it("list operations for an address", async () => {
89
147
  const [result] = await module.listOperations("0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1", {
90
148
  minHeight: 200,
@@ -96,15 +154,54 @@ describe.each([
96
154
  "0xB69B37A4Fb4A18b3258f974ff6e9f529AD2647b1",
97
155
  );
98
156
  expect(op.value).toBeGreaterThanOrEqual(0n);
157
+ expect(op.tx.hash).toMatch(/^0x[A-Fa-f0-9]{64}$/);
158
+ expect(op.tx.block.hash).toMatch(/^0x[A-Fa-f0-9]{64}$/);
99
159
  expect(op.tx.block.height).toBeGreaterThanOrEqual(200);
160
+ expect(op.tx.fees).toBeGreaterThan(0);
161
+ expect(op.tx.date).toBeInstanceOf(Date);
100
162
  });
101
163
  });
102
164
  });
103
165
 
104
- describe("estimateFees", () => {
166
+ describe.each([
167
+ [
168
+ "legacy",
169
+ (estimation: FeeEstimation): void => {
170
+ expect(estimation).toEqual({
171
+ value: expect.any(BigInt),
172
+ parameters: {
173
+ gasPrice: expect.any(BigInt),
174
+ maxFeePerGas: null,
175
+ maxPriorityFeePerGas: null,
176
+ nextBaseFee: null,
177
+ },
178
+ });
179
+ expect(estimation.value).toBeGreaterThan(0);
180
+ expect(estimation.parameters?.gasPrice).toBeGreaterThan(0);
181
+ },
182
+ ],
183
+ [
184
+ "eip1559",
185
+ (estimation: FeeEstimation): void => {
186
+ expect(estimation).toEqual({
187
+ value: expect.any(BigInt),
188
+ parameters: {
189
+ gasPrice: null,
190
+ maxFeePerGas: expect.any(BigInt),
191
+ maxPriorityFeePerGas: expect.any(BigInt),
192
+ nextBaseFee: expect.any(BigInt),
193
+ },
194
+ });
195
+ expect(estimation.value).toBeGreaterThan(0);
196
+ expect(estimation.parameters?.maxFeePerGas).toBeGreaterThan(0);
197
+ expect(estimation.parameters?.maxPriorityFeePerGas).toBeGreaterThan(0);
198
+ expect(estimation.parameters?.nextBaseFee).toBeGreaterThan(0);
199
+ },
200
+ ],
201
+ ])("estimateFees for %s transaction", (mode, expectEstimationForMode) => {
105
202
  it("estimates fees for native asset transfer", async () => {
106
- const result: FeeEstimation = await module.estimateFees({
107
- type: "send-legacy",
203
+ const result = await module.estimateFees({
204
+ type: `send-${mode}`,
108
205
  amount: 100000000000000n, // 0.0001 ETH (smaller amount)
109
206
  sender: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
110
207
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -113,13 +210,12 @@ describe.each([
113
210
  },
114
211
  });
115
212
 
116
- expect(typeof result.value).toBe("bigint");
117
- expect(result.value).toBeGreaterThan(0n);
213
+ expectEstimationForMode(result);
118
214
  });
119
215
 
120
216
  it("estimates fees for USDC token transfer", async () => {
121
217
  const result = await module.estimateFees({
122
- type: "send-legacy",
218
+ type: `send-${mode}`,
123
219
  amount: 1000000n, // 1 USDC (6 decimals)
124
220
  sender: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
125
221
  recipient: "0x7b2c7232f9e38f30e2868f0e5bf311cd83554b5a",
@@ -129,8 +225,7 @@ describe.each([
129
225
  },
130
226
  });
131
227
 
132
- expect(typeof result.value).toBe("bigint");
133
- expect(result.value).toBeGreaterThan(0n);
228
+ expectEstimationForMode(result);
134
229
  });
135
230
  });
136
231
  });
package/src/api/index.ts CHANGED
@@ -7,6 +7,10 @@ import {
7
7
  Operation,
8
8
  Pagination,
9
9
  TransactionIntent,
10
+ Cursor,
11
+ Page,
12
+ Stake,
13
+ Reward,
10
14
  type AlpacaApi,
11
15
  } from "@ledgerhq/coin-framework/api/index";
12
16
  import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
@@ -51,5 +55,11 @@ export function createApi(config: EvmConfig, currencyId: CryptoCurrencyId): Alpa
51
55
  getBlockInfo(_height: number): Promise<BlockInfo> {
52
56
  throw new Error("getBlockInfo is not supported");
53
57
  },
58
+ getStakes(_address: string, _cursor?: Cursor): Promise<Page<Stake>> {
59
+ throw new Error("getStakes is not supported");
60
+ },
61
+ getRewards(_address: string, _cursor?: Cursor): Promise<Page<Reward>> {
62
+ throw new Error("getRewards is not supported");
63
+ },
54
64
  };
55
65
  }
@@ -22,15 +22,15 @@ describe("getBalance", () => {
22
22
  { value: BigInt("10000000000000000000000"), asset: { type: "native" } },
23
23
  {
24
24
  value: BigInt("1000000"),
25
- asset: { type: "erc20", assetReference: "0x123" },
25
+ asset: { type: "erc20", assetReference: "0x123", assetOwner: "address" },
26
26
  },
27
27
  {
28
28
  value: BigInt("2000000"),
29
- asset: { type: "erc20", assetReference: "0x456" },
29
+ asset: { type: "erc20", assetReference: "0x456", assetOwner: "address" },
30
30
  },
31
31
  ], // expected
32
32
  ],
33
- ])("should return %s", async (_, operations, tokenBalances, expected) => {
33
+ ])("returns %s", async (_, operations, tokenBalances, expected) => {
34
34
  const mockGetTokenBalance = jest
35
35
  .fn()
36
36
  .mockImplementation((_currency, _address, contractAddress) => {
@@ -46,6 +46,6 @@ describe("getBalance", () => {
46
46
  getLastOperations: jest.fn().mockResolvedValue(operations),
47
47
  } as any);
48
48
 
49
- expect(await getBalance({} as CryptoCurrency, "")).toEqual(expected);
49
+ expect(await getBalance({} as CryptoCurrency, "address")).toEqual(expected);
50
50
  });
51
51
  });
@@ -48,6 +48,7 @@ export async function getBalance(currency: CryptoCurrency, address: string): Pro
48
48
  asset: {
49
49
  type: assetType,
50
50
  assetReference: operation.contract,
51
+ assetOwner: address,
51
52
  },
52
53
  });
53
54
  contractAddresses.add(operation.contract);
@@ -9,7 +9,7 @@ describe("listOperations", () => {
9
9
  it.each([
10
10
  ["an etherscan explorer", "etherscan", etherscanExplorer],
11
11
  ["a ledger explorer", "ledger", ledgerExplorer],
12
- ])("list latest operations using %s", async (_, type, explorer) => {
12
+ ])("lists latest operations using %s", async (_, type, explorer) => {
13
13
  setCoinConfig(() => ({ info: { explorer: { type } } }) as unknown as EvmCoinConfig);
14
14
  jest.spyOn(explorer, "getLastOperations").mockResolvedValue({
15
15
  lastCoinOperations: [
@@ -105,7 +105,7 @@ describe("listOperations", () => {
105
105
  senders: ["address"],
106
106
  recipients: ["address1"],
107
107
  value: 1n,
108
- asset: { type: "erc20", assetReference: "contract-address" },
108
+ asset: { type: "erc20", assetReference: "contract-address", assetOwner: "address" },
109
109
  tx: {
110
110
  hash: "token-op-1-tx-hash",
111
111
  block: {
@@ -9,13 +9,14 @@ import { Operation as LiveOperation } from "@ledgerhq/types-live";
9
9
  import { getExplorerApi } from "../network/explorer";
10
10
 
11
11
  const toOperation = (
12
- assetType: "native" | "token",
12
+ asset: { type: "native" } | { type: "token"; owner: string },
13
13
  op: LiveOperation,
14
14
  ): Operation<MemoNotSupported> => {
15
- const assetInfo: AssetInfo = { type: assetType };
15
+ const assetInfo: AssetInfo = { type: asset.type };
16
16
 
17
- if (assetType !== "native") {
17
+ if (asset.type === "token") {
18
18
  assetInfo.assetReference = op.contract ?? "";
19
+ assetInfo.assetOwner = asset.owner;
19
20
  if (op.standard) {
20
21
  if (op.standard === "ERC721") {
21
22
  assetInfo.type = "erc721";
@@ -61,10 +62,10 @@ export async function listOperations(
61
62
  pagination.minHeight,
62
63
  );
63
64
  const nativeOperations = lastCoinOperations.map<Operation<MemoNotSupported>>(op =>
64
- toOperation("native", op),
65
+ toOperation({ type: "native" }, op),
65
66
  );
66
67
  const tokenOperations = lastTokenOperations.map<Operation<MemoNotSupported>>(op =>
67
- toOperation("token", op),
68
+ toOperation({ type: "token", owner: address }, op),
68
69
  );
69
70
 
70
71
  return [