@ledgerhq/coin-casper 2.2.0 → 2.2.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.
- package/CHANGELOG.md +9 -0
- package/package.json +6 -6
- package/lib/api/index.integ.test.d.ts +0 -2
- package/lib/api/index.integ.test.d.ts.map +0 -1
- package/lib/api/index.integ.test.js +0 -53
- package/lib/api/index.integ.test.js.map +0 -1
- package/lib/api/index.test.d.ts +0 -2
- package/lib/api/index.test.d.ts.map +0 -1
- package/lib/api/index.test.js +0 -274
- package/lib/api/index.test.js.map +0 -1
- package/lib/bridge/bridgeHelpers/accountShape.test.d.ts +0 -2
- package/lib/bridge/bridgeHelpers/accountShape.test.d.ts.map +0 -1
- package/lib/bridge/bridgeHelpers/accountShape.test.js +0 -94
- package/lib/bridge/bridgeHelpers/accountShape.test.js.map +0 -1
- package/lib/bridge/bridgeHelpers/txn.test.d.ts +0 -2
- package/lib/bridge/bridgeHelpers/txn.test.d.ts.map +0 -1
- package/lib/bridge/bridgeHelpers/txn.test.js +0 -306
- package/lib/bridge/bridgeHelpers/txn.test.js.map +0 -1
- package/lib/bridge/broadcast.test.d.ts +0 -2
- package/lib/bridge/broadcast.test.d.ts.map +0 -1
- package/lib/bridge/broadcast.test.js +0 -72
- package/lib/bridge/broadcast.test.js.map +0 -1
- package/lib/bridge/buildOptimisticOperation.test.d.ts +0 -2
- package/lib/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
- package/lib/bridge/buildOptimisticOperation.test.js +0 -76
- package/lib/bridge/buildOptimisticOperation.test.js.map +0 -1
- package/lib/bridge/createTransaction.test.d.ts +0 -2
- package/lib/bridge/createTransaction.test.d.ts.map +0 -1
- package/lib/bridge/createTransaction.test.js +0 -41
- package/lib/bridge/createTransaction.test.js.map +0 -1
- package/lib/bridge/deviceTransactionConfig.test.d.ts +0 -2
- package/lib/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
- package/lib/bridge/deviceTransactionConfig.test.js +0 -148
- package/lib/bridge/deviceTransactionConfig.test.js.map +0 -1
- package/lib/bridge/estimateMaxSpendable.test.d.ts +0 -2
- package/lib/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
- package/lib/bridge/estimateMaxSpendable.test.js +0 -133
- package/lib/bridge/estimateMaxSpendable.test.js.map +0 -1
- package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
- package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
- package/lib/bridge/getTransactionStatus.test.js +0 -214
- package/lib/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib/bridge/prepareTransaction.test.d.ts +0 -2
- package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
- package/lib/bridge/prepareTransaction.test.js +0 -159
- package/lib/bridge/prepareTransaction.test.js.map +0 -1
- package/lib/bridge/transaction.test.d.ts +0 -2
- package/lib/bridge/transaction.test.d.ts.map +0 -1
- package/lib/bridge/transaction.test.js +0 -179
- package/lib/bridge/transaction.test.js.map +0 -1
- package/lib/common-logic/utils.additional.test.d.ts +0 -2
- package/lib/common-logic/utils.additional.test.d.ts.map +0 -1
- package/lib/common-logic/utils.additional.test.js +0 -58
- package/lib/common-logic/utils.additional.test.js.map +0 -1
- package/lib/common-logic/utils.unit.test.d.ts +0 -2
- package/lib/common-logic/utils.unit.test.d.ts.map +0 -1
- package/lib/common-logic/utils.unit.test.js +0 -52
- package/lib/common-logic/utils.unit.test.js.map +0 -1
- package/lib/hw-signMessage.test.d.ts +0 -2
- package/lib/hw-signMessage.test.d.ts.map +0 -1
- package/lib/hw-signMessage.test.js +0 -80
- package/lib/hw-signMessage.test.js.map +0 -1
- package/lib/signer/getAddress.test.d.ts +0 -2
- package/lib/signer/getAddress.test.d.ts.map +0 -1
- package/lib/signer/getAddress.test.js +0 -133
- package/lib/signer/getAddress.test.js.map +0 -1
- package/lib-es/api/index.integ.test.d.ts +0 -2
- package/lib-es/api/index.integ.test.d.ts.map +0 -1
- package/lib-es/api/index.integ.test.js +0 -51
- package/lib-es/api/index.integ.test.js.map +0 -1
- package/lib-es/api/index.test.d.ts +0 -2
- package/lib-es/api/index.test.d.ts.map +0 -1
- package/lib-es/api/index.test.js +0 -269
- package/lib-es/api/index.test.js.map +0 -1
- package/lib-es/bridge/bridgeHelpers/accountShape.test.d.ts +0 -2
- package/lib-es/bridge/bridgeHelpers/accountShape.test.d.ts.map +0 -1
- package/lib-es/bridge/bridgeHelpers/accountShape.test.js +0 -89
- package/lib-es/bridge/bridgeHelpers/accountShape.test.js.map +0 -1
- package/lib-es/bridge/bridgeHelpers/txn.test.d.ts +0 -2
- package/lib-es/bridge/bridgeHelpers/txn.test.d.ts.map +0 -1
- package/lib-es/bridge/bridgeHelpers/txn.test.js +0 -278
- package/lib-es/bridge/bridgeHelpers/txn.test.js.map +0 -1
- package/lib-es/bridge/broadcast.test.d.ts +0 -2
- package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
- package/lib-es/bridge/broadcast.test.js +0 -70
- package/lib-es/bridge/broadcast.test.js.map +0 -1
- package/lib-es/bridge/buildOptimisticOperation.test.d.ts +0 -2
- package/lib-es/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
- package/lib-es/bridge/buildOptimisticOperation.test.js +0 -74
- package/lib-es/bridge/buildOptimisticOperation.test.js.map +0 -1
- package/lib-es/bridge/createTransaction.test.d.ts +0 -2
- package/lib-es/bridge/createTransaction.test.d.ts.map +0 -1
- package/lib-es/bridge/createTransaction.test.js +0 -36
- package/lib-es/bridge/createTransaction.test.js.map +0 -1
- package/lib-es/bridge/deviceTransactionConfig.test.d.ts +0 -2
- package/lib-es/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
- package/lib-es/bridge/deviceTransactionConfig.test.js +0 -143
- package/lib-es/bridge/deviceTransactionConfig.test.js.map +0 -1
- package/lib-es/bridge/estimateMaxSpendable.test.d.ts +0 -2
- package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
- package/lib-es/bridge/estimateMaxSpendable.test.js +0 -131
- package/lib-es/bridge/estimateMaxSpendable.test.js.map +0 -1
- package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
- package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
- package/lib-es/bridge/getTransactionStatus.test.js +0 -212
- package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
- package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
- package/lib-es/bridge/prepareTransaction.test.js +0 -157
- package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
- package/lib-es/bridge/transaction.test.d.ts +0 -2
- package/lib-es/bridge/transaction.test.d.ts.map +0 -1
- package/lib-es/bridge/transaction.test.js +0 -154
- package/lib-es/bridge/transaction.test.js.map +0 -1
- package/lib-es/common-logic/utils.additional.test.d.ts +0 -2
- package/lib-es/common-logic/utils.additional.test.d.ts.map +0 -1
- package/lib-es/common-logic/utils.additional.test.js +0 -56
- package/lib-es/common-logic/utils.additional.test.js.map +0 -1
- package/lib-es/common-logic/utils.unit.test.d.ts +0 -2
- package/lib-es/common-logic/utils.unit.test.d.ts.map +0 -1
- package/lib-es/common-logic/utils.unit.test.js +0 -50
- package/lib-es/common-logic/utils.unit.test.js.map +0 -1
- package/lib-es/hw-signMessage.test.d.ts +0 -2
- package/lib-es/hw-signMessage.test.d.ts.map +0 -1
- package/lib-es/hw-signMessage.test.js +0 -78
- package/lib-es/hw-signMessage.test.js.map +0 -1
- package/lib-es/signer/getAddress.test.d.ts +0 -2
- package/lib-es/signer/getAddress.test.d.ts.map +0 -1
- package/lib-es/signer/getAddress.test.js +0 -105
- package/lib-es/signer/getAddress.test.js.map +0 -1
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { log } from "@ledgerhq/logs";
|
|
2
|
-
import getDeviceTransactionConfig from "./deviceTransactionConfig";
|
|
3
|
-
import { createMockAccount, createMockTransaction } from "../test/fixtures";
|
|
4
|
-
import { CASPER_NETWORK } from "../consts";
|
|
5
|
-
import { methodToString } from "../common-logic";
|
|
6
|
-
import BigNumber from "bignumber.js";
|
|
7
|
-
// Mock the log function to prevent console output during tests
|
|
8
|
-
jest.mock("@ledgerhq/logs", () => ({
|
|
9
|
-
log: jest.fn(),
|
|
10
|
-
}));
|
|
11
|
-
/**
|
|
12
|
-
* Tests for the getDeviceTransactionConfig function
|
|
13
|
-
* Validates the correct display fields are generated for Ledger devices
|
|
14
|
-
*/
|
|
15
|
-
describe("getDeviceTransactionConfig", () => {
|
|
16
|
-
// Common test objects
|
|
17
|
-
const MOCK_AMOUNT = new BigNumber("1000000000"); // 1 CSPR
|
|
18
|
-
const TRANSFER_ID = "12345678";
|
|
19
|
-
/**
|
|
20
|
-
* Creates a mock transaction status for testing
|
|
21
|
-
* @returns A valid TransactionStatus object
|
|
22
|
-
*/
|
|
23
|
-
const createMockStatus = () => ({
|
|
24
|
-
errors: {},
|
|
25
|
-
warnings: {},
|
|
26
|
-
estimatedFees: new BigNumber(0),
|
|
27
|
-
amount: new BigNumber(0),
|
|
28
|
-
totalSpent: new BigNumber(0),
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Helper to get config fields
|
|
32
|
-
*/
|
|
33
|
-
const getConfigFields = (transaction, account = createMockAccount()) => getDeviceTransactionConfig({
|
|
34
|
-
account,
|
|
35
|
-
parentAccount: null,
|
|
36
|
-
transaction,
|
|
37
|
-
status: createMockStatus(),
|
|
38
|
-
});
|
|
39
|
-
beforeEach(() => {
|
|
40
|
-
jest.clearAllMocks();
|
|
41
|
-
});
|
|
42
|
-
test("should display chain ID, transaction type and amount fields for standard transactions", () => {
|
|
43
|
-
// Create mock transaction
|
|
44
|
-
const mockTransaction = createMockTransaction({
|
|
45
|
-
amount: MOCK_AMOUNT,
|
|
46
|
-
});
|
|
47
|
-
// Get display fields
|
|
48
|
-
const fields = getConfigFields(mockTransaction);
|
|
49
|
-
// Verify the results
|
|
50
|
-
expect(fields).toHaveLength(4);
|
|
51
|
-
// Check Type field
|
|
52
|
-
expect(fields[0]).toEqual({
|
|
53
|
-
type: "text",
|
|
54
|
-
label: "Type",
|
|
55
|
-
value: methodToString(0), // 0 = "transfer"
|
|
56
|
-
});
|
|
57
|
-
// Check Chain ID field
|
|
58
|
-
expect(fields[1]).toEqual({
|
|
59
|
-
type: "text",
|
|
60
|
-
label: "Chain ID",
|
|
61
|
-
value: CASPER_NETWORK,
|
|
62
|
-
});
|
|
63
|
-
// Check Fee field
|
|
64
|
-
expect(fields[2]).toEqual({
|
|
65
|
-
type: "casper.extendedAmount",
|
|
66
|
-
label: "Fee",
|
|
67
|
-
value: new BigNumber(100000000),
|
|
68
|
-
});
|
|
69
|
-
// Check Amount field
|
|
70
|
-
expect(fields[3]).toEqual({
|
|
71
|
-
type: "casper.extendedAmount",
|
|
72
|
-
label: "Amount",
|
|
73
|
-
value: MOCK_AMOUNT,
|
|
74
|
-
});
|
|
75
|
-
// Verify logging
|
|
76
|
-
expect(log).toHaveBeenCalledWith("debug", expect.stringContaining("Transaction config"));
|
|
77
|
-
});
|
|
78
|
-
test("should include transferId field when provided in transaction", () => {
|
|
79
|
-
// Create mock transaction with transferId
|
|
80
|
-
const mockTransaction = createMockTransaction({
|
|
81
|
-
amount: MOCK_AMOUNT,
|
|
82
|
-
transferId: TRANSFER_ID,
|
|
83
|
-
});
|
|
84
|
-
// Get display fields
|
|
85
|
-
const fields = getConfigFields(mockTransaction);
|
|
86
|
-
// Verify the results
|
|
87
|
-
expect(fields).toHaveLength(5); // Chain ID, Type, Amount, Transfer ID fields
|
|
88
|
-
// Check all fields are present
|
|
89
|
-
const fieldLabels = fields.map(field => field.label);
|
|
90
|
-
expect(fieldLabels).toEqual(["Type", "Chain ID", "Fee", "Amount", "Transfer ID"]);
|
|
91
|
-
// Check Transfer ID field specifically
|
|
92
|
-
expect(fields[4]).toEqual({
|
|
93
|
-
type: "text",
|
|
94
|
-
label: "Transfer ID",
|
|
95
|
-
value: TRANSFER_ID,
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
test("should not include transferId field when undefined in transaction", () => {
|
|
99
|
-
// Create mock transaction with explicitly undefined transferId
|
|
100
|
-
const mockTransaction = createMockTransaction({
|
|
101
|
-
amount: MOCK_AMOUNT,
|
|
102
|
-
transferId: undefined,
|
|
103
|
-
});
|
|
104
|
-
// Get display fields
|
|
105
|
-
const fields = getConfigFields(mockTransaction);
|
|
106
|
-
// Verify no transferId field is present
|
|
107
|
-
expect(fields).toHaveLength(4);
|
|
108
|
-
expect(fields.map(field => field.label)).not.toContain("Transfer ID");
|
|
109
|
-
});
|
|
110
|
-
test("should handle zero amount transactions correctly", () => {
|
|
111
|
-
// Create mock transaction with zero amount
|
|
112
|
-
const mockTransaction = createMockTransaction({
|
|
113
|
-
amount: new BigNumber(0),
|
|
114
|
-
});
|
|
115
|
-
// Get display fields
|
|
116
|
-
const fields = getConfigFields(mockTransaction);
|
|
117
|
-
// Verify amount field has zero value
|
|
118
|
-
const amountField = fields.find(field => field.label === "Amount");
|
|
119
|
-
expect(amountField).toBeDefined();
|
|
120
|
-
expect(amountField).toEqual({
|
|
121
|
-
type: "casper.extendedAmount",
|
|
122
|
-
label: "Amount",
|
|
123
|
-
value: new BigNumber(0),
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
test("should maintain consistent order of fields regardless of transaction properties", () => {
|
|
127
|
-
// Create two transactions - one with transferId, one without
|
|
128
|
-
const txWithTransferId = createMockTransaction({
|
|
129
|
-
amount: MOCK_AMOUNT,
|
|
130
|
-
transferId: TRANSFER_ID,
|
|
131
|
-
});
|
|
132
|
-
const txWithoutTransferId = createMockTransaction({
|
|
133
|
-
amount: MOCK_AMOUNT,
|
|
134
|
-
});
|
|
135
|
-
const fieldsWithId = getConfigFields(txWithTransferId);
|
|
136
|
-
const fieldsWithoutId = getConfigFields(txWithoutTransferId);
|
|
137
|
-
// Verify field order consistency for common fields
|
|
138
|
-
for (let i = 0; i < fieldsWithoutId.length; i++) {
|
|
139
|
-
expect(fieldsWithId[i].label).toEqual(fieldsWithoutId[i].label);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=deviceTransactionConfig.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTransactionConfig.test.js","sourceRoot":"","sources":["../../src/bridge/deviceTransactionConfig.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"estimateMaxSpendable.test.d.ts","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from "bignumber.js";
|
|
2
|
-
import { estimateMaxSpendable } from "./estimateMaxSpendable";
|
|
3
|
-
import { getEstimatedFees } from "./bridgeHelpers/fee";
|
|
4
|
-
import { createMockAccount } from "../test/fixtures";
|
|
5
|
-
// Mock the fee helper
|
|
6
|
-
jest.mock("./bridgeHelpers/fee", () => ({
|
|
7
|
-
getEstimatedFees: jest.fn().mockReturnValue(new BigNumber(1000000)),
|
|
8
|
-
}));
|
|
9
|
-
describe("estimateMaxSpendable", () => {
|
|
10
|
-
const mockAccount = {
|
|
11
|
-
id: "casper:0:testAccount",
|
|
12
|
-
type: "Account",
|
|
13
|
-
spendableBalance: new BigNumber(10000000),
|
|
14
|
-
};
|
|
15
|
-
afterEach(() => {
|
|
16
|
-
jest.clearAllMocks();
|
|
17
|
-
});
|
|
18
|
-
test("should return zero when balance is zero", async () => {
|
|
19
|
-
const zeroBalanceAccount = {
|
|
20
|
-
...mockAccount,
|
|
21
|
-
spendableBalance: new BigNumber(0),
|
|
22
|
-
};
|
|
23
|
-
const result = await estimateMaxSpendable({
|
|
24
|
-
account: zeroBalanceAccount,
|
|
25
|
-
parentAccount: undefined,
|
|
26
|
-
});
|
|
27
|
-
expect(result.toNumber()).toBe(0);
|
|
28
|
-
expect(getEstimatedFees).not.toHaveBeenCalled();
|
|
29
|
-
});
|
|
30
|
-
test("should return balance minus fees when no transaction is provided", async () => {
|
|
31
|
-
const result = await estimateMaxSpendable({
|
|
32
|
-
account: mockAccount,
|
|
33
|
-
parentAccount: undefined,
|
|
34
|
-
});
|
|
35
|
-
const expectedFees = new BigNumber(1000000);
|
|
36
|
-
const expectedMaxSpendable = mockAccount.spendableBalance.minus(expectedFees);
|
|
37
|
-
expect(result.toString()).toBe(expectedMaxSpendable.toString());
|
|
38
|
-
expect(getEstimatedFees).toHaveBeenCalled();
|
|
39
|
-
});
|
|
40
|
-
test("should use transaction fees when transaction is provided", async () => {
|
|
41
|
-
const transactionFees = new BigNumber(500000);
|
|
42
|
-
const mockTransaction = {
|
|
43
|
-
fees: transactionFees,
|
|
44
|
-
};
|
|
45
|
-
const result = await estimateMaxSpendable({
|
|
46
|
-
account: mockAccount,
|
|
47
|
-
parentAccount: undefined,
|
|
48
|
-
transaction: mockTransaction,
|
|
49
|
-
});
|
|
50
|
-
const expectedMaxSpendable = mockAccount.spendableBalance.minus(transactionFees);
|
|
51
|
-
expect(result.toString()).toBe(expectedMaxSpendable.toString());
|
|
52
|
-
expect(getEstimatedFees).not.toHaveBeenCalled();
|
|
53
|
-
});
|
|
54
|
-
test("should return zero when balance is less than fees", async () => {
|
|
55
|
-
const lowBalanceAccount = {
|
|
56
|
-
...mockAccount,
|
|
57
|
-
spendableBalance: new BigNumber(500000), // Less than default fee of 1000000
|
|
58
|
-
};
|
|
59
|
-
const result = await estimateMaxSpendable({
|
|
60
|
-
account: lowBalanceAccount,
|
|
61
|
-
parentAccount: undefined,
|
|
62
|
-
});
|
|
63
|
-
expect(result.toString()).toBe("0");
|
|
64
|
-
});
|
|
65
|
-
test("should use main account when parentAccount is provided", async () => {
|
|
66
|
-
const parentAccount = {
|
|
67
|
-
id: "casper:parent",
|
|
68
|
-
spendableBalance: new BigNumber(0),
|
|
69
|
-
};
|
|
70
|
-
const result = await estimateMaxSpendable({
|
|
71
|
-
account: mockAccount,
|
|
72
|
-
parentAccount: parentAccount,
|
|
73
|
-
});
|
|
74
|
-
const expectedFees = new BigNumber(1000000);
|
|
75
|
-
const expectedMaxSpendable = mockAccount.spendableBalance.minus(expectedFees);
|
|
76
|
-
expect(result.toString()).toBe(expectedMaxSpendable.toString());
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
// Add test cases from fixtures
|
|
80
|
-
describe("estimateMaxSpendable with standard test cases", () => {
|
|
81
|
-
const standardFees = new BigNumber("1000000");
|
|
82
|
-
beforeEach(() => {
|
|
83
|
-
getEstimatedFees.mockReturnValue(standardFees);
|
|
84
|
-
});
|
|
85
|
-
test.each([
|
|
86
|
-
{
|
|
87
|
-
name: "Standard account",
|
|
88
|
-
account: createMockAccount(),
|
|
89
|
-
expectedResult: new BigNumber("10000000000").minus(standardFees),
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: "Empty account",
|
|
93
|
-
account: createMockAccount({
|
|
94
|
-
balance: new BigNumber("0"),
|
|
95
|
-
spendableBalance: new BigNumber("0"),
|
|
96
|
-
}),
|
|
97
|
-
expectedResult: new BigNumber("0"),
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
name: "Account with balance less than fees",
|
|
101
|
-
account: createMockAccount({
|
|
102
|
-
balance: standardFees.div(2),
|
|
103
|
-
spendableBalance: standardFees.div(2),
|
|
104
|
-
}),
|
|
105
|
-
expectedResult: new BigNumber("0"),
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
name: "Account with balance equal to fees",
|
|
109
|
-
account: createMockAccount({
|
|
110
|
-
balance: standardFees,
|
|
111
|
-
spendableBalance: standardFees,
|
|
112
|
-
}),
|
|
113
|
-
expectedResult: new BigNumber("0"),
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
name: "Account with high balance",
|
|
117
|
-
account: createMockAccount({
|
|
118
|
-
balance: new BigNumber("100000000000000"),
|
|
119
|
-
spendableBalance: new BigNumber("100000000000000"),
|
|
120
|
-
}),
|
|
121
|
-
expectedResult: new BigNumber("100000000000000").minus(standardFees),
|
|
122
|
-
},
|
|
123
|
-
])("should handle $name", async ({ account, expectedResult }) => {
|
|
124
|
-
const result = await estimateMaxSpendable({
|
|
125
|
-
account: account,
|
|
126
|
-
parentAccount: undefined,
|
|
127
|
-
});
|
|
128
|
-
expect(result.toString()).toBe(expectedResult.toString());
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=estimateMaxSpendable.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"estimateMaxSpendable.test.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from "bignumber.js";
|
|
2
|
-
import { getTransactionStatus } from "./getTransactionStatus";
|
|
3
|
-
import { CASPER_MINIMUM_VALID_AMOUNT_MOTES, MayBlockAccountError, InvalidMinimumAmountError, } from "../consts";
|
|
4
|
-
import { AmountRequired, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, NotEnoughBalance, RecipientRequired, } from "@ledgerhq/errors";
|
|
5
|
-
import { CasperInvalidTransferId } from "../errors";
|
|
6
|
-
import { createMockAccount, createMockTransaction, TEST_ADDRESSES } from "../test/fixtures";
|
|
7
|
-
describe("getTransactionStatus", () => {
|
|
8
|
-
// Create fixtures
|
|
9
|
-
const mockAccount = createMockAccount();
|
|
10
|
-
const validTransaction = createMockTransaction();
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
jest.clearAllMocks();
|
|
13
|
-
});
|
|
14
|
-
test("should validate a valid transaction", async () => {
|
|
15
|
-
const status = await getTransactionStatus(mockAccount, validTransaction);
|
|
16
|
-
expect(status.errors).toEqual({});
|
|
17
|
-
expect(status.warnings).toEqual({});
|
|
18
|
-
expect(status.estimatedFees).toEqual(validTransaction.fees);
|
|
19
|
-
expect(status.amount).toEqual(validTransaction.amount);
|
|
20
|
-
expect(status.totalSpent).toEqual(validTransaction.amount.plus(validTransaction.fees));
|
|
21
|
-
});
|
|
22
|
-
test("should return error when recipient is missing", async () => {
|
|
23
|
-
const txWithoutRecipient = {
|
|
24
|
-
...validTransaction,
|
|
25
|
-
recipient: "",
|
|
26
|
-
};
|
|
27
|
-
const status = await getTransactionStatus(mockAccount, txWithoutRecipient);
|
|
28
|
-
expect(status.errors.recipient).toBeInstanceOf(RecipientRequired);
|
|
29
|
-
});
|
|
30
|
-
test("should return error when recipient is invalid", async () => {
|
|
31
|
-
const txWithInvalidRecipient = {
|
|
32
|
-
...validTransaction,
|
|
33
|
-
recipient: TEST_ADDRESSES.INVALID,
|
|
34
|
-
};
|
|
35
|
-
const status = await getTransactionStatus(mockAccount, txWithInvalidRecipient);
|
|
36
|
-
expect(status.errors.recipient).toBeInstanceOf(InvalidAddress);
|
|
37
|
-
});
|
|
38
|
-
test("should return error when recipient is same as sender", async () => {
|
|
39
|
-
const txToSelf = {
|
|
40
|
-
...validTransaction,
|
|
41
|
-
recipient: mockAccount.freshAddress,
|
|
42
|
-
};
|
|
43
|
-
const status = await getTransactionStatus(mockAccount, txToSelf);
|
|
44
|
-
expect(status.errors.recipient).toBeInstanceOf(InvalidAddressBecauseDestinationIsAlsoSource);
|
|
45
|
-
});
|
|
46
|
-
test("should return error when transfer ID is invalid", async () => {
|
|
47
|
-
const txWithInvalidTransferId = {
|
|
48
|
-
...validTransaction,
|
|
49
|
-
transferId: "invalid-id",
|
|
50
|
-
};
|
|
51
|
-
const status = await getTransactionStatus(mockAccount, txWithInvalidTransferId);
|
|
52
|
-
expect(status.errors.sender).toBeInstanceOf(CasperInvalidTransferId);
|
|
53
|
-
});
|
|
54
|
-
test("should handle useAllAmount correctly", async () => {
|
|
55
|
-
const useAllAmountTx = {
|
|
56
|
-
...validTransaction,
|
|
57
|
-
useAllAmount: true,
|
|
58
|
-
};
|
|
59
|
-
const status = await getTransactionStatus(mockAccount, useAllAmountTx);
|
|
60
|
-
expect(status.amount).toEqual(mockAccount.spendableBalance.minus(useAllAmountTx.fees));
|
|
61
|
-
expect(status.totalSpent).toEqual(mockAccount.spendableBalance);
|
|
62
|
-
expect(status.errors).toEqual({});
|
|
63
|
-
});
|
|
64
|
-
test("should return error when useAllAmount but not enough balance for fees", async () => {
|
|
65
|
-
const lowBalanceAccount = createMockAccount({
|
|
66
|
-
spendableBalance: new BigNumber(500000), // Less than the fee
|
|
67
|
-
});
|
|
68
|
-
const useAllAmountTx = {
|
|
69
|
-
...validTransaction,
|
|
70
|
-
useAllAmount: true,
|
|
71
|
-
fees: new BigNumber(1000000),
|
|
72
|
-
};
|
|
73
|
-
const status = await getTransactionStatus(lowBalanceAccount, useAllAmountTx);
|
|
74
|
-
expect(status.errors.amount).toBeInstanceOf(NotEnoughBalance);
|
|
75
|
-
});
|
|
76
|
-
test("should return error when amount is zero", async () => {
|
|
77
|
-
const zeroAmountTx = {
|
|
78
|
-
...validTransaction,
|
|
79
|
-
amount: new BigNumber(0),
|
|
80
|
-
};
|
|
81
|
-
const status = await getTransactionStatus(mockAccount, zeroAmountTx);
|
|
82
|
-
expect(status.errors.amount).toBeInstanceOf(AmountRequired);
|
|
83
|
-
});
|
|
84
|
-
test("should return error when amount is below minimum", async () => {
|
|
85
|
-
const lowAmountTx = {
|
|
86
|
-
...validTransaction,
|
|
87
|
-
amount: new BigNumber(CASPER_MINIMUM_VALID_AMOUNT_MOTES).minus(1),
|
|
88
|
-
};
|
|
89
|
-
const status = await getTransactionStatus(mockAccount, lowAmountTx);
|
|
90
|
-
expect(status.errors.amount).toBe(InvalidMinimumAmountError);
|
|
91
|
-
});
|
|
92
|
-
test("should return error when not enough balance for transaction", async () => {
|
|
93
|
-
const lowBalanceAccount = createMockAccount({
|
|
94
|
-
spendableBalance: new BigNumber(5000000),
|
|
95
|
-
});
|
|
96
|
-
const expensiveTx = {
|
|
97
|
-
...validTransaction,
|
|
98
|
-
amount: new BigNumber(5000000),
|
|
99
|
-
fees: new BigNumber(1000000),
|
|
100
|
-
};
|
|
101
|
-
const status = await getTransactionStatus(lowBalanceAccount, expensiveTx);
|
|
102
|
-
expect(status.errors.amount).toBeInstanceOf(NotEnoughBalance);
|
|
103
|
-
});
|
|
104
|
-
test("should return warning when spending more than 90% of balance", async () => {
|
|
105
|
-
const expensiveTx = {
|
|
106
|
-
...validTransaction,
|
|
107
|
-
amount: mockAccount.spendableBalance.multipliedBy(0.95), // 95% of balance
|
|
108
|
-
};
|
|
109
|
-
const status = await getTransactionStatus(mockAccount, expensiveTx);
|
|
110
|
-
expect(status.warnings.amount).toBe(MayBlockAccountError);
|
|
111
|
-
});
|
|
112
|
-
// Test using the predefined test cases
|
|
113
|
-
describe("transaction status test cases", () => {
|
|
114
|
-
const testCases = [
|
|
115
|
-
{
|
|
116
|
-
name: "Valid transaction",
|
|
117
|
-
account: createMockAccount(),
|
|
118
|
-
transaction: createMockTransaction(),
|
|
119
|
-
expectedStatus: { errors: {}, warnings: {}, estimatedFees: createMockTransaction().fees },
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
name: "Invalid recipient",
|
|
123
|
-
account: createMockAccount(),
|
|
124
|
-
transaction: createMockTransaction({ recipient: TEST_ADDRESSES.INVALID }),
|
|
125
|
-
expectedStatus: {
|
|
126
|
-
errors: { recipient: new InvalidAddress() },
|
|
127
|
-
warnings: {},
|
|
128
|
-
estimatedFees: createMockTransaction().fees,
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
name: "Zero amount",
|
|
133
|
-
account: createMockAccount(),
|
|
134
|
-
transaction: createMockTransaction({ amount: new BigNumber("0") }),
|
|
135
|
-
expectedStatus: {
|
|
136
|
-
errors: { amount: new AmountRequired() },
|
|
137
|
-
warnings: {},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: "High amount (warning)",
|
|
142
|
-
account: createMockAccount(),
|
|
143
|
-
transaction: createMockTransaction({
|
|
144
|
-
amount: new BigNumber(createMockAccount().balance.minus(createMockTransaction().fees).toString()),
|
|
145
|
-
}),
|
|
146
|
-
expectedStatus: {
|
|
147
|
-
errors: {},
|
|
148
|
-
warnings: { amount: MayBlockAccountError },
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
name: "Insufficient funds",
|
|
153
|
-
account: createMockAccount({
|
|
154
|
-
balance: new BigNumber("2000000"), // 0.002 CSPR
|
|
155
|
-
spendableBalance: new BigNumber("2000000"),
|
|
156
|
-
}),
|
|
157
|
-
transaction: createMockTransaction({
|
|
158
|
-
amount: new BigNumber("2000000"),
|
|
159
|
-
}),
|
|
160
|
-
expectedStatus: {
|
|
161
|
-
errors: { amount: new NotEnoughBalance() },
|
|
162
|
-
warnings: { amount: MayBlockAccountError },
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
name: "Empty account",
|
|
167
|
-
account: createMockAccount({
|
|
168
|
-
balance: new BigNumber("0"),
|
|
169
|
-
spendableBalance: new BigNumber("0"),
|
|
170
|
-
}),
|
|
171
|
-
transaction: createMockTransaction(),
|
|
172
|
-
expectedStatus: {
|
|
173
|
-
errors: { amount: new NotEnoughBalance() },
|
|
174
|
-
warnings: { amount: MayBlockAccountError },
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
];
|
|
178
|
-
testCases.forEach(testCase => {
|
|
179
|
-
test(`should handle ${testCase.name}`, async () => {
|
|
180
|
-
const status = await getTransactionStatus(testCase.account, testCase.transaction);
|
|
181
|
-
// Check if errors match expected errors
|
|
182
|
-
if (Object.keys(testCase.expectedStatus.errors).length) {
|
|
183
|
-
// Simplified error checking
|
|
184
|
-
expect(Object.keys(status.errors).length).toBeGreaterThan(0);
|
|
185
|
-
// Check only specific known error keys
|
|
186
|
-
if ("recipient" in testCase.expectedStatus.errors) {
|
|
187
|
-
expect(status.errors.recipient).toBeTruthy();
|
|
188
|
-
}
|
|
189
|
-
if ("amount" in testCase.expectedStatus.errors) {
|
|
190
|
-
expect(status.errors.amount).toBeTruthy();
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
expect(Object.keys(status.errors).length).toBe(0);
|
|
195
|
-
}
|
|
196
|
-
// Check if warnings match expected warnings
|
|
197
|
-
if (Object.keys(testCase.expectedStatus.warnings).length) {
|
|
198
|
-
// Simplified warning checking
|
|
199
|
-
expect(Object.keys(status.warnings).length).toBeGreaterThan(0);
|
|
200
|
-
// Check only specific known warning keys
|
|
201
|
-
if ("amount" in testCase.expectedStatus.warnings) {
|
|
202
|
-
expect(status.warnings.amount).toBeTruthy();
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
expect(Object.keys(status.warnings).length).toBe(0);
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
//# sourceMappingURL=getTransactionStatus.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prepareTransaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":""}
|