@ledgerhq/coin-hedera 1.10.1 → 1.10.2-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/.eslintrc.js +1 -0
- package/CHANGELOG.md +10 -0
- package/lib/api/mirror.d.ts +3 -20
- package/lib/api/mirror.d.ts.map +1 -1
- package/lib/api/mirror.js +32 -90
- package/lib/api/mirror.js.map +1 -1
- package/lib/api/mirror.test.js +59 -4
- package/lib/api/mirror.test.js.map +1 -1
- package/lib/api/network.d.ts +3 -3
- package/lib/api/network.d.ts.map +1 -1
- package/lib/api/network.js +46 -3
- package/lib/api/network.js.map +1 -1
- package/lib/api/types.d.ts +44 -0
- package/lib/api/types.d.ts.map +1 -0
- package/lib/api/types.js +3 -0
- package/lib/api/types.js.map +1 -0
- package/lib/api/utils.d.ts +8 -0
- package/lib/api/utils.d.ts.map +1 -0
- package/lib/api/utils.js +132 -0
- package/lib/api/utils.js.map +1 -0
- package/lib/bridge/broadcast.d.ts.map +1 -1
- package/lib/bridge/broadcast.js +2 -0
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/bridge/buildOptimisticOperation.d.ts +2 -2
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib/bridge/buildOptimisticOperation.integration.test.d.ts +2 -0
- package/lib/bridge/buildOptimisticOperation.integration.test.d.ts.map +1 -0
- package/lib/bridge/buildOptimisticOperation.integration.test.js +82 -0
- package/lib/bridge/buildOptimisticOperation.integration.test.js.map +1 -0
- package/lib/bridge/buildOptimisticOperation.js +87 -5
- package/lib/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -1
- package/lib/bridge/estimateMaxSpendable.js +8 -2
- package/lib/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts +3 -3
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +116 -23
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
- package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
- package/lib/bridge/getTransactionStatus.test.js +176 -0
- package/lib/bridge/getTransactionStatus.test.js.map +1 -0
- package/lib/bridge/index.d.ts +4 -4
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/index.js +9 -6
- package/lib/bridge/index.js.map +1 -1
- package/lib/bridge/js-estimateMaxSpendable.integration.test.js +28 -44
- package/lib/bridge/js-estimateMaxSpendable.integration.test.js.map +1 -1
- package/lib/bridge/js-transaction.test.js +10 -49
- package/lib/bridge/js-transaction.test.js.map +1 -1
- package/lib/bridge/prepareTransaction.d.ts +0 -1
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +0 -1
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/serialization.d.ts +7 -0
- package/lib/bridge/serialization.d.ts.map +1 -0
- package/lib/bridge/serialization.js +36 -0
- package/lib/bridge/serialization.js.map +1 -0
- package/lib/bridge/serialization.test.d.ts +2 -0
- package/lib/bridge/serialization.test.d.ts.map +1 -0
- package/lib/bridge/serialization.test.js +27 -0
- package/lib/bridge/serialization.test.js.map +1 -0
- package/lib/bridge/synchronisation.d.ts +3 -3
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +37 -15
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/bridge/transaction.test.js +18 -59
- package/lib/bridge/transaction.test.js.map +1 -1
- package/lib/bridge/utils.d.ts +22 -8
- package/lib/bridge/utils.d.ts.map +1 -1
- package/lib/bridge/utils.integration.test.js +415 -73
- package/lib/bridge/utils.integration.test.js.map +1 -1
- package/lib/bridge/utils.js +300 -15
- package/lib/bridge/utils.js.map +1 -1
- package/lib/constants.d.ts +32 -0
- package/lib/constants.d.ts.map +1 -0
- package/lib/constants.js +37 -0
- package/lib/constants.js.map +1 -0
- package/lib/deviceTransactionConfig.d.ts.map +1 -1
- package/lib/deviceTransactionConfig.js +17 -15
- package/lib/deviceTransactionConfig.js.map +1 -1
- package/lib/logic.d.ts +9 -3
- package/lib/logic.d.ts.map +1 -1
- package/lib/logic.js +31 -3
- package/lib/logic.js.map +1 -1
- package/lib/logic.test.js +103 -50
- package/lib/logic.test.js.map +1 -1
- package/lib/test/fixtures/account.fixture.d.ts +19 -0
- package/lib/test/fixtures/account.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/account.fixture.js +116 -0
- package/lib/test/fixtures/account.fixture.js.map +1 -0
- package/lib/test/fixtures/currency.fixture.d.ts +5 -0
- package/lib/test/fixtures/currency.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/currency.fixture.js +67 -0
- package/lib/test/fixtures/currency.fixture.js.map +1 -0
- package/lib/test/fixtures/mirror.fixture.d.ts +3 -0
- package/lib/test/fixtures/mirror.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/mirror.fixture.js +17 -0
- package/lib/test/fixtures/mirror.fixture.js.map +1 -0
- package/lib/test/fixtures/operation.fixture.d.ts +3 -0
- package/lib/test/fixtures/operation.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/operation.fixture.js +26 -0
- package/lib/test/fixtures/operation.fixture.js.map +1 -0
- package/lib/test/fixtures/transaction.fixture.d.ts +4 -0
- package/lib/test/fixtures/transaction.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/transaction.fixture.js +28 -0
- package/lib/test/fixtures/transaction.fixture.js.map +1 -0
- package/lib/types/bridge.d.ts +25 -1
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib-es/api/mirror.d.ts +3 -20
- package/lib-es/api/mirror.d.ts.map +1 -1
- package/lib-es/api/mirror.js +29 -88
- package/lib-es/api/mirror.js.map +1 -1
- package/lib-es/api/mirror.test.js +60 -5
- package/lib-es/api/mirror.test.js.map +1 -1
- package/lib-es/api/network.d.ts +3 -3
- package/lib-es/api/network.d.ts.map +1 -1
- package/lib-es/api/network.js +44 -4
- package/lib-es/api/network.js.map +1 -1
- package/lib-es/api/types.d.ts +44 -0
- package/lib-es/api/types.d.ts.map +1 -0
- package/lib-es/api/types.js +2 -0
- package/lib-es/api/types.js.map +1 -0
- package/lib-es/api/utils.d.ts +8 -0
- package/lib-es/api/utils.d.ts.map +1 -0
- package/lib-es/api/utils.js +124 -0
- package/lib-es/api/utils.js.map +1 -0
- package/lib-es/bridge/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/broadcast.js +2 -0
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.d.ts +2 -2
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts +2 -0
- package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.integration.test.js +77 -0
- package/lib-es/bridge/buildOptimisticOperation.integration.test.js.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.js +84 -5
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js +8 -2
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.d.ts +3 -3
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +114 -24
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
- package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
- package/lib-es/bridge/getTransactionStatus.test.js +148 -0
- package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
- package/lib-es/bridge/index.d.ts +4 -4
- package/lib-es/bridge/index.d.ts.map +1 -1
- package/lib-es/bridge/index.js +9 -6
- package/lib-es/bridge/index.js.map +1 -1
- package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js +28 -44
- package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js.map +1 -1
- package/lib-es/bridge/js-transaction.test.js +10 -49
- package/lib-es/bridge/js-transaction.test.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.d.ts +0 -1
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +0 -1
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/serialization.d.ts +7 -0
- package/lib-es/bridge/serialization.d.ts.map +1 -0
- package/lib-es/bridge/serialization.js +29 -0
- package/lib-es/bridge/serialization.js.map +1 -0
- package/lib-es/bridge/serialization.test.d.ts +2 -0
- package/lib-es/bridge/serialization.test.d.ts.map +1 -0
- package/lib-es/bridge/serialization.test.js +25 -0
- package/lib-es/bridge/serialization.test.js.map +1 -0
- package/lib-es/bridge/synchronisation.d.ts +3 -3
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +39 -17
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/bridge/transaction.test.js +18 -59
- package/lib-es/bridge/transaction.test.js.map +1 -1
- package/lib-es/bridge/utils.d.ts +22 -8
- package/lib-es/bridge/utils.d.ts.map +1 -1
- package/lib-es/bridge/utils.integration.test.js +416 -74
- package/lib-es/bridge/utils.integration.test.js.map +1 -1
- package/lib-es/bridge/utils.js +295 -15
- package/lib-es/bridge/utils.js.map +1 -1
- package/lib-es/constants.d.ts +32 -0
- package/lib-es/constants.d.ts.map +1 -0
- package/lib-es/constants.js +34 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/deviceTransactionConfig.d.ts.map +1 -1
- package/lib-es/deviceTransactionConfig.js +17 -15
- package/lib-es/deviceTransactionConfig.js.map +1 -1
- package/lib-es/logic.d.ts +9 -3
- package/lib-es/logic.d.ts.map +1 -1
- package/lib-es/logic.js +26 -3
- package/lib-es/logic.js.map +1 -1
- package/lib-es/logic.test.js +104 -51
- package/lib-es/logic.test.js.map +1 -1
- package/lib-es/test/fixtures/account.fixture.d.ts +19 -0
- package/lib-es/test/fixtures/account.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/account.fixture.js +107 -0
- package/lib-es/test/fixtures/account.fixture.js.map +1 -0
- package/lib-es/test/fixtures/currency.fixture.d.ts +5 -0
- package/lib-es/test/fixtures/currency.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/currency.fixture.js +58 -0
- package/lib-es/test/fixtures/currency.fixture.js.map +1 -0
- package/lib-es/test/fixtures/mirror.fixture.d.ts +3 -0
- package/lib-es/test/fixtures/mirror.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/mirror.fixture.js +13 -0
- package/lib-es/test/fixtures/mirror.fixture.js.map +1 -0
- package/lib-es/test/fixtures/operation.fixture.d.ts +3 -0
- package/lib-es/test/fixtures/operation.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/operation.fixture.js +19 -0
- package/lib-es/test/fixtures/operation.fixture.js.map +1 -0
- package/lib-es/test/fixtures/transaction.fixture.d.ts +4 -0
- package/lib-es/test/fixtures/transaction.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/transaction.fixture.js +20 -0
- package/lib-es/test/fixtures/transaction.fixture.js.map +1 -0
- package/lib-es/types/bridge.d.ts +25 -1
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/package.json +11 -9
- package/src/api/mirror.test.ts +79 -5
- package/src/api/mirror.ts +30 -111
- package/src/api/network.ts +71 -4
- package/src/api/types.ts +48 -0
- package/src/api/utils.ts +150 -0
- package/src/bridge/broadcast.ts +2 -0
- package/src/bridge/buildOptimisticOperation.integration.test.ts +88 -0
- package/src/bridge/buildOptimisticOperation.ts +118 -7
- package/src/bridge/estimateMaxSpendable.ts +8 -2
- package/src/bridge/getTransactionStatus.test.ts +200 -0
- package/src/bridge/getTransactionStatus.ts +166 -32
- package/src/bridge/index.ts +13 -10
- package/src/bridge/js-estimateMaxSpendable.integration.test.ts +37 -46
- package/src/bridge/js-transaction.test.ts +13 -54
- package/src/bridge/prepareTransaction.ts +1 -2
- package/src/bridge/serialization.test.ts +39 -0
- package/src/bridge/serialization.ts +43 -0
- package/src/bridge/synchronisation.ts +65 -27
- package/src/bridge/transaction.test.ts +22 -64
- package/src/bridge/utils.integration.test.ts +525 -76
- package/src/bridge/utils.ts +423 -24
- package/src/constants.ts +35 -0
- package/src/deviceTransactionConfig.ts +16 -15
- package/src/logic.test.ts +147 -57
- package/src/logic.ts +58 -7
- package/src/test/fixtures/account.fixture.ts +123 -0
- package/src/test/fixtures/currency.fixture.ts +66 -0
- package/src/test/fixtures/mirror.fixture.ts +14 -0
- package/src/test/fixtures/operation.fixture.ts +20 -0
- package/src/test/fixtures/transaction.fixture.ts +22 -0
- package/src/types/bridge.ts +33 -0
|
@@ -4,14 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.buildIterateResult = exports.getAccountShape = void 0;
|
|
7
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
7
8
|
const invariant_1 = __importDefault(require("invariant"));
|
|
8
9
|
const derivation_1 = require("@ledgerhq/coin-framework/derivation");
|
|
9
|
-
const bignumber_js_1 = require("bignumber.js");
|
|
10
|
-
const mirror_1 = require("../api/mirror");
|
|
11
10
|
const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
|
|
12
11
|
const account_1 = require("@ledgerhq/coin-framework/account");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
12
|
+
const mirror_1 = require("../api/mirror");
|
|
13
|
+
const utils_1 = require("./utils");
|
|
14
|
+
const utils_2 = require("../api/utils");
|
|
15
|
+
const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
15
16
|
const { currency, derivationMode, address, initialAccount } = info;
|
|
16
17
|
(0, invariant_1.default)(address, "an hedera address is expected");
|
|
17
18
|
const liveAccountId = (0, account_1.encodeAccountId)({
|
|
@@ -21,32 +22,53 @@ const getAccountShape = async (info) => {
|
|
|
21
22
|
xpubOrAddress: address,
|
|
22
23
|
derivationMode,
|
|
23
24
|
});
|
|
24
|
-
// get current account balance
|
|
25
|
-
|
|
26
|
-
//
|
|
25
|
+
// get current account balance and tokens
|
|
26
|
+
// tokens are fetched with separate requests to get "created_timestamp" for each token
|
|
27
|
+
// based on this, ASSOCIATE_TOKEN operations can be connected with tokens
|
|
28
|
+
const [mirrorAccount, mirrorTokens] = await Promise.all([
|
|
29
|
+
(0, mirror_1.getAccount)(address),
|
|
30
|
+
(0, mirror_1.getAccountTokens)(address),
|
|
31
|
+
]);
|
|
32
|
+
// we should sync again when new tokens are added or blacklist changes
|
|
33
|
+
const syncHash = (0, utils_1.getSyncHash)(currency, blacklistedTokenIds);
|
|
34
|
+
const shouldSyncFromScratch = !initialAccount || syncHash !== initialAccount?.syncHash;
|
|
27
35
|
const oldOperations = initialAccount?.operations ?? [];
|
|
28
|
-
const
|
|
36
|
+
const pendingOperations = initialAccount?.pendingOperations ?? [];
|
|
37
|
+
// grab latest operation's consensus timestamp for incremental sync
|
|
38
|
+
const latestOperationTimestamp = !shouldSyncFromScratch && oldOperations[0]
|
|
29
39
|
? new bignumber_js_1.BigNumber(Math.floor(oldOperations[0].date.getTime() / 1000))
|
|
30
40
|
: null;
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const
|
|
41
|
+
const latestAccountOperations = await (0, utils_2.getOperationsForAccount)(liveAccountId, address, latestOperationTimestamp ? latestOperationTimestamp.toString() : null);
|
|
42
|
+
const newSubAccounts = await (0, utils_1.getSubAccounts)(liveAccountId, latestAccountOperations.tokenOperations, mirrorTokens);
|
|
43
|
+
const subAccounts = (0, utils_1.mergeSubAccounts)(initialAccount, newSubAccounts);
|
|
44
|
+
const newOperations = (0, utils_1.prepareOperations)(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations, mirrorTokens);
|
|
45
|
+
const enrichedNewOperations = (0, utils_1.applyPendingExtras)(newOperations, pendingOperations);
|
|
46
|
+
const operations = shouldSyncFromScratch
|
|
47
|
+
? enrichedNewOperations
|
|
48
|
+
: (0, jsHelpers_1.mergeOps)(oldOperations, enrichedNewOperations);
|
|
34
49
|
return {
|
|
35
50
|
id: liveAccountId,
|
|
36
51
|
freshAddress: address,
|
|
37
|
-
|
|
38
|
-
|
|
52
|
+
syncHash,
|
|
53
|
+
lastSyncDate: new Date(),
|
|
54
|
+
balance: new bignumber_js_1.BigNumber(mirrorAccount.balance.balance),
|
|
55
|
+
spendableBalance: new bignumber_js_1.BigNumber(mirrorAccount.balance.balance),
|
|
39
56
|
operations,
|
|
40
57
|
operationsCount: operations.length,
|
|
41
58
|
// NOTE: there are no "blocks" in hedera
|
|
42
59
|
// Set a value just so that operations are considered confirmed according to isConfirmedOperation
|
|
43
60
|
blockHeight: 10,
|
|
61
|
+
subAccounts,
|
|
62
|
+
hederaResources: {
|
|
63
|
+
maxAutomaticTokenAssociations: mirrorAccount.max_automatic_token_associations,
|
|
64
|
+
isAutoTokenAssociationEnabled: mirrorAccount.max_automatic_token_associations === -1,
|
|
65
|
+
},
|
|
44
66
|
};
|
|
45
67
|
};
|
|
46
68
|
exports.getAccountShape = getAccountShape;
|
|
47
69
|
const buildIterateResult = async ({ result: rootResult }) => {
|
|
48
|
-
const
|
|
49
|
-
const addresses =
|
|
70
|
+
const mirrorAccounts = await (0, mirror_1.getAccountsForPublicKey)(rootResult.publicKey);
|
|
71
|
+
const addresses = mirrorAccounts.map(a => a.account);
|
|
50
72
|
return async ({ currency, derivationMode, index }) => {
|
|
51
73
|
const derivationScheme = (0, derivation_1.getDerivationScheme)({
|
|
52
74
|
derivationMode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,73 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
7
7
|
const transaction_1 = require("../transaction");
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
id: "",
|
|
11
|
-
seedIdentifier: "",
|
|
12
|
-
derivationMode: "",
|
|
13
|
-
index: 0,
|
|
14
|
-
freshAddress: "",
|
|
15
|
-
freshAddressPath: "",
|
|
16
|
-
used: false,
|
|
17
|
-
balance: new bignumber_js_1.default(200000),
|
|
18
|
-
spendableBalance: new bignumber_js_1.default(0),
|
|
19
|
-
creationDate: new Date(),
|
|
20
|
-
blockHeight: 0,
|
|
21
|
-
currency: {
|
|
22
|
-
type: "CryptoCurrency",
|
|
23
|
-
id: "hedera",
|
|
24
|
-
managerAppName: "",
|
|
25
|
-
coinType: 0,
|
|
26
|
-
scheme: "",
|
|
27
|
-
color: "",
|
|
28
|
-
family: "",
|
|
29
|
-
explorerViews: [],
|
|
30
|
-
name: "",
|
|
31
|
-
ticker: "",
|
|
32
|
-
units: [
|
|
33
|
-
{
|
|
34
|
-
name: "",
|
|
35
|
-
code: "",
|
|
36
|
-
magnitude: 0,
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
operationsCount: 0,
|
|
41
|
-
operations: [],
|
|
42
|
-
pendingOperations: [],
|
|
43
|
-
lastSyncDate: new Date(),
|
|
44
|
-
balanceHistoryCache: {
|
|
45
|
-
HOUR: { latestDate: null, balances: [] },
|
|
46
|
-
DAY: { latestDate: null, balances: [] },
|
|
47
|
-
WEEK: { latestDate: null, balances: [] },
|
|
48
|
-
},
|
|
49
|
-
swapHistory: [],
|
|
50
|
-
};
|
|
51
|
-
const transaction = {
|
|
52
|
-
family: "hedera",
|
|
53
|
-
amount: new bignumber_js_1.default(1),
|
|
54
|
-
recipient: "0.0.3",
|
|
55
|
-
};
|
|
56
|
-
const transactionRaw = {
|
|
57
|
-
family: "hedera",
|
|
58
|
-
amount: "1",
|
|
59
|
-
recipient: "0.0.3",
|
|
60
|
-
};
|
|
8
|
+
const account_fixture_1 = require("../test/fixtures/account.fixture");
|
|
9
|
+
const transaction_fixture_1 = require("../test/fixtures/transaction.fixture");
|
|
61
10
|
describe("transaction", () => {
|
|
11
|
+
const mockedAccount = (0, account_fixture_1.getMockedAccount)();
|
|
12
|
+
const mockedTransaction = (0, transaction_fixture_1.getMockedTransaction)({
|
|
13
|
+
amount: new bignumber_js_1.default(100000000),
|
|
14
|
+
recipient: "0.0.3",
|
|
15
|
+
});
|
|
16
|
+
const mockedTransactionRaw = (0, transaction_fixture_1.getMockedTransactionRaw)({
|
|
17
|
+
amount: "100000000",
|
|
18
|
+
recipient: "0.0.3",
|
|
19
|
+
});
|
|
62
20
|
test("formatTransaction", () => {
|
|
63
|
-
const result = (0, transaction_1.formatTransaction)(
|
|
64
|
-
const
|
|
21
|
+
const result = (0, transaction_1.formatTransaction)(mockedTransaction, mockedAccount);
|
|
22
|
+
const nonBreakingSpace = String.fromCharCode(160);
|
|
23
|
+
const string = `SEND 1${nonBreakingSpace}HBAR\nTO 0.0.3`;
|
|
65
24
|
expect(result).toEqual(string);
|
|
66
25
|
});
|
|
67
26
|
test("fromTransactionRaw", () => {
|
|
68
|
-
const result = (0, transaction_1.fromTransactionRaw)(
|
|
69
|
-
const data =
|
|
27
|
+
const result = (0, transaction_1.fromTransactionRaw)(mockedTransactionRaw);
|
|
28
|
+
const data = mockedTransaction;
|
|
70
29
|
expect(result).toEqual(data);
|
|
71
30
|
});
|
|
72
31
|
test("toTransactionRaw", () => {
|
|
73
|
-
const result = (0, transaction_1.toTransactionRaw)(
|
|
74
|
-
const data =
|
|
32
|
+
const result = (0, transaction_1.toTransactionRaw)(mockedTransaction);
|
|
33
|
+
const data = mockedTransactionRaw;
|
|
75
34
|
expect(result).toEqual(data);
|
|
76
35
|
});
|
|
77
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;
|
|
1
|
+
{"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AACrC,gDAAyF;AACzF,sEAAoE;AACpE,8EAG8C;AAE9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,aAAa,GAAG,IAAA,kCAAgB,GAAE,CAAC;IACzC,MAAM,iBAAiB,GAAG,IAAA,0CAAoB,EAAC;QAC7C,MAAM,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;QAChC,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAA,6CAAuB,EAAC;QACnD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAA,+BAAiB,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,gBAAgB,gBAAgB,CAAC;QAEzD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAA,gCAAkB,EAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,oBAAoB,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/bridge/utils.d.ts
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import type { Account, Operation } from "@ledgerhq/types-live";
|
|
2
|
+
import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
|
|
3
|
+
import type { CryptoCurrency, Currency } from "@ledgerhq/types-cryptoassets";
|
|
3
4
|
import type { HederaOperationExtra, Transaction } from "../types";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}): Promise<{
|
|
5
|
+
import type { HederaMirrorToken } from "../api/types";
|
|
6
|
+
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
7
|
+
export declare const getCurrencyToUSDRate: import("@ledgerhq/live-network/cache").CacheRes<[currency: Currency], BigNumber | null>;
|
|
8
|
+
export declare const getEstimatedFees: (account: Account, operationType: HEDERA_OPERATION_TYPES) => Promise<BigNumber>;
|
|
9
|
+
interface CalculateAmountResult {
|
|
10
10
|
amount: BigNumber;
|
|
11
11
|
totalSpent: BigNumber;
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
|
+
export declare const calculateAmount: ({ account, transaction, }: {
|
|
14
|
+
account: Account;
|
|
15
|
+
transaction: Transaction;
|
|
16
|
+
}) => Promise<CalculateAmountResult>;
|
|
13
17
|
export declare function base64ToUrlSafeBase64(data: string): string;
|
|
18
|
+
export declare const getSyncHash: (currency: CryptoCurrency, blacklistedTokenIds?: string[]) => string;
|
|
19
|
+
export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
|
|
20
|
+
export declare const prepareOperations: (coinOperations: Operation[], tokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Operation[];
|
|
21
|
+
/**
|
|
22
|
+
* In charge of smartly merging sub accounts while maintaining references as much as possible
|
|
23
|
+
*/
|
|
24
|
+
export declare const mergeSubAccounts: (initialAccount: Account | undefined, newSubAccounts: TokenAccount[]) => Array<TokenAccount>;
|
|
25
|
+
export declare const applyPendingExtras: (existing: Operation[], pending: Operation[]) => Operation[];
|
|
14
26
|
export declare function patchOperationWithExtra(operation: Operation, extra: HederaOperationExtra): Operation;
|
|
27
|
+
export declare const checkAccountTokenAssociationStatus: import("@ledgerhq/live-network/cache").CacheRes<[accountId: string, tokenId: string], boolean>;
|
|
28
|
+
export {};
|
|
15
29
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAe7E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAI5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAkC,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAKtF,eAAO,MAAM,oBAAoB,yFAoBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAClB,OAAO,iBACD,sBAAsB,KACpC,QAAQ,SAAS,CAgBnB,CAAC;AAEF,UAAU,qBAAqB;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;CACvB;AAyCD,eAAO,MAAM,eAAe;aAIjB,OAAO;iBACH,WAAW;MACtB,QAAQ,qBAAqB,CAahC,CAAC;AAGF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAID,eAAO,MAAM,WAAW,aACZ,cAAc,wBACH,MAAM,EAAE,KAC5B,MAaF,CAAC;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,uBACI,SAAS,EAAE,gBAClB,iBAAiB,EAAE,KAChC,QAAQ,YAAY,EAAE,CAwFxB,CAAC;AAmCF,eAAO,MAAM,iBAAiB,mBACZ,SAAS,EAAE,mBACV,SAAS,EAAE,gBACd,iBAAiB,EAAE,KAChC,SAAS,EAoDX,CAAC;AAaF;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,OAAO,GAAG,SAAS,kBACnB,YAAY,EAAE,KAC7B,MAAM,YAAY,CAmDpB,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,SAAS,EAAE,WAAW,SAAS,EAAE,gBAiB7E,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAoB,GAC1B,SAAS,CAOX;AAED,eAAO,MAAM,kCAAkC,gGAiB9C,CAAC"}
|