@ledgerhq/coin-tezos 1.2.0 → 1.2.1-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +17 -0
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +40 -3
- package/lib/api/index.js.map +1 -1
- package/lib/api/index.test.d.ts +2 -0
- package/lib/api/index.test.d.ts.map +1 -0
- package/lib/api/index.test.js +63 -0
- package/lib/api/index.test.js.map +1 -0
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/logic/listOperations.d.ts +15 -1
- package/lib/logic/listOperations.d.ts.map +1 -1
- package/lib/logic/listOperations.js +24 -8
- package/lib/logic/listOperations.js.map +1 -1
- package/lib/logic/listOperations.test.js +15 -4
- package/lib/logic/listOperations.test.js.map +1 -1
- package/lib/network/types.d.ts +6 -0
- package/lib/network/types.d.ts.map +1 -1
- package/lib/network/tzkt.d.ts +2 -6
- package/lib/network/tzkt.d.ts.map +1 -1
- package/lib/network/tzkt.js +3 -5
- package/lib/network/tzkt.js.map +1 -1
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +40 -3
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/api/index.test.d.ts +2 -0
- package/lib-es/api/index.test.d.ts.map +1 -0
- package/lib-es/api/index.test.js +61 -0
- package/lib-es/api/index.test.js.map +1 -0
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js +2 -2
- package/lib-es/config.js.map +1 -1
- package/lib-es/logic/listOperations.d.ts +15 -1
- package/lib-es/logic/listOperations.d.ts.map +1 -1
- package/lib-es/logic/listOperations.js +24 -8
- package/lib-es/logic/listOperations.js.map +1 -1
- package/lib-es/logic/listOperations.test.js +15 -4
- package/lib-es/logic/listOperations.test.js.map +1 -1
- package/lib-es/network/types.d.ts +6 -0
- package/lib-es/network/types.d.ts.map +1 -1
- package/lib-es/network/tzkt.d.ts +2 -6
- package/lib-es/network/tzkt.d.ts.map +1 -1
- package/lib-es/network/tzkt.js +3 -5
- package/lib-es/network/tzkt.js.map +1 -1
- package/package.json +5 -5
- package/src/api/index.test.ts +67 -0
- package/src/api/index.ts +60 -3
- package/src/config.ts +2 -2
- package/src/logic/listOperations.test.ts +17 -4
- package/src/logic/listOperations.ts +30 -8
- package/src/network/types.ts +10 -0
- package/src/network/tzkt.ts +5 -11
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/coin-tezos@1.2.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
|
|
2
|
+
> @ledgerhq/coin-tezos@1.2.1-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
|
|
3
3
|
> tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @ledgerhq/coin-tezos
|
|
2
2
|
|
|
3
|
+
## 1.2.1-nightly.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`1461449`](https://github.com/LedgerHQ/ledger-live/commit/146144941c13e60182da8d79592f706d12a6f00e)]:
|
|
8
|
+
- @ledgerhq/types-cryptoassets@7.20.0-nightly.0
|
|
9
|
+
- @ledgerhq/cryptoassets@13.13.0-nightly.0
|
|
10
|
+
- @ledgerhq/coin-framework@2.1.1-nightly.0
|
|
11
|
+
- @ledgerhq/types-live@6.60.0
|
|
12
|
+
- @ledgerhq/live-network@2.0.5-nightly.0
|
|
13
|
+
|
|
14
|
+
## 1.2.1-nightly.0
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- [#9167](https://github.com/LedgerHQ/ledger-live/pull/9167) [`e50b750`](https://github.com/LedgerHQ/ledger-live/commit/e50b750a362e978046cfa2fde321ac3c3212630e) Thanks [@sprohaszka-ledger](https://github.com/sprohaszka-ledger)! - coinconfig edit
|
|
19
|
+
|
|
3
20
|
## 1.2.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
package/lib/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,GAAG,EAET,MAAM,oCAAoC,CAAC;AAC5C,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAczD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAYlD"}
|
package/lib/api/index.js
CHANGED
|
@@ -8,6 +8,7 @@ const index_1 = require("@ledgerhq/coin-framework/api/index");
|
|
|
8
8
|
const config_1 = __importDefault(require("../config"));
|
|
9
9
|
const logic_1 = require("../logic");
|
|
10
10
|
const tzkt_1 = __importDefault(require("../network/tzkt"));
|
|
11
|
+
const logs_1 = require("@ledgerhq/logs");
|
|
11
12
|
function createApi(config) {
|
|
12
13
|
config_1.default.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
|
|
13
14
|
return {
|
|
@@ -45,8 +46,44 @@ async function estimate(addr, amount) {
|
|
|
45
46
|
});
|
|
46
47
|
return estimatedFees.estimatedFees;
|
|
47
48
|
}
|
|
48
|
-
function
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
async function fetchNextPage(address, state) {
|
|
50
|
+
const [operations, newNextCursor] = await (0, logic_1.listOperations)(address, {
|
|
51
|
+
limit: state.pageSize,
|
|
52
|
+
token: state.nextCursor,
|
|
53
|
+
sort: "Ascending",
|
|
54
|
+
minHeight: state.minHeight,
|
|
55
|
+
});
|
|
56
|
+
const newCurrentIteration = state.currentIteration + 1;
|
|
57
|
+
let continueIteration = newNextCursor !== "";
|
|
58
|
+
if (newCurrentIteration >= state.maxIterations) {
|
|
59
|
+
(0, logs_1.log)("coin:tezos", "(api/operations): max iterations reached", state.maxIterations);
|
|
60
|
+
continueIteration = false;
|
|
61
|
+
}
|
|
62
|
+
const accumulated = operations.concat(state.accumulator);
|
|
63
|
+
return {
|
|
64
|
+
...state,
|
|
65
|
+
continueIterations: continueIteration,
|
|
66
|
+
currentIteration: newCurrentIteration,
|
|
67
|
+
nextCursor: newNextCursor,
|
|
68
|
+
accumulator: accumulated,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
async function operationsFromHeight(address, start) {
|
|
72
|
+
const firstState = {
|
|
73
|
+
pageSize: 200,
|
|
74
|
+
maxIterations: 10,
|
|
75
|
+
currentIteration: 0,
|
|
76
|
+
minHeight: start,
|
|
77
|
+
continueIterations: true,
|
|
78
|
+
accumulator: [],
|
|
79
|
+
};
|
|
80
|
+
let state = await fetchNextPage(address, firstState);
|
|
81
|
+
while (state.continueIterations) {
|
|
82
|
+
state = await fetchNextPage(address, state);
|
|
83
|
+
}
|
|
84
|
+
return [state.accumulator, state.nextCursor || ""];
|
|
85
|
+
}
|
|
86
|
+
async function operations(address, { minHeight }) {
|
|
87
|
+
return operationsFromHeight(address, minHeight);
|
|
51
88
|
}
|
|
52
89
|
//# sourceMappingURL=index.js.map
|
package/lib/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("./index");
|
|
4
|
+
const logicGetTransactions = jest.fn();
|
|
5
|
+
jest.mock("../logic", () => ({
|
|
6
|
+
listOperations: async () => {
|
|
7
|
+
return logicGetTransactions();
|
|
8
|
+
},
|
|
9
|
+
}));
|
|
10
|
+
const api = (0, index_1.createApi)({
|
|
11
|
+
baker: {
|
|
12
|
+
url: "https://baker.example.com",
|
|
13
|
+
},
|
|
14
|
+
explorer: {
|
|
15
|
+
url: "foo",
|
|
16
|
+
maxTxQuery: 1,
|
|
17
|
+
},
|
|
18
|
+
node: {
|
|
19
|
+
url: "bar",
|
|
20
|
+
},
|
|
21
|
+
fees: {
|
|
22
|
+
minGasLimit: 1,
|
|
23
|
+
minRevealGasLimit: 1,
|
|
24
|
+
minStorageLimit: 1,
|
|
25
|
+
minFees: 1,
|
|
26
|
+
minEstimatedFees: 2,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
describe("get operations", () => {
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
logicGetTransactions.mockClear();
|
|
32
|
+
});
|
|
33
|
+
it("could return no operation", async () => {
|
|
34
|
+
logicGetTransactions.mockResolvedValue([[], ""]);
|
|
35
|
+
const [operations, token] = await api.listOperations("addr", { minHeight: 100 });
|
|
36
|
+
expect(operations).toEqual([]);
|
|
37
|
+
expect(token).toEqual("");
|
|
38
|
+
});
|
|
39
|
+
const op = {
|
|
40
|
+
hash: "opHash",
|
|
41
|
+
address: "tz1...",
|
|
42
|
+
type: "transaction",
|
|
43
|
+
value: BigInt(1000),
|
|
44
|
+
fee: BigInt(100),
|
|
45
|
+
block: {
|
|
46
|
+
hash: "blockHash",
|
|
47
|
+
height: 123456,
|
|
48
|
+
time: new Date(),
|
|
49
|
+
},
|
|
50
|
+
senders: ["tz1Sender"],
|
|
51
|
+
recipients: ["tz1Recipient"],
|
|
52
|
+
date: new Date(),
|
|
53
|
+
transactionSequenceNumber: 1,
|
|
54
|
+
};
|
|
55
|
+
it("stops iterating after 10 iterations", async () => {
|
|
56
|
+
logicGetTransactions.mockResolvedValue([[op], "888"]);
|
|
57
|
+
const [operations, token] = await api.listOperations("addr", { minHeight: 100 });
|
|
58
|
+
expect(logicGetTransactions).toHaveBeenCalledTimes(10);
|
|
59
|
+
expect(operations.length).toBe(10);
|
|
60
|
+
expect(token).toEqual("888");
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":";;AACA,mCAAoC;AAEpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACvC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,cAAc,EAAE,KAAK,IAAI,EAAE;QACzB,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,GAAG,GAAG,IAAA,iBAAS,EAAC;IACpB,KAAK,EAAE;QACL,GAAG,EAAE,2BAA2B;KACjC;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,CAAC;KACd;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,KAAK;KACX;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,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,GAAc;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;QAChB,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,EAAE;SACjB;QACD,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,yBAAyB,EAAE,CAAC;KAC7B,CAAC;IAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEvF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3D,QAAA,MAAM,UAAU;;;CAAqC,CAAC;AAEtD,eAAe,UAAU,CAAC"}
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAAA,6EAAuF;AAwBvF,MAAM,UAAU,GAAG,IAAA,gBAAe,GAAmB,CAAC;AAEtD,kBAAe,UAAU,CAAC"}
|
|
@@ -14,8 +14,22 @@ export type Operation = {
|
|
|
14
14
|
date: Date;
|
|
15
15
|
transactionSequenceNumber: number;
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Returns list of "Transfer", "Delegate" and "Undelegate" Operations associated to an account.
|
|
19
|
+
* @param address Account address
|
|
20
|
+
* @param limit the maximum number of operations to return. Beware that's a weak limit, as explorers might not respect it.
|
|
21
|
+
* @param order whether to return operations starting from the top block or from the oldest block.
|
|
22
|
+
* "Descending" returns newest operation first, "Ascending" returns oldest operation first.
|
|
23
|
+
* It doesn't control the order of the operations in the result list:
|
|
24
|
+
* operations are always returned sorted in descending order (newest first).
|
|
25
|
+
* @param minHeight retrieve operations from a specific block height until top most (inclusive).
|
|
26
|
+
* @param token a token to be used for pagination
|
|
27
|
+
* @returns a list of operations is descending (newest first) order and a token to be used for pagination
|
|
28
|
+
*/
|
|
29
|
+
export declare function listOperations(address: string, { token, limit, sort, minHeight, }: {
|
|
18
30
|
limit?: number;
|
|
19
31
|
token?: string;
|
|
32
|
+
sort: "Ascending" | "Descending";
|
|
33
|
+
minHeight: number;
|
|
20
34
|
}): Promise<[Operation[], string]>;
|
|
21
35
|
//# sourceMappingURL=listOperations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EACE,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzF,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAkBhC"}
|
|
@@ -4,20 +4,36 @@ exports.listOperations = listOperations;
|
|
|
4
4
|
const network_1 = require("../network");
|
|
5
5
|
const logs_1 = require("@ledgerhq/logs");
|
|
6
6
|
const types_1 = require("../network/types");
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Returns list of "Transfer", "Delegate" and "Undelegate" Operations associated to an account.
|
|
9
|
+
* @param address Account address
|
|
10
|
+
* @param limit the maximum number of operations to return. Beware that's a weak limit, as explorers might not respect it.
|
|
11
|
+
* @param order whether to return operations starting from the top block or from the oldest block.
|
|
12
|
+
* "Descending" returns newest operation first, "Ascending" returns oldest operation first.
|
|
13
|
+
* It doesn't control the order of the operations in the result list:
|
|
14
|
+
* operations are always returned sorted in descending order (newest first).
|
|
15
|
+
* @param minHeight retrieve operations from a specific block height until top most (inclusive).
|
|
16
|
+
* @param token a token to be used for pagination
|
|
17
|
+
* @returns a list of operations is descending (newest first) order and a token to be used for pagination
|
|
18
|
+
*/
|
|
19
|
+
async function listOperations(address, { token, limit, sort, minHeight, }) {
|
|
20
|
+
let options = { limit, sort, "level.ge": minHeight };
|
|
9
21
|
if (token) {
|
|
10
22
|
options = { ...options, lastId: JSON.parse(token) };
|
|
11
23
|
}
|
|
12
24
|
const operations = await network_1.tzkt.getAccountOperations(address, options);
|
|
13
25
|
const lastOperation = operations.slice(-1)[0];
|
|
26
|
+
// it's important to get the last id from the **unfiltered** operation list
|
|
27
|
+
// otherwise we might miss operations
|
|
14
28
|
const nextToken = lastOperation ? JSON.stringify(lastOperation?.id) : "";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
29
|
+
const filteredOperations = operations
|
|
30
|
+
.filter(op => (0, types_1.isAPITransactionType)(op) || (0, types_1.isAPIDelegationType)(op))
|
|
31
|
+
.reduce((acc, op) => acc.concat(convertOperation(address, op)), []);
|
|
32
|
+
if (sort === "Ascending") {
|
|
33
|
+
//results are always sorted in descending order
|
|
34
|
+
filteredOperations.reverse();
|
|
35
|
+
}
|
|
36
|
+
return [filteredOperations, nextToken];
|
|
21
37
|
}
|
|
22
38
|
// note that "initiator" of APITransactionType is never used in the conversion
|
|
23
39
|
function convertOperation(address, operation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ jest.mock("../network", () => ({
|
|
|
9
9
|
},
|
|
10
10
|
},
|
|
11
11
|
}));
|
|
12
|
+
const options = {
|
|
13
|
+
sort: "Ascending",
|
|
14
|
+
minHeight: 0,
|
|
15
|
+
};
|
|
12
16
|
describe("listOperations", () => {
|
|
13
17
|
afterEach(() => {
|
|
14
18
|
mockNetworkGetTransactions.mockClear();
|
|
@@ -17,7 +21,7 @@ describe("listOperations", () => {
|
|
|
17
21
|
// Given
|
|
18
22
|
mockNetworkGetTransactions.mockResolvedValue([]);
|
|
19
23
|
// When
|
|
20
|
-
const [results, token] = await (0, listOperations_1.listOperations)("any address",
|
|
24
|
+
const [results, token] = await (0, listOperations_1.listOperations)("any address", options);
|
|
21
25
|
// Then
|
|
22
26
|
expect(results).toEqual([]);
|
|
23
27
|
expect(token).toEqual("");
|
|
@@ -57,7 +61,7 @@ describe("listOperations", () => {
|
|
|
57
61
|
// Given
|
|
58
62
|
mockNetworkGetTransactions.mockResolvedValue([operation]);
|
|
59
63
|
// When
|
|
60
|
-
const [results, token] = await (0, listOperations_1.listOperations)("any address",
|
|
64
|
+
const [results, token] = await (0, listOperations_1.listOperations)("any address", options);
|
|
61
65
|
// Then
|
|
62
66
|
expect(results.length).toEqual(1);
|
|
63
67
|
expect(results[0].recipients).toEqual([someDestinationAddress]);
|
|
@@ -70,7 +74,7 @@ describe("listOperations", () => {
|
|
|
70
74
|
// Given
|
|
71
75
|
mockNetworkGetTransactions.mockResolvedValue([operation]);
|
|
72
76
|
// When
|
|
73
|
-
const [results, token] = await (0, listOperations_1.listOperations)("any address",
|
|
77
|
+
const [results, token] = await (0, listOperations_1.listOperations)("any address", options);
|
|
74
78
|
// Then
|
|
75
79
|
expect(results.length).toEqual(1);
|
|
76
80
|
expect(results[0].recipients).toEqual([]);
|
|
@@ -81,11 +85,18 @@ describe("listOperations", () => {
|
|
|
81
85
|
const operation = { ...undelegate, sender: null };
|
|
82
86
|
mockNetworkGetTransactions.mockResolvedValue([operation]);
|
|
83
87
|
// When
|
|
84
|
-
const [results, token] = await (0, listOperations_1.listOperations)("any address",
|
|
88
|
+
const [results, token] = await (0, listOperations_1.listOperations)("any address", options);
|
|
85
89
|
// Then
|
|
86
90
|
expect(results.length).toEqual(1);
|
|
87
91
|
expect(results[0].senders).toEqual([]);
|
|
88
92
|
expect(token).toEqual(JSON.stringify(operation.id));
|
|
89
93
|
});
|
|
94
|
+
it("should order the results in descending order even if the sort option is set to ascending", async () => {
|
|
95
|
+
const op1 = { ...undelegate, level: "1" };
|
|
96
|
+
const op2 = { ...undelegate, level: "2" };
|
|
97
|
+
mockNetworkGetTransactions.mockResolvedValue([op1, op2]);
|
|
98
|
+
const [results, _] = await (0, listOperations_1.listOperations)("any address", options);
|
|
99
|
+
expect(results.map(op => op.block.height)).toEqual(["2", "1"]);
|
|
100
|
+
});
|
|
90
101
|
});
|
|
91
102
|
//# sourceMappingURL=listOperations.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":";;AAAA,qDAAkD;AAGlD,MAAM,0BAA0B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,EAAE;QACJ,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC/B,OAAO,0BAA0B,EAAE,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,0BAA0B,CAAC,SAAS,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,QAAQ;QACR,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO;QACP,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,+BAAc,EAAC,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"listOperations.test.js","sourceRoot":"","sources":["../../src/logic/listOperations.test.ts"],"names":[],"mappings":"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"}
|
package/lib/network/types.d.ts
CHANGED
|
@@ -65,6 +65,12 @@ export type APIDelegationType = CommonOperationType & {
|
|
|
65
65
|
} | undefined | null;
|
|
66
66
|
};
|
|
67
67
|
export declare function isAPIDelegationType(op: APIOperation): op is APIDelegationType;
|
|
68
|
+
export type AccountsGetOperationsOptions = {
|
|
69
|
+
lastId?: number;
|
|
70
|
+
limit?: number;
|
|
71
|
+
sort?: "Descending" | "Ascending";
|
|
72
|
+
"level.ge": number;
|
|
73
|
+
};
|
|
68
74
|
export type APIOperation = APITransactionType | (CommonOperationType & {
|
|
69
75
|
type: "reveal";
|
|
70
76
|
}) | APIDelegationType | (CommonOperationType & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/network/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEN,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/C,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,EAAE,IAAI,kBAAkB,CAE/E;AACD,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI,CAAC;IACrD,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI,CAAC;CACrD,CAAC;AACF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,EAAE,IAAI,iBAAiB,CAE7E;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/network/types.ts"],"names":[],"mappings":"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"}
|
package/lib/network/tzkt.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { APIAccount, APIOperation } from "./types";
|
|
1
|
+
import { APIAccount, APIOperation, AccountsGetOperationsOptions } from "./types";
|
|
2
2
|
declare const api: {
|
|
3
3
|
getBlockCount(): Promise<number>;
|
|
4
4
|
getLastBlock(): Promise<{
|
|
@@ -7,11 +7,7 @@ declare const api: {
|
|
|
7
7
|
date: Date;
|
|
8
8
|
}>;
|
|
9
9
|
getAccountByAddress(address: string): Promise<APIAccount>;
|
|
10
|
-
getAccountOperations(address: string, query:
|
|
11
|
-
lastId?: number;
|
|
12
|
-
sort?: number;
|
|
13
|
-
limit?: number;
|
|
14
|
-
}): Promise<APIOperation[]>;
|
|
10
|
+
getAccountOperations(address: string, query: AccountsGetOperationsOptions): Promise<APIOperation[]>;
|
|
15
11
|
};
|
|
16
12
|
export declare const fetchAllTransactions: (address: string, lastId?: number) => Promise<APIOperation[]>;
|
|
17
13
|
export default api;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tzkt.d.ts","sourceRoot":"","sources":["../../src/network/tzkt.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAY,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"tzkt.d.ts","sourceRoot":"","sources":["../../src/network/tzkt.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAY,YAAY,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAI3F,QAAA,MAAM,GAAG;qBACgB,OAAO,CAAC,MAAM,CAAC;oBAMhB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;iCAcvC,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;kCAQpD,MAAM,SACR,4BAA4B,GAClC,OAAO,CAAC,YAAY,EAAE,CAAC;CAa3B,CAAC;AAGF,eAAO,MAAM,oBAAoB,YACtB,MAAM,WACN,MAAM,KACd,OAAO,CAAC,YAAY,EAAE,CAoBxB,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
package/lib/network/tzkt.js
CHANGED
|
@@ -48,17 +48,15 @@ const api = {
|
|
|
48
48
|
return data;
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
|
-
|
|
52
|
-
ascending: 0,
|
|
53
|
-
descending: 1,
|
|
54
|
-
};
|
|
51
|
+
// TODO this has same purpose as api/listOperations
|
|
55
52
|
const fetchAllTransactions = async (address, lastId) => {
|
|
56
53
|
let ops = [];
|
|
57
54
|
let maxIteration = config_1.default.getCoinConfig().explorer.maxTxQuery;
|
|
58
55
|
do {
|
|
59
56
|
const newOps = await api.getAccountOperations(address, {
|
|
60
57
|
lastId,
|
|
61
|
-
sort:
|
|
58
|
+
sort: "Ascending",
|
|
59
|
+
"level.ge": 0,
|
|
62
60
|
});
|
|
63
61
|
if (newOps.length === 0)
|
|
64
62
|
return ops;
|
package/lib/network/tzkt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tzkt.js","sourceRoot":"","sources":["../../src/network/tzkt.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,yCAAqC;AACrC,0EAA6C;AAC7C,uDAAmC;AAGnC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,gBAAU,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;AAErE,MAAM,GAAG,GAAG;IACV,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAAS;YACrC,GAAG,EAAE,GAAG,cAAc,EAAE,kBAAkB;SAC3C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAAa;YACzC,GAAG,EAAE,GAAG,cAAc,EAAE,YAAY;YACpC,MAAM,EAAE;gBACN,WAAW,EAAE,OAAO;aACrB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAClB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;YACpB,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SAClC,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,sBAAO,EAAa;YACzC,GAAG,EAAE,GAAG,cAAc,EAAE,gBAAgB,OAAO,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wDAAwD;IACxD,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"tzkt.js","sourceRoot":"","sources":["../../src/network/tzkt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,GAAG,EAET,MAAM,oCAAoC,CAAC;AAC5C,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAczD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAYlD"}
|
package/lib-es/api/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { IncorrectTypeError, } from "@ledgerhq/coin-framework/api/index";
|
|
|
2
2
|
import coinConfig from "../config";
|
|
3
3
|
import { broadcast, combine, craftTransaction, estimateFees, getBalance, listOperations, lastBlock, rawEncode, } from "../logic";
|
|
4
4
|
import api from "../network/tzkt";
|
|
5
|
+
import { log } from "@ledgerhq/logs";
|
|
5
6
|
export function createApi(config) {
|
|
6
7
|
coinConfig.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
|
|
7
8
|
return {
|
|
@@ -39,8 +40,44 @@ async function estimate(addr, amount) {
|
|
|
39
40
|
});
|
|
40
41
|
return estimatedFees.estimatedFees;
|
|
41
42
|
}
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
async function fetchNextPage(address, state) {
|
|
44
|
+
const [operations, newNextCursor] = await listOperations(address, {
|
|
45
|
+
limit: state.pageSize,
|
|
46
|
+
token: state.nextCursor,
|
|
47
|
+
sort: "Ascending",
|
|
48
|
+
minHeight: state.minHeight,
|
|
49
|
+
});
|
|
50
|
+
const newCurrentIteration = state.currentIteration + 1;
|
|
51
|
+
let continueIteration = newNextCursor !== "";
|
|
52
|
+
if (newCurrentIteration >= state.maxIterations) {
|
|
53
|
+
log("coin:tezos", "(api/operations): max iterations reached", state.maxIterations);
|
|
54
|
+
continueIteration = false;
|
|
55
|
+
}
|
|
56
|
+
const accumulated = operations.concat(state.accumulator);
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
59
|
+
continueIterations: continueIteration,
|
|
60
|
+
currentIteration: newCurrentIteration,
|
|
61
|
+
nextCursor: newNextCursor,
|
|
62
|
+
accumulator: accumulated,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async function operationsFromHeight(address, start) {
|
|
66
|
+
const firstState = {
|
|
67
|
+
pageSize: 200,
|
|
68
|
+
maxIterations: 10,
|
|
69
|
+
currentIteration: 0,
|
|
70
|
+
minHeight: start,
|
|
71
|
+
continueIterations: true,
|
|
72
|
+
accumulator: [],
|
|
73
|
+
};
|
|
74
|
+
let state = await fetchNextPage(address, firstState);
|
|
75
|
+
while (state.continueIterations) {
|
|
76
|
+
state = await fetchNextPage(address, state);
|
|
77
|
+
}
|
|
78
|
+
return [state.accumulator, state.nextCursor || ""];
|
|
79
|
+
}
|
|
80
|
+
async function operations(address, { minHeight }) {
|
|
81
|
+
return operationsFromHeight(address, minHeight);
|
|
45
82
|
}
|
|
46
83
|
//# sourceMappingURL=index.js.map
|
package/lib-es/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { createApi } from "./index";
|
|
2
|
+
const logicGetTransactions = jest.fn();
|
|
3
|
+
jest.mock("../logic", () => ({
|
|
4
|
+
listOperations: async () => {
|
|
5
|
+
return logicGetTransactions();
|
|
6
|
+
},
|
|
7
|
+
}));
|
|
8
|
+
const api = createApi({
|
|
9
|
+
baker: {
|
|
10
|
+
url: "https://baker.example.com",
|
|
11
|
+
},
|
|
12
|
+
explorer: {
|
|
13
|
+
url: "foo",
|
|
14
|
+
maxTxQuery: 1,
|
|
15
|
+
},
|
|
16
|
+
node: {
|
|
17
|
+
url: "bar",
|
|
18
|
+
},
|
|
19
|
+
fees: {
|
|
20
|
+
minGasLimit: 1,
|
|
21
|
+
minRevealGasLimit: 1,
|
|
22
|
+
minStorageLimit: 1,
|
|
23
|
+
minFees: 1,
|
|
24
|
+
minEstimatedFees: 2,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
describe("get operations", () => {
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
logicGetTransactions.mockClear();
|
|
30
|
+
});
|
|
31
|
+
it("could return no operation", async () => {
|
|
32
|
+
logicGetTransactions.mockResolvedValue([[], ""]);
|
|
33
|
+
const [operations, token] = await api.listOperations("addr", { minHeight: 100 });
|
|
34
|
+
expect(operations).toEqual([]);
|
|
35
|
+
expect(token).toEqual("");
|
|
36
|
+
});
|
|
37
|
+
const op = {
|
|
38
|
+
hash: "opHash",
|
|
39
|
+
address: "tz1...",
|
|
40
|
+
type: "transaction",
|
|
41
|
+
value: BigInt(1000),
|
|
42
|
+
fee: BigInt(100),
|
|
43
|
+
block: {
|
|
44
|
+
hash: "blockHash",
|
|
45
|
+
height: 123456,
|
|
46
|
+
time: new Date(),
|
|
47
|
+
},
|
|
48
|
+
senders: ["tz1Sender"],
|
|
49
|
+
recipients: ["tz1Recipient"],
|
|
50
|
+
date: new Date(),
|
|
51
|
+
transactionSequenceNumber: 1,
|
|
52
|
+
};
|
|
53
|
+
it("stops iterating after 10 iterations", async () => {
|
|
54
|
+
logicGetTransactions.mockResolvedValue([[op], "888"]);
|
|
55
|
+
const [operations, token] = await api.listOperations("addr", { minHeight: 100 });
|
|
56
|
+
expect(logicGetTransactions).toHaveBeenCalledTimes(10);
|
|
57
|
+
expect(operations.length).toBe(10);
|
|
58
|
+
expect(token).toEqual("888");
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACvC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,cAAc,EAAE,KAAK,IAAI,EAAE;QACzB,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,EAAE;QACL,GAAG,EAAE,2BAA2B;KACjC;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,KAAK;QACV,UAAU,EAAE,CAAC;KACd;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,KAAK;KACX;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,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,GAAc;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;QAChB,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,EAAE;SACjB;QACD,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,yBAAyB,EAAE,CAAC;KAC7B,CAAC;IAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib-es/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEvF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3D,QAAA,MAAM,UAAU;;;CAAqC,CAAC;AAEtD,eAAe,UAAU,CAAC"}
|