@ledgerhq/coin-hedera 1.13.0 → 1.14.0-nightly.20251107095716
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 +16 -0
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +1 -1
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/bridge/utils.d.ts +0 -2
- package/lib/bridge/utils.d.ts.map +1 -1
- package/lib/bridge/utils.js +1 -15
- package/lib/bridge/utils.js.map +1 -1
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +3 -3
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/bridge/utils.d.ts +0 -2
- package/lib-es/bridge/utils.d.ts.map +1 -1
- package/lib-es/bridge/utils.js +0 -13
- package/lib-es/bridge/utils.js.map +1 -1
- package/package.json +5 -7
- package/src/api/index.integ.test.ts +5 -0
- package/src/api/index.ts +2 -2
- package/src/bridge/synchronisation.ts +4 -9
- package/src/bridge/utils.integration.test.ts +1 -24
- package/src/bridge/utils.ts +1 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @ledgerhq/coin-hedera
|
|
2
2
|
|
|
3
|
+
## 1.14.0-nightly.20251107095716
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#12402](https://github.com/LedgerHQ/ledger-live/pull/12402) [`544721d`](https://github.com/LedgerHQ/ledger-live/commit/544721d198454526ef83516619d59c881ba34eb9) Thanks [@qperrot](https://github.com/qperrot)! - Fix transactionSequenceNumber type
|
|
8
|
+
|
|
9
|
+
- [#12500](https://github.com/LedgerHQ/ledger-live/pull/12500) [`9f61dcf`](https://github.com/LedgerHQ/ledger-live/commit/9f61dcf6163fd66657e5be732c28bea623a40515) Thanks [@Moustafa-Koterba](https://github.com/Moustafa-Koterba)! - LIVE-21900 EVM/Hedera/Cardano/TON: sync hash calculation to not depends on listTokens()
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`74a340b`](https://github.com/LedgerHQ/ledger-live/commit/74a340b258589c9c37476103029eb036b930616c), [`a6bc24e`](https://github.com/LedgerHQ/ledger-live/commit/a6bc24ee988b98bf82f807ac5ce731ba79813901), [`b69c97d`](https://github.com/LedgerHQ/ledger-live/commit/b69c97d979ba97154c9abfda6abfc2a36becee4f), [`544721d`](https://github.com/LedgerHQ/ledger-live/commit/544721d198454526ef83516619d59c881ba34eb9), [`1c6f5f5`](https://github.com/LedgerHQ/ledger-live/commit/1c6f5f5843349b1955f7ca466f98cbe4ffcdaddf), [`d5d838a`](https://github.com/LedgerHQ/ledger-live/commit/d5d838a23e00edd53293843781c559c41db4e854), [`9f61dcf`](https://github.com/LedgerHQ/ledger-live/commit/9f61dcf6163fd66657e5be732c28bea623a40515), [`c0b5b9f`](https://github.com/LedgerHQ/ledger-live/commit/c0b5b9f4cdcb2ea3e15419cbf3d1a14f725c3e6a), [`70049be`](https://github.com/LedgerHQ/ledger-live/commit/70049bed0cd0a8c7a9e4947a63af82061dad46c0), [`5b41dd5`](https://github.com/LedgerHQ/ledger-live/commit/5b41dd56e024a5d03ba0e49084113c04887395db), [`c70f6a8`](https://github.com/LedgerHQ/ledger-live/commit/c70f6a8370056b6fd8f236205471359d6f9b846f)]:
|
|
14
|
+
- @ledgerhq/types-live@6.89.0-nightly.20251107095716
|
|
15
|
+
- @ledgerhq/cryptoassets@13.33.0-nightly.20251107095716
|
|
16
|
+
- @ledgerhq/coin-framework@6.9.0-nightly.20251107095716
|
|
17
|
+
- @ledgerhq/live-countervalues@0.10.0-nightly.20251107095716
|
|
18
|
+
|
|
3
19
|
## 1.13.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,aAAa,CAuF1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,oBAqBhC,CAAC"}
|
|
@@ -31,7 +31,7 @@ const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
|
31
31
|
]);
|
|
32
32
|
const accountBalance = new bignumber_js_1.BigNumber(mirrorAccount.balance.balance);
|
|
33
33
|
// we should sync again when new tokens are added or blacklist changes
|
|
34
|
-
const syncHash = (0,
|
|
34
|
+
const syncHash = await (0, account_1.getSyncHash)(currency.id, blacklistedTokenIds);
|
|
35
35
|
const shouldSyncFromScratch = !initialAccount || syncHash !== initialAccount?.syncHash;
|
|
36
36
|
const oldOperations = initialAccount?.operations ?? [];
|
|
37
37
|
const pendingOperations = initialAccount?.pendingOperations ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAyC;AACzC,0DAAkC;AAElC,oEAA+F;AAK/F,yEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
|
package/lib/bridge/utils.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
|
|
3
|
-
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
4
3
|
import type { HederaOperationExtra, Transaction, HederaMirrorToken } from "../types";
|
|
5
4
|
interface CalculateAmountResult {
|
|
6
5
|
amount: BigNumber;
|
|
@@ -10,7 +9,6 @@ export declare const calculateAmount: ({ account, transaction, }: {
|
|
|
10
9
|
account: Account;
|
|
11
10
|
transaction: Transaction;
|
|
12
11
|
}) => Promise<CalculateAmountResult>;
|
|
13
|
-
export declare const getSyncHash: (currency: CryptoCurrency, blacklistedTokenIds?: string[]) => string;
|
|
14
12
|
export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
|
|
15
13
|
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Promise<Operation<HederaOperationExtra>[]>;
|
|
16
14
|
/**
|
|
@@ -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;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAgB7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF,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;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,uBACI,SAAS,EAAE,gBAClB,iBAAiB,EAAE,KAChC,QAAQ,YAAY,EAAE,CAwFxB,CAAC;AAoCF,eAAO,MAAM,iBAAiB,mBACZ,UAAU,oBAAoB,CAAC,EAAE,mBAChC,UAAU,oBAAoB,CAAC,EAAE,KACjD,QAAQ,UAAU,oBAAoB,CAAC,EAAE,CAmC3C,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"}
|
package/lib/bridge/utils.js
CHANGED
|
@@ -3,10 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.patchOperationWithExtra = exports.applyPendingExtras = exports.mergeSubAccounts = exports.prepareOperations = exports.getSubAccounts = exports.
|
|
6
|
+
exports.patchOperationWithExtra = exports.applyPendingExtras = exports.mergeSubAccounts = exports.prepareOperations = exports.getSubAccounts = exports.calculateAmount = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
-
const imurmurhash_1 = __importDefault(require("imurmurhash"));
|
|
9
|
-
const cryptoassets_1 = require("@ledgerhq/cryptoassets");
|
|
10
8
|
const account_1 = require("@ledgerhq/coin-framework/account");
|
|
11
9
|
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
12
10
|
const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
|
|
@@ -46,18 +44,6 @@ const calculateAmount = ({ account, transaction, }) => {
|
|
|
46
44
|
return calculateCoinAmount({ account, transaction, operationType });
|
|
47
45
|
};
|
|
48
46
|
exports.calculateAmount = calculateAmount;
|
|
49
|
-
const simpleSyncHashMemoize = {};
|
|
50
|
-
const getSyncHash = (currency, blacklistedTokenIds = []) => {
|
|
51
|
-
const tokens = (0, cryptoassets_1.listTokensForCryptoCurrency)(currency);
|
|
52
|
-
const stringToHash = currency.id +
|
|
53
|
-
tokens.map(token => token.id + token.contractAddress + token.name + token.ticker).join("") +
|
|
54
|
-
blacklistedTokenIds.join("");
|
|
55
|
-
if (!simpleSyncHashMemoize[stringToHash]) {
|
|
56
|
-
simpleSyncHashMemoize[stringToHash] = `0x${(0, imurmurhash_1.default)(stringToHash).result().toString(16)}`;
|
|
57
|
-
}
|
|
58
|
-
return simpleSyncHashMemoize[stringToHash];
|
|
59
|
-
};
|
|
60
|
-
exports.getSyncHash = getSyncHash;
|
|
61
47
|
const getSubAccounts = async (accountId, lastTokenOperations, mirrorTokens) => {
|
|
62
48
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
63
49
|
const operationsByToken = new Map();
|
package/lib/bridge/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,aAAa,CAuF1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,oBAqBhC,CAAC"}
|
|
@@ -2,10 +2,10 @@ import { BigNumber } from "bignumber.js";
|
|
|
2
2
|
import invariant from "invariant";
|
|
3
3
|
import { getDerivationScheme, runDerivationScheme } from "@ledgerhq/coin-framework/derivation";
|
|
4
4
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
5
|
-
import { encodeAccountId } from "@ledgerhq/coin-framework/account";
|
|
5
|
+
import { encodeAccountId, getSyncHash } from "@ledgerhq/coin-framework/account";
|
|
6
6
|
import { listOperations } from "../logic/listOperations";
|
|
7
7
|
import { apiClient } from "../network/api";
|
|
8
|
-
import { getSubAccounts, prepareOperations, applyPendingExtras, mergeSubAccounts
|
|
8
|
+
import { getSubAccounts, prepareOperations, applyPendingExtras, mergeSubAccounts } from "./utils";
|
|
9
9
|
export const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
10
10
|
const { currency, derivationMode, address, initialAccount } = info;
|
|
11
11
|
invariant(address, "an hedera address is expected");
|
|
@@ -25,7 +25,7 @@ export const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
|
25
25
|
]);
|
|
26
26
|
const accountBalance = new BigNumber(mirrorAccount.balance.balance);
|
|
27
27
|
// we should sync again when new tokens are added or blacklist changes
|
|
28
|
-
const syncHash = getSyncHash(currency, blacklistedTokenIds);
|
|
28
|
+
const syncHash = await getSyncHash(currency.id, blacklistedTokenIds);
|
|
29
29
|
const shouldSyncFromScratch = !initialAccount || syncHash !== initialAccount?.syncHash;
|
|
30
30
|
const oldOperations = initialAccount?.operations ?? [];
|
|
31
31
|
const pendingOperations = initialAccount?.pendingOperations ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAK/F,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
|
package/lib-es/bridge/utils.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
|
|
3
|
-
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
4
3
|
import type { HederaOperationExtra, Transaction, HederaMirrorToken } from "../types";
|
|
5
4
|
interface CalculateAmountResult {
|
|
6
5
|
amount: BigNumber;
|
|
@@ -10,7 +9,6 @@ export declare const calculateAmount: ({ account, transaction, }: {
|
|
|
10
9
|
account: Account;
|
|
11
10
|
transaction: Transaction;
|
|
12
11
|
}) => Promise<CalculateAmountResult>;
|
|
13
|
-
export declare const getSyncHash: (currency: CryptoCurrency, blacklistedTokenIds?: string[]) => string;
|
|
14
12
|
export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
|
|
15
13
|
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Promise<Operation<HederaOperationExtra>[]>;
|
|
16
14
|
/**
|
|
@@ -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;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAgB7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF,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;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,uBACI,SAAS,EAAE,gBAClB,iBAAiB,EAAE,KAChC,QAAQ,YAAY,EAAE,CAwFxB,CAAC;AAoCF,eAAO,MAAM,iBAAiB,mBACZ,UAAU,oBAAoB,CAAC,EAAE,mBAChC,UAAU,oBAAoB,CAAC,EAAE,KACjD,QAAQ,UAAU,oBAAoB,CAAC,EAAE,CAmC3C,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"}
|
package/lib-es/bridge/utils.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import murmurhash from "imurmurhash";
|
|
3
|
-
import { listTokensForCryptoCurrency } from "@ledgerhq/cryptoassets";
|
|
4
2
|
import { decodeTokenAccountId, emptyHistoryCache, encodeTokenAccountId, findSubAccountById, isTokenAccount, } from "@ledgerhq/coin-framework/account";
|
|
5
3
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
6
4
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
@@ -39,17 +37,6 @@ export const calculateAmount = ({ account, transaction, }) => {
|
|
|
39
37
|
: HEDERA_OPERATION_TYPES.CryptoTransfer;
|
|
40
38
|
return calculateCoinAmount({ account, transaction, operationType });
|
|
41
39
|
};
|
|
42
|
-
const simpleSyncHashMemoize = {};
|
|
43
|
-
export const getSyncHash = (currency, blacklistedTokenIds = []) => {
|
|
44
|
-
const tokens = listTokensForCryptoCurrency(currency);
|
|
45
|
-
const stringToHash = currency.id +
|
|
46
|
-
tokens.map(token => token.id + token.contractAddress + token.name + token.ticker).join("") +
|
|
47
|
-
blacklistedTokenIds.join("");
|
|
48
|
-
if (!simpleSyncHashMemoize[stringToHash]) {
|
|
49
|
-
simpleSyncHashMemoize[stringToHash] = `0x${murmurhash(stringToHash).result().toString(16)}`;
|
|
50
|
-
}
|
|
51
|
-
return simpleSyncHashMemoize[stringToHash];
|
|
52
|
-
};
|
|
53
40
|
export const getSubAccounts = async (accountId, lastTokenOperations, mirrorTokens) => {
|
|
54
41
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
55
42
|
const operationsByToken = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-hedera",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0-nightly.20251107095716",
|
|
4
4
|
"description": "Ledger Hedera Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -78,21 +78,19 @@
|
|
|
78
78
|
"@hashgraph/sdk": "2.14.2",
|
|
79
79
|
"bignumber.js": "^9.1.2",
|
|
80
80
|
"expect": "^27.4.6",
|
|
81
|
-
"imurmurhash": "^0.1.4",
|
|
82
81
|
"invariant": "^2.2.2",
|
|
83
82
|
"lodash": "^4.17.21",
|
|
84
83
|
"rxjs": "^7.8.1",
|
|
85
|
-
"@ledgerhq/coin-framework": "^6.
|
|
86
|
-
"@ledgerhq/cryptoassets": "^13.
|
|
84
|
+
"@ledgerhq/coin-framework": "^6.9.0-nightly.20251107095716",
|
|
85
|
+
"@ledgerhq/cryptoassets": "^13.33.0-nightly.20251107095716",
|
|
87
86
|
"@ledgerhq/devices": "8.7.0",
|
|
88
87
|
"@ledgerhq/errors": "^6.27.0",
|
|
89
|
-
"@ledgerhq/live-countervalues": "^0.
|
|
88
|
+
"@ledgerhq/live-countervalues": "^0.10.0-nightly.20251107095716",
|
|
90
89
|
"@ledgerhq/live-env": "^2.20.0",
|
|
91
90
|
"@ledgerhq/live-network": "^2.1.0",
|
|
92
|
-
"@ledgerhq/types-live": "^6.
|
|
91
|
+
"@ledgerhq/types-live": "^6.89.0-nightly.20251107095716"
|
|
93
92
|
},
|
|
94
93
|
"devDependencies": {
|
|
95
|
-
"@types/imurmurhash": "^0.1.4",
|
|
96
94
|
"@types/invariant": "^2.2.2",
|
|
97
95
|
"@types/jest": "^29.5.10",
|
|
98
96
|
"@types/lodash": "^4.14.191",
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import invariant from "invariant";
|
|
2
|
+
import { setCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
3
|
+
import { legacyCryptoAssetsStore } from "@ledgerhq/cryptoassets/legacy/legacy-store";
|
|
2
4
|
import {
|
|
3
5
|
AccountId,
|
|
4
6
|
Hbar,
|
|
@@ -13,6 +15,9 @@ import { getSyntheticBlock } from "../logic/utils";
|
|
|
13
15
|
import { MAINNET_TEST_ACCOUNTS } from "../test/fixtures/account.fixture";
|
|
14
16
|
|
|
15
17
|
describe("createApi", () => {
|
|
18
|
+
beforeAll(() => {
|
|
19
|
+
setCryptoAssetsStore(legacyCryptoAssetsStore);
|
|
20
|
+
});
|
|
16
21
|
const api = createApi({});
|
|
17
22
|
|
|
18
23
|
describe("craftTransaction", () => {
|
package/src/api/index.ts
CHANGED
|
@@ -49,7 +49,7 @@ export function createApi(config: Record<string, never>): Api<HederaMemo> {
|
|
|
49
49
|
_transaction: string,
|
|
50
50
|
_sender: string,
|
|
51
51
|
_publicKey: string,
|
|
52
|
-
_sequence:
|
|
52
|
+
_sequence: bigint,
|
|
53
53
|
): Promise<CraftedTransaction> => {
|
|
54
54
|
throw new Error("craftRawTransaction is not supported");
|
|
55
55
|
},
|
|
@@ -127,7 +127,7 @@ export function createApi(config: Record<string, never>): Api<HederaMemo> {
|
|
|
127
127
|
validateIntent: async (_transactionIntent, _customFees): Promise<TransactionValidation> => {
|
|
128
128
|
throw new Error("validateIntent is not supported");
|
|
129
129
|
},
|
|
130
|
-
getSequence: async (_address): Promise<
|
|
130
|
+
getSequence: async (_address): Promise<bigint> => {
|
|
131
131
|
throw new Error("getSequence is not supported");
|
|
132
132
|
},
|
|
133
133
|
getBlock: async (_height): Promise<Block> => {
|
|
@@ -7,17 +7,11 @@ import type {
|
|
|
7
7
|
IterateResultBuilder,
|
|
8
8
|
} from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
9
9
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
10
|
-
import { encodeAccountId } from "@ledgerhq/coin-framework/account";
|
|
10
|
+
import { encodeAccountId, getSyncHash } from "@ledgerhq/coin-framework/account";
|
|
11
11
|
import { listOperations } from "../logic/listOperations";
|
|
12
12
|
import { apiClient } from "../network/api";
|
|
13
13
|
import type { HederaAccount } from "../types";
|
|
14
|
-
import {
|
|
15
|
-
getSubAccounts,
|
|
16
|
-
prepareOperations,
|
|
17
|
-
applyPendingExtras,
|
|
18
|
-
mergeSubAccounts,
|
|
19
|
-
getSyncHash,
|
|
20
|
-
} from "./utils";
|
|
14
|
+
import { getSubAccounts, prepareOperations, applyPendingExtras, mergeSubAccounts } from "./utils";
|
|
21
15
|
|
|
22
16
|
export const getAccountShape: GetAccountShape<HederaAccount> = async (
|
|
23
17
|
info,
|
|
@@ -46,7 +40,8 @@ export const getAccountShape: GetAccountShape<HederaAccount> = async (
|
|
|
46
40
|
const accountBalance = new BigNumber(mirrorAccount.balance.balance);
|
|
47
41
|
|
|
48
42
|
// we should sync again when new tokens are added or blacklist changes
|
|
49
|
-
|
|
43
|
+
|
|
44
|
+
const syncHash = await getSyncHash(currency.id, blacklistedTokenIds);
|
|
50
45
|
const shouldSyncFromScratch = !initialAccount || syncHash !== initialAccount?.syncHash;
|
|
51
46
|
|
|
52
47
|
const oldOperations = initialAccount?.operations ?? [];
|
|
@@ -5,11 +5,7 @@ import { legacyCryptoAssetsStore } from "@ledgerhq/cryptoassets/legacy/legacy-st
|
|
|
5
5
|
import { HEDERA_OPERATION_TYPES, HEDERA_TRANSACTION_MODES } from "../constants";
|
|
6
6
|
import { estimateFees } from "../logic/estimateFees";
|
|
7
7
|
import { getMockedAccount, getMockedTokenAccount } from "../test/fixtures/account.fixture";
|
|
8
|
-
import {
|
|
9
|
-
getMockedCurrency,
|
|
10
|
-
getMockedTokenCurrency,
|
|
11
|
-
getTokenCurrencyFromCAL,
|
|
12
|
-
} from "../test/fixtures/currency.fixture";
|
|
8
|
+
import { getMockedTokenCurrency, getTokenCurrencyFromCAL } from "../test/fixtures/currency.fixture";
|
|
13
9
|
import { getMockedTransaction } from "../test/fixtures/transaction.fixture";
|
|
14
10
|
import { getMockedOperation } from "../test/fixtures/operation.fixture";
|
|
15
11
|
import { getMockedMirrorToken } from "../test/fixtures/mirror.fixture";
|
|
@@ -18,7 +14,6 @@ import {
|
|
|
18
14
|
applyPendingExtras,
|
|
19
15
|
calculateAmount,
|
|
20
16
|
getSubAccounts,
|
|
21
|
-
getSyncHash,
|
|
22
17
|
mergeSubAccounts,
|
|
23
18
|
patchOperationWithExtra,
|
|
24
19
|
prepareOperations,
|
|
@@ -141,24 +136,6 @@ describe("utils", () => {
|
|
|
141
136
|
});
|
|
142
137
|
});
|
|
143
138
|
|
|
144
|
-
describe("getSyncHash", () => {
|
|
145
|
-
const mockedCurrency = getMockedCurrency();
|
|
146
|
-
|
|
147
|
-
test("returns a consistent hash for same input", () => {
|
|
148
|
-
const hash1 = getSyncHash(mockedCurrency, []);
|
|
149
|
-
const hash2 = getSyncHash(mockedCurrency, []);
|
|
150
|
-
|
|
151
|
-
expect(hash2).toBe(hash1);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
test("produces different hash if blacklistedTokenIds changes", () => {
|
|
155
|
-
const hash1 = getSyncHash(mockedCurrency, []);
|
|
156
|
-
const hash2 = getSyncHash(mockedCurrency, ["random_token"]);
|
|
157
|
-
|
|
158
|
-
expect(hash1).not.toBe(hash2);
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
|
|
162
139
|
describe("getSubAccounts", () => {
|
|
163
140
|
test("returns sub account based on operations and mirror tokens", async () => {
|
|
164
141
|
const firstTokenCurrencyFromCAL = getTokenCurrencyFromCAL(0);
|
package/src/bridge/utils.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import murmurhash from "imurmurhash";
|
|
3
2
|
import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
|
|
4
|
-
import { listTokensForCryptoCurrency } from "@ledgerhq/cryptoassets";
|
|
5
3
|
import {
|
|
6
4
|
decodeTokenAccountId,
|
|
7
5
|
emptyHistoryCache,
|
|
@@ -10,7 +8,7 @@ import {
|
|
|
10
8
|
isTokenAccount,
|
|
11
9
|
} from "@ledgerhq/coin-framework/account";
|
|
12
10
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
13
|
-
import type {
|
|
11
|
+
import type { TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
14
12
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
15
13
|
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
16
14
|
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
@@ -84,26 +82,6 @@ export const calculateAmount = ({
|
|
|
84
82
|
return calculateCoinAmount({ account, transaction, operationType });
|
|
85
83
|
};
|
|
86
84
|
|
|
87
|
-
const simpleSyncHashMemoize: Record<string, string> = {};
|
|
88
|
-
|
|
89
|
-
export const getSyncHash = (
|
|
90
|
-
currency: CryptoCurrency,
|
|
91
|
-
blacklistedTokenIds: string[] = [],
|
|
92
|
-
): string => {
|
|
93
|
-
const tokens = listTokensForCryptoCurrency(currency);
|
|
94
|
-
|
|
95
|
-
const stringToHash =
|
|
96
|
-
currency.id +
|
|
97
|
-
tokens.map(token => token.id + token.contractAddress + token.name + token.ticker).join("") +
|
|
98
|
-
blacklistedTokenIds.join("");
|
|
99
|
-
|
|
100
|
-
if (!simpleSyncHashMemoize[stringToHash]) {
|
|
101
|
-
simpleSyncHashMemoize[stringToHash] = `0x${murmurhash(stringToHash).result().toString(16)}`;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return simpleSyncHashMemoize[stringToHash];
|
|
105
|
-
};
|
|
106
|
-
|
|
107
85
|
export const getSubAccounts = async (
|
|
108
86
|
accountId: string,
|
|
109
87
|
lastTokenOperations: Operation[],
|