@ledgerhq/coin-cardano 0.13.0-nightly.6 → 0.13.0-nightly.8

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 (66) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +27 -0
  3. package/lib/bridge/index.d.ts.map +1 -1
  4. package/lib/bridge/index.js +1 -0
  5. package/lib/bridge/index.js.map +1 -1
  6. package/lib-es/bridge/index.d.ts.map +1 -1
  7. package/lib-es/bridge/index.js +1 -0
  8. package/lib-es/bridge/index.js.map +1 -1
  9. package/package.json +6 -6
  10. package/src/bridge/index.ts +1 -0
  11. package/lib/address.unit.test.d.ts +0 -2
  12. package/lib/address.unit.test.d.ts.map +0 -1
  13. package/lib/address.unit.test.js +0 -21
  14. package/lib/address.unit.test.js.map +0 -1
  15. package/lib/bridge.integration.test.d.ts +0 -4
  16. package/lib/bridge.integration.test.d.ts.map +0 -1
  17. package/lib/bridge.integration.test.js +0 -120
  18. package/lib/bridge.integration.test.js.map +0 -1
  19. package/lib/buildTransaction.test.d.ts +0 -2
  20. package/lib/buildTransaction.test.d.ts.map +0 -1
  21. package/lib/buildTransaction.test.js +0 -172
  22. package/lib/buildTransaction.test.js.map +0 -1
  23. package/lib/getTransactionStatus/getTransactionStatus.test.d.ts +0 -2
  24. package/lib/getTransactionStatus/getTransactionStatus.test.d.ts.map +0 -1
  25. package/lib/getTransactionStatus/getTransactionStatus.test.js +0 -149
  26. package/lib/getTransactionStatus/getTransactionStatus.test.js.map +0 -1
  27. package/lib/getTransactionStatus/handler.test.d.ts +0 -2
  28. package/lib/getTransactionStatus/handler.test.d.ts.map +0 -1
  29. package/lib/getTransactionStatus/handler.test.js +0 -51
  30. package/lib/getTransactionStatus/handler.test.js.map +0 -1
  31. package/lib/logic.unit.test.d.ts +0 -2
  32. package/lib/logic.unit.test.d.ts.map +0 -1
  33. package/lib/logic.unit.test.js +0 -55
  34. package/lib/logic.unit.test.js.map +0 -1
  35. package/lib/synchronisation.unit.test.d.ts +0 -2
  36. package/lib/synchronisation.unit.test.d.ts.map +0 -1
  37. package/lib/synchronisation.unit.test.js +0 -150
  38. package/lib/synchronisation.unit.test.js.map +0 -1
  39. package/lib-es/address.unit.test.d.ts +0 -2
  40. package/lib-es/address.unit.test.d.ts.map +0 -1
  41. package/lib-es/address.unit.test.js +0 -19
  42. package/lib-es/address.unit.test.js.map +0 -1
  43. package/lib-es/bridge.integration.test.d.ts +0 -4
  44. package/lib-es/bridge.integration.test.d.ts.map +0 -1
  45. package/lib-es/bridge.integration.test.js +0 -114
  46. package/lib-es/bridge.integration.test.js.map +0 -1
  47. package/lib-es/buildTransaction.test.d.ts +0 -2
  48. package/lib-es/buildTransaction.test.d.ts.map +0 -1
  49. package/lib-es/buildTransaction.test.js +0 -167
  50. package/lib-es/buildTransaction.test.js.map +0 -1
  51. package/lib-es/getTransactionStatus/getTransactionStatus.test.d.ts +0 -2
  52. package/lib-es/getTransactionStatus/getTransactionStatus.test.d.ts.map +0 -1
  53. package/lib-es/getTransactionStatus/getTransactionStatus.test.js +0 -121
  54. package/lib-es/getTransactionStatus/getTransactionStatus.test.js.map +0 -1
  55. package/lib-es/getTransactionStatus/handler.test.d.ts +0 -2
  56. package/lib-es/getTransactionStatus/handler.test.d.ts.map +0 -1
  57. package/lib-es/getTransactionStatus/handler.test.js +0 -26
  58. package/lib-es/getTransactionStatus/handler.test.js.map +0 -1
  59. package/lib-es/logic.unit.test.d.ts +0 -2
  60. package/lib-es/logic.unit.test.d.ts.map +0 -1
  61. package/lib-es/logic.unit.test.js +0 -50
  62. package/lib-es/logic.unit.test.js.map +0 -1
  63. package/lib-es/synchronisation.unit.test.d.ts +0 -2
  64. package/lib-es/synchronisation.unit.test.d.ts.map +0 -1
  65. package/lib-es/synchronisation.unit.test.js +0 -145
  66. package/lib-es/synchronisation.unit.test.js.map +0 -1
@@ -1,167 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { getCardanoTestnetAccount } from "./fixtures/accounts";
3
- import { buildTransaction } from "./buildTransaction";
4
- import { types as TyphonTypes } from "@stricahq/typhonjs";
5
- import { getProtocolParams } from "./fixtures/protocolParams";
6
- describe("buildTransaction", () => {
7
- const txPayload = {
8
- family: "cardano",
9
- recipient: "addr_test1qz7jw975stagnvs00wsjny6y6gpazn86yvwcm2vy02j3up7mt68vuzvz4nzgs00x0shrgywvy674v6r2zcs8fxvvq27qfjq8np",
10
- amount: new BigNumber(2e6),
11
- mode: "send",
12
- poolId: undefined,
13
- protocolParams: getProtocolParams(),
14
- };
15
- describe("certificates", () => {
16
- it("should not add abstain when there is no delegation", async () => {
17
- // account with no delegation
18
- const account = getCardanoTestnetAccount({ delegation: undefined });
19
- const transaction = await buildTransaction(account, txPayload);
20
- const certificates = transaction.getCertificates();
21
- expect(certificates).toEqual([]);
22
- });
23
- it("should not add abstain when there is no rewards", async () => {
24
- const account = getCardanoTestnetAccount({
25
- delegation: {
26
- dRepHex: undefined,
27
- rewards: new BigNumber(0), // no rewards
28
- },
29
- });
30
- const transaction = await buildTransaction(account, txPayload);
31
- const certificates = transaction.getCertificates();
32
- expect(certificates).toEqual([]);
33
- });
34
- it("should not add abstain vote when dRepHex is present", async () => {
35
- const account = getCardanoTestnetAccount({
36
- delegation: {
37
- dRepHex: "drepHex", // drepHex present
38
- rewards: new BigNumber(10e6),
39
- },
40
- });
41
- const transaction = await buildTransaction(account, txPayload);
42
- const certificates = transaction.getCertificates();
43
- expect(certificates).toEqual([]);
44
- });
45
- it("should add abstain when drepHex is absent and rewards is available", async () => {
46
- const account = getCardanoTestnetAccount({
47
- delegation: {
48
- dRepHex: undefined, // drepHex absent
49
- rewards: new BigNumber(10e6), // rewards available
50
- },
51
- });
52
- const transaction = await buildTransaction(account, txPayload);
53
- const certificates = transaction.getCertificates();
54
- expect(certificates.some(c => c.type === TyphonTypes.CertificateType.VOTE_DELEGATION &&
55
- c.cert.dRep.type === TyphonTypes.DRepType.ABSTAIN)).toBe(true);
56
- });
57
- });
58
- describe("withdrawals", () => {
59
- it("should not add withdrawal when there is no delegation", async () => {
60
- const account = getCardanoTestnetAccount({ delegation: undefined });
61
- const transaction = await buildTransaction(account, txPayload);
62
- const withdrawals = transaction.getWithdrawals();
63
- expect(withdrawals.length).toBe(0);
64
- });
65
- it("should not add withdrawal if no rewards", async () => {
66
- const account = getCardanoTestnetAccount({
67
- delegation: {
68
- rewards: new BigNumber(0), // no rewards
69
- },
70
- });
71
- const transaction = await buildTransaction(account, txPayload);
72
- const withdrawals = transaction.getWithdrawals();
73
- expect(withdrawals.length).toBe(0);
74
- });
75
- it("should not add withdrawal when dRepHex is absent", async () => {
76
- const account = getCardanoTestnetAccount({
77
- delegation: {
78
- dRepHex: undefined, // drepHex absent
79
- rewards: new BigNumber(10e6), // rewards available
80
- },
81
- });
82
- const transaction = await buildTransaction(account, txPayload);
83
- const withdrawals = transaction.getWithdrawals();
84
- expect(withdrawals.length).toBe(0);
85
- });
86
- it("should add withdrawal when dRepHex and rewards both are available", async () => {
87
- const account = getCardanoTestnetAccount({
88
- delegation: {
89
- dRepHex: "drepHex", // drepHex present
90
- rewards: new BigNumber(10e6), // rewards available
91
- },
92
- });
93
- const transaction = await buildTransaction(account, txPayload);
94
- const withdrawals = transaction.getWithdrawals();
95
- expect(withdrawals.length).toBe(1);
96
- });
97
- });
98
- describe("undelegate transaction", () => {
99
- it("should build a undelegate transaction with correct deposit", async () => {
100
- const account = getCardanoTestnetAccount({
101
- delegation: {
102
- status: true,
103
- deposit: (3e6).toString(),
104
- rewards: new BigNumber(0),
105
- },
106
- });
107
- const txPayloadUndelegate = {
108
- family: "cardano",
109
- recipient: "",
110
- amount: new BigNumber(0),
111
- mode: "undelegate",
112
- poolId: undefined,
113
- protocolParams: getProtocolParams(),
114
- };
115
- const transaction = await buildTransaction(account, txPayloadUndelegate);
116
- const deregisterCertificate = transaction
117
- .getCertificates()
118
- .find(c => c.type === TyphonTypes.CertificateType.STAKE_KEY_DE_REGISTRATION);
119
- expect(deregisterCertificate).toBeDefined();
120
- expect(deregisterCertificate.cert.deposit.toString()).toBe(account.cardanoResources.delegation?.deposit);
121
- });
122
- });
123
- describe("delegate transaction", () => {
124
- it("should build delegate transaction with stake key registration", async () => {
125
- const account = getCardanoTestnetAccount({
126
- delegation: undefined, // stake key not registered
127
- });
128
- const txPayloadDelegate = {
129
- family: "cardano",
130
- recipient: "",
131
- amount: new BigNumber(0),
132
- mode: "delegate",
133
- poolId: "7df262feae9201d1b2e32d4c825ca91b29fbafb2b8e556f6efb7f549",
134
- protocolParams: getProtocolParams(),
135
- };
136
- const transaction = await buildTransaction(account, txPayloadDelegate);
137
- const registerCertificate = transaction
138
- .getCertificates()
139
- .find(c => c.type === TyphonTypes.CertificateType.STAKE_KEY_REGISTRATION);
140
- expect(registerCertificate).toBeDefined();
141
- expect(registerCertificate.cert.deposit.toString()).toBe(transaction.protocolParams.stakeKeyDeposit.toString());
142
- });
143
- it("should build delegate transaction without stake key registration", async () => {
144
- const account = getCardanoTestnetAccount({
145
- delegation: {
146
- status: true, // stake key already registered
147
- deposit: (2e6).toString(),
148
- rewards: new BigNumber(0),
149
- },
150
- });
151
- const txPayloadDelegate = {
152
- family: "cardano",
153
- recipient: "",
154
- amount: new BigNumber(0),
155
- mode: "delegate",
156
- poolId: "7df262feae9201d1b2e32d4c825ca91b29fbafb2b8e556f6efb7f549",
157
- protocolParams: getProtocolParams(),
158
- };
159
- const transaction = await buildTransaction(account, txPayloadDelegate);
160
- const registerCertificate = transaction
161
- .getCertificates()
162
- .find(c => c.type === TyphonTypes.CertificateType.STAKE_KEY_REGISTRATION);
163
- expect(registerCertificate).toBeUndefined();
164
- });
165
- });
166
- });
167
- //# sourceMappingURL=buildTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildTransaction.test.js","sourceRoot":"","sources":["../src/buildTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getTransactionStatus.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../src/getTransactionStatus/getTransactionStatus.test.ts"],"names":[],"mappings":""}
@@ -1,121 +0,0 @@
1
- /* eslint @typescript-eslint/consistent-type-assertions: 0 */
2
- import BigNumber from "bignumber.js";
3
- import { getTransactionStatus } from "./getTransactionStatus";
4
- import * as sanction from "@ledgerhq/coin-framework/sanction/index";
5
- import { AddressesSanctionedError } from "@ledgerhq/coin-framework/sanction/errors";
6
- import * as mode from "./handler";
7
- import coinConfig from "../config";
8
- describe("getTransactionStatus", () => {
9
- it("should return not enough funds error when there are no utxos", async () => {
10
- const initialAccount = {
11
- pendingOperations: [],
12
- cardanoResources: {
13
- utxos: [],
14
- },
15
- };
16
- const sendTx = {
17
- amount: new BigNumber(1000000),
18
- recipient: "addr1qxqm3nxwzf70ke9jqa2zrtrevjznpv6yykptxnv34perjc8a7zgxmpv5pgk4hhhe0m9kfnlsf5pt7d2ahkxaul2zygrq3nura9",
19
- mode: "send",
20
- family: "cardano",
21
- poolId: undefined,
22
- };
23
- const sendTxRes = await getTransactionStatus(initialAccount, sendTx);
24
- expect(sendTxRes.errors.amount.name).toBe("CardanoNotEnoughFunds");
25
- const delegateTx = {
26
- amount: new BigNumber(0),
27
- recipient: "",
28
- mode: "delegate",
29
- family: "cardano",
30
- poolId: "d0f48f07e4e5eb8040a988085f7ea3bd32d71a2e2998d53e9bbc959a",
31
- };
32
- const delegateTxRes = await getTransactionStatus(initialAccount, delegateTx);
33
- expect(delegateTxRes.errors.amount.name).toBe("CardanoNotEnoughFunds");
34
- const undelegateTx = {
35
- amount: new BigNumber(0),
36
- recipient: "",
37
- mode: "undelegate",
38
- family: "cardano",
39
- poolId: undefined,
40
- };
41
- const undelegateTxRes = await getTransactionStatus(initialAccount, undelegateTx);
42
- expect(undelegateTxRes.errors.amount.name).toBe("CardanoNotEnoughFunds");
43
- });
44
- it("should return as sender error only sanctioned utxo addresses", async () => {
45
- const sanctionedAddresses = [
46
- "addr1eKHLg16K8UTAak8srh6LiTRufkT2uziFKekkfZBxcRNMED",
47
- "addr1UvY42XTJHMPHDEDch9UWagjhipLjke37Uqm7qzfcSkdPHT",
48
- ];
49
- jest.spyOn(sanction, "isAddressSanctioned").mockImplementation((_, address) => {
50
- return Promise.resolve(sanctionedAddresses.includes(address));
51
- });
52
- const utxos = [
53
- {
54
- address: "addr1eKHLg16K8UTAak8srh6LiTRufkT2uziFKekkfZBxcRNMED",
55
- },
56
- {
57
- address: "addr1UvY42XTJHMPHDEDch9UWagjhipLjke37Uqm7qzfcSkdPHT",
58
- },
59
- {
60
- address: "addr1QDz6DDTAk5CNig91MNxgTKXUpYoAbz6WnyZ7AztJUXsDDK",
61
- },
62
- {
63
- address: "addr1Fwc4rtTcbrhmcq3iqDJZULdyxU8nJmam3Jx6oknhY5Jqm2",
64
- },
65
- ];
66
- const account = {
67
- pendingOperations: [],
68
- cardanoResources: {
69
- utxos: utxos,
70
- },
71
- };
72
- const transaction = {};
73
- const status = await getTransactionStatus(account, transaction);
74
- expect(status.errors).toEqual({
75
- sender: new AddressesSanctionedError("AddressesSanctionedError", {
76
- addresses: sanctionedAddresses,
77
- }),
78
- });
79
- });
80
- it("should return as no sender error when no utxo address is sanctioned", async () => {
81
- const maxFeesWarning = BigNumber(1000000);
82
- jest.spyOn(coinConfig, "getCoinConfig").mockReturnValue({
83
- maxFeesWarning: maxFeesWarning,
84
- maxFeesError: maxFeesWarning.multipliedBy(2),
85
- });
86
- jest.spyOn(mode, "getTransactionStatusByTransactionMode").mockResolvedValue({
87
- errors: {},
88
- warnings: {},
89
- amount: BigNumber(0),
90
- totalSpent: BigNumber(0),
91
- estimatedFees: maxFeesWarning,
92
- });
93
- jest.spyOn(sanction, "isAddressSanctioned").mockResolvedValue(false);
94
- const utxos = [
95
- {
96
- address: "addr1eKHLg16K8UTAak8srh6LiTRufkT2uziFKekkfZBxcRNMED",
97
- },
98
- {
99
- address: "addr1UvY42XTJHMPHDEDch9UWagjhipLjke37Uqm7qzfcSkdPHT",
100
- },
101
- {
102
- address: "addr1QDz6DDTAk5CNig91MNxgTKXUpYoAbz6WnyZ7AztJUXsDDK",
103
- },
104
- {
105
- address: "addr1Fwc4rtTcbrhmcq3iqDJZULdyxU8nJmam3Jx6oknhY5Jqm2",
106
- },
107
- ];
108
- const account = {
109
- pendingOperations: [],
110
- cardanoResources: {
111
- utxos: utxos,
112
- },
113
- };
114
- const transaction = {
115
- mode: "send",
116
- };
117
- const status = await getTransactionStatus(account, transaction);
118
- expect(status.errors).toEqual({});
119
- });
120
- });
121
- //# sourceMappingURL=getTransactionStatus.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../src/getTransactionStatus/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=handler.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.test.d.ts","sourceRoot":"","sources":["../../src/getTransactionStatus/handler.test.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- /* eslint @typescript-eslint/consistent-type-assertions: 0 */
2
- import * as delegate from "./delegate";
3
- import * as send from "./send";
4
- import { getTransactionStatusByTransactionMode } from "./handler";
5
- import * as undelegate from "./undelegate";
6
- jest.mock("./delegate");
7
- jest.mock("./send");
8
- jest.mock("./undelegate");
9
- describe("getTransactionStatusByMode on Cardano", () => {
10
- const sendMock = send.getSendTransactionStatus;
11
- const delegateMock = delegate.getDelegateTransactionStatus;
12
- const undelegateMock = undelegate.getUndelegateTransactionStatus;
13
- describe("should redirect to the correct mode handler", () => {
14
- test.each([
15
- ["send", sendMock],
16
- ["delegate", delegateMock],
17
- ["undelegate", undelegateMock],
18
- ])("for %s", async (mode, mock) => {
19
- const account = {};
20
- const transaction = { mode: mode };
21
- await getTransactionStatusByTransactionMode(account, transaction);
22
- expect(mock).toHaveBeenCalledWith(account, transaction);
23
- });
24
- });
25
- });
26
- //# sourceMappingURL=handler.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.test.js","sourceRoot":"","sources":["../../src/getTransactionStatus/handler.test.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,qCAAqC,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAG3C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAE1B,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAqC,CAAC;IAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,4BAAyC,CAAC;IACxE,MAAM,cAAc,GAAG,UAAU,CAAC,8BAA2C,CAAC;IAE9E,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAC3D,IAAI,CAAC,IAAI,CAAC;YACR,CAAC,MAAM,EAAE,QAAQ,CAAC;YAClB,CAAC,UAAU,EAAE,YAAY,CAAC;YAC1B,CAAC,YAAY,EAAE,cAAc,CAAC;SAC/B,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,EAA+B,CAAC;YAChD,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,IAAI,EAA4B,CAAC;YAE7D,MAAM,qCAAqC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAElE,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=logic.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logic.unit.test.d.ts","sourceRoot":"","sources":["../src/logic.unit.test.ts"],"names":[],"mappings":""}
@@ -1,50 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { canStake, isAlreadyStaking, isValidNumString } from "./logic";
3
- describe("canStake", () => {
4
- it("should return false when acc has no funds", () => {
5
- const accWithNoFunds = {
6
- balance: new BigNumber(0),
7
- };
8
- expect(canStake(accWithNoFunds)).toEqual(false);
9
- });
10
- it("should return true when acc has funds", () => {
11
- const accWithFunds = {
12
- balance: new BigNumber(1),
13
- };
14
- expect(canStake(accWithFunds)).toEqual(true);
15
- });
16
- });
17
- describe("isAlreadyStaking", () => {
18
- it("should return false when acc isn't delegating", () => {
19
- const noResourcesAcc = {};
20
- expect(isAlreadyStaking(noResourcesAcc)).toEqual(false);
21
- const noDelegationAcc = {
22
- cardanoResources: {},
23
- };
24
- expect(isAlreadyStaking(noDelegationAcc)).toEqual(false);
25
- const noPoolIdAcc = { cardanoResources: { delegation: {} } };
26
- expect(isAlreadyStaking(noPoolIdAcc)).toEqual(false);
27
- });
28
- it("should return true when acc is delegating", () => {
29
- const noResourcesAcc = {
30
- cardanoResources: { delegation: { poolId: "itspoolid" } },
31
- };
32
- expect(isAlreadyStaking(noResourcesAcc)).toEqual(true);
33
- });
34
- });
35
- describe("isValidNumString", () => {
36
- it("should return false for invalid number", () => {
37
- expect(isValidNumString("")).toEqual(false);
38
- expect(isValidNumString(undefined)).toEqual(false);
39
- expect(isValidNumString(null)).toEqual(false);
40
- expect(isValidNumString({})).toEqual(false);
41
- expect(isValidNumString([])).toEqual(false);
42
- });
43
- it("should return true for valid number", () => {
44
- expect(isValidNumString(123)).toEqual(true);
45
- expect(isValidNumString(123.321)).toEqual(true);
46
- expect(isValidNumString("123")).toEqual(true);
47
- expect(isValidNumString("123.321")).toEqual(true);
48
- });
49
- });
50
- //# sourceMappingURL=logic.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logic.unit.test.js","sourceRoot":"","sources":["../src/logic.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=synchronisation.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.unit.test.d.ts","sourceRoot":"","sources":["../src/synchronisation.unit.test.ts"],"names":[],"mappings":""}
@@ -1,145 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { getDelegationInfo } from "./api/getDelegationInfo";
3
- import { makeGetAccountShape } from "./synchronisation";
4
- import { getTransactions } from "./api/getTransactions";
5
- import { buildSubAccounts } from "./buildSubAccounts";
6
- import { fetchNetworkInfo } from "./api/getNetworkInfo";
7
- jest.mock("./buildSubAccounts");
8
- jest.mock("./api/getTransactions");
9
- jest.mock("./api/getNetworkInfo");
10
- jest.mock("./api/getDelegationInfo");
11
- describe("makeGetAccountShape", () => {
12
- let signerContext;
13
- let shape;
14
- let accountShapeInfo;
15
- let getTransactionsMock;
16
- beforeEach(() => {
17
- const pubKeyMock = {
18
- chainCodeHex: "chainCodeHex",
19
- publicKeyHex: "publicKeyHex",
20
- };
21
- const fakeSigner = {
22
- getAddress: jest.fn(),
23
- sign: jest.fn(),
24
- getPublicKey: jest.fn().mockResolvedValue(pubKeyMock),
25
- };
26
- signerContext = (_, fn) => fn(fakeSigner);
27
- shape = makeGetAccountShape(signerContext);
28
- accountShapeInfo = {
29
- currency: { id: "cardano" },
30
- address: "add",
31
- index: 0,
32
- initialAccount: {
33
- cardanoResources: {
34
- utxos: [
35
- {
36
- hash: "hash",
37
- index: 0,
38
- address: "addr",
39
- amount: new BigNumber(1),
40
- tokens: [],
41
- paymentCredential: {
42
- key: "key",
43
- path: {
44
- purpose: 1852,
45
- coin: 1815,
46
- account: 0,
47
- chain: 0,
48
- index: 0,
49
- },
50
- },
51
- },
52
- ],
53
- },
54
- },
55
- derivationPath: "",
56
- derivationMode: "cardano",
57
- deviceId: "id",
58
- };
59
- const buildSubAccountsMock = jest.mocked(buildSubAccounts);
60
- buildSubAccountsMock.mockReturnValue([]);
61
- getTransactionsMock = jest.mocked(getTransactions);
62
- const getNetworkInfoMock = jest.mocked(fetchNetworkInfo);
63
- getNetworkInfoMock.mockReturnValue(Promise.resolve({ protocolParams: { lovelacePerUtxoWord: "1" } }));
64
- });
65
- afterEach(() => {
66
- jest.resetAllMocks();
67
- });
68
- describe("balance", () => {
69
- it("should return 0 balance when there is no utxos", async () => {
70
- getTransactionsMock.mockReturnValue(Promise.resolve({
71
- transactions: [],
72
- externalCredentials: [
73
- { path: { index: 0 }, networkId: "id", isUsed: false, key: "" },
74
- ],
75
- internalCredentials: [],
76
- blockHeight: 0,
77
- }));
78
- const result = await shape(accountShapeInfo, { paginationConfig: {} });
79
- expect(result.balance).toEqual(new BigNumber(0));
80
- });
81
- it("should return the sum of utxos with delegation reward value", async () => {
82
- getTransactionsMock.mockReturnValue(Promise.resolve({
83
- transactions: [],
84
- externalCredentials: [
85
- { path: { index: 0 }, networkId: "id", isUsed: false, key: "" },
86
- ],
87
- internalCredentials: [
88
- {
89
- isUsed: true,
90
- key: "cred",
91
- },
92
- ],
93
- blockHeight: 0,
94
- }));
95
- const getDelegationInfoMock = jest.mocked(getDelegationInfo);
96
- getDelegationInfoMock.mockReturnValue(Promise.resolve({ rewards: new BigNumber(42) }));
97
- const result = await shape(accountShapeInfo, { paginationConfig: {} });
98
- expect(result.balance).toEqual(new BigNumber(42));
99
- });
100
- });
101
- describe("spendableBalance", () => {
102
- it("should return 0 spendable balance when there is no utxos", async () => {
103
- const getTransactionsMock = jest.mocked(getTransactions);
104
- getTransactionsMock.mockReturnValue(Promise.resolve({
105
- transactions: [],
106
- externalCredentials: [
107
- {
108
- isUsed: false,
109
- key: "00000000000000000000000000000000000000000000000000000000",
110
- path: {
111
- purpose: 1852,
112
- coin: 1815,
113
- account: 0,
114
- chain: 0,
115
- index: 0,
116
- },
117
- },
118
- ],
119
- internalCredentials: [],
120
- }));
121
- const result = await shape(accountShapeInfo, { paginationConfig: {} });
122
- expect(result.spendableBalance).toEqual(new BigNumber(0));
123
- });
124
- // it("should return the sum of utxos minus ada minimum for tokens", async () => {});
125
- });
126
- describe("delegation", () => {
127
- it("should check dRepHex and rewards are available", async () => {
128
- getTransactionsMock.mockReturnValue(Promise.resolve({
129
- blockHeight: 0,
130
- transactions: [],
131
- externalCredentials: [{ isUsed: false, key: "0", path: {} }],
132
- internalCredentials: [],
133
- }));
134
- const getDelegationInfoMock = jest.mocked(getDelegationInfo);
135
- getDelegationInfoMock.mockReturnValue(Promise.resolve({
136
- rewards: new BigNumber(10),
137
- dRepHex: "dRepHex",
138
- }));
139
- const result = await shape(accountShapeInfo, { paginationConfig: {} });
140
- expect(result.cardanoResources?.delegation?.dRepHex).toEqual("dRepHex");
141
- expect(result.cardanoResources?.delegation?.rewards).toEqual(new BigNumber(10));
142
- });
143
- });
144
- });
145
- //# sourceMappingURL=synchronisation.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.unit.test.js","sourceRoot":"","sources":["../src/synchronisation.unit.test.ts"],"names":[],"mappings":"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"}