@ledgerhq/coin-hedera 1.12.0 → 1.12.1-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +18 -0
- package/lib/api/network.d.ts +2 -6
- package/lib/api/network.d.ts.map +1 -1
- package/lib/api/network.js +4 -25
- package/lib/api/network.js.map +1 -1
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib/bridge/buildOptimisticOperation.js +6 -2
- package/lib/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +10 -13
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/utils.d.ts +4 -0
- package/lib/bridge/utils.d.ts.map +1 -1
- package/lib/bridge/utils.js +41 -3
- package/lib/bridge/utils.js.map +1 -1
- package/lib/errors.d.ts +12 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +5 -1
- package/lib/errors.js.map +1 -1
- package/lib-es/api/network.d.ts +2 -6
- package/lib-es/api/network.d.ts.map +1 -1
- package/lib-es/api/network.js +3 -24
- package/lib-es/api/network.js.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.js +7 -3
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +9 -12
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/utils.d.ts +4 -0
- package/lib-es/bridge/utils.d.ts.map +1 -1
- package/lib-es/bridge/utils.js +40 -3
- package/lib-es/bridge/utils.js.map +1 -1
- package/lib-es/errors.d.ts +12 -0
- package/lib-es/errors.d.ts.map +1 -1
- package/lib-es/errors.js +4 -0
- package/lib-es/errors.js.map +1 -1
- package/package.json +7 -7
- package/src/api/network.ts +2 -35
- package/src/bridge/buildOptimisticOperation.ts +7 -3
- package/src/bridge/getTransactionStatus.test.ts +27 -5
- package/src/bridge/getTransactionStatus.ts +14 -13
- package/src/bridge/utils.integration.test.ts +52 -0
- package/src/bridge/utils.ts +49 -2
- package/src/errors.ts +12 -0
- package/lib/api/mirror.test.d.ts +0 -2
- package/lib/api/mirror.test.d.ts.map +0 -1
- package/lib/api/mirror.test.js +0 -114
- package/lib/api/mirror.test.js.map +0 -1
- package/lib/api/network.test.d.ts +0 -2
- package/lib/api/network.test.d.ts.map +0 -1
- package/lib/api/network.test.js +0 -45
- package/lib/api/network.test.js.map +0 -1
- package/lib/bridge/buildOptimisticOperation.integration.test.d.ts +0 -2
- package/lib/bridge/buildOptimisticOperation.integration.test.d.ts.map +0 -1
- package/lib/bridge/buildOptimisticOperation.integration.test.js +0 -82
- package/lib/bridge/buildOptimisticOperation.integration.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 -176
- package/lib/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib/bridge/js-estimateMaxSpendable.integration.test.d.ts +0 -2
- package/lib/bridge/js-estimateMaxSpendable.integration.test.d.ts.map +0 -1
- package/lib/bridge/js-estimateMaxSpendable.integration.test.js +0 -47
- package/lib/bridge/js-estimateMaxSpendable.integration.test.js.map +0 -1
- package/lib/bridge/js-transaction.test.d.ts +0 -2
- package/lib/bridge/js-transaction.test.d.ts.map +0 -1
- package/lib/bridge/js-transaction.test.js +0 -40
- package/lib/bridge/js-transaction.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 -58
- package/lib/bridge/prepareTransaction.test.js.map +0 -1
- package/lib/bridge/serialization.test.d.ts +0 -2
- package/lib/bridge/serialization.test.d.ts.map +0 -1
- package/lib/bridge/serialization.test.js +0 -27
- package/lib/bridge/serialization.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 -37
- package/lib/bridge/transaction.test.js.map +0 -1
- package/lib/bridge/utils.integration.test.d.ts +0 -2
- package/lib/bridge/utils.integration.test.d.ts.map +0 -1
- package/lib/bridge/utils.integration.test.js +0 -428
- package/lib/bridge/utils.integration.test.js.map +0 -1
- package/lib/logic.test.d.ts +0 -2
- package/lib/logic.test.d.ts.map +0 -1
- package/lib/logic.test.js +0 -111
- package/lib/logic.test.js.map +0 -1
- package/lib-es/api/mirror.test.d.ts +0 -2
- package/lib-es/api/mirror.test.d.ts.map +0 -1
- package/lib-es/api/mirror.test.js +0 -109
- package/lib-es/api/mirror.test.js.map +0 -1
- package/lib-es/api/network.test.d.ts +0 -2
- package/lib-es/api/network.test.d.ts.map +0 -1
- package/lib-es/api/network.test.js +0 -40
- package/lib-es/api/network.test.js.map +0 -1
- package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts +0 -2
- package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts.map +0 -1
- package/lib-es/bridge/buildOptimisticOperation.integration.test.js +0 -77
- package/lib-es/bridge/buildOptimisticOperation.integration.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 -148
- package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib-es/bridge/js-estimateMaxSpendable.integration.test.d.ts +0 -2
- package/lib-es/bridge/js-estimateMaxSpendable.integration.test.d.ts.map +0 -1
- package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js +0 -42
- package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js.map +0 -1
- package/lib-es/bridge/js-transaction.test.d.ts +0 -2
- package/lib-es/bridge/js-transaction.test.d.ts.map +0 -1
- package/lib-es/bridge/js-transaction.test.js +0 -35
- package/lib-es/bridge/js-transaction.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 -30
- package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
- package/lib-es/bridge/serialization.test.d.ts +0 -2
- package/lib-es/bridge/serialization.test.d.ts.map +0 -1
- package/lib-es/bridge/serialization.test.js +0 -25
- package/lib-es/bridge/serialization.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 -32
- package/lib-es/bridge/transaction.test.js.map +0 -1
- package/lib-es/bridge/utils.integration.test.d.ts +0 -2
- package/lib-es/bridge/utils.integration.test.d.ts.map +0 -1
- package/lib-es/bridge/utils.integration.test.js +0 -423
- package/lib-es/bridge/utils.integration.test.js.map +0 -1
- package/lib-es/logic.test.d.ts +0 -2
- package/lib-es/logic.test.d.ts.map +0 -1
- package/lib-es/logic.test.js +0 -109
- package/lib-es/logic.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../../src/bridge/buildOptimisticOperation.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../../src/bridge/buildOptimisticOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,sBAAsB,CAAC;AASjF,OAAO,KAAK,EAA4B,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA8JzF,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAC9C,WAAW,EACX,OAAO,EACP,iBAAiB,CAClB,CAAC,sBAAsB,CAWvB,CAAC"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import {
|
|
3
|
-
import { AmountRequired, NotEnoughBalance, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, RecipientRequired, HederaInsufficientFundsForAssociation, HederaRecipientTokenAssociationRequired, HederaRecipientTokenAssociationUnverified, } from "@ledgerhq/errors";
|
|
2
|
+
import { AmountRequired, NotEnoughBalance, InvalidAddressBecauseDestinationIsAlsoSource, RecipientRequired, } from "@ledgerhq/errors";
|
|
4
3
|
import { findSubAccountById, isTokenAccount } from "@ledgerhq/coin-framework/account";
|
|
5
4
|
import { getEnv } from "@ledgerhq/live-env";
|
|
5
|
+
import { HederaInsufficientFundsForAssociation, HederaRecipientTokenAssociationRequired, HederaRecipientTokenAssociationUnverified, } from "../errors";
|
|
6
6
|
import { isTokenAssociateTransaction, isTokenAssociationRequired } from "../logic";
|
|
7
|
-
import { calculateAmount, checkAccountTokenAssociationStatus, getCurrencyToUSDRate, getEstimatedFees, } from "./utils";
|
|
7
|
+
import { calculateAmount, checkAccountTokenAssociationStatus, getCurrencyToUSDRate, getEstimatedFees, safeParseAccountId, } from "./utils";
|
|
8
8
|
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
9
9
|
function validateRecipient(account, recipient) {
|
|
10
10
|
if (!recipient || recipient.length === 0) {
|
|
11
11
|
return new RecipientRequired();
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
try {
|
|
17
|
-
AccountId.fromString(recipient);
|
|
13
|
+
const [parsingError, parsingResult] = safeParseAccountId(recipient);
|
|
14
|
+
if (parsingError) {
|
|
15
|
+
return parsingError;
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
});
|
|
17
|
+
const recipientWithoutChecksum = parsingResult.accountId;
|
|
18
|
+
if (account.freshAddress === recipientWithoutChecksum) {
|
|
19
|
+
return new InvalidAddressBecauseDestinationIsAlsoSource();
|
|
23
20
|
}
|
|
24
21
|
return null;
|
|
25
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"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"}
|
package/lib-es/bridge/utils.d.ts
CHANGED
|
@@ -25,5 +25,9 @@ export declare const mergeSubAccounts: (initialAccount: Account | undefined, new
|
|
|
25
25
|
export declare const applyPendingExtras: (existing: Operation[], pending: Operation[]) => Operation[];
|
|
26
26
|
export declare function patchOperationWithExtra(operation: Operation, extra: HederaOperationExtra): Operation;
|
|
27
27
|
export declare const checkAccountTokenAssociationStatus: import("@ledgerhq/live-network/cache").CacheRes<[accountId: string, tokenId: string], boolean>;
|
|
28
|
+
export declare const safeParseAccountId: (address: string) => [Error, null] | [null, {
|
|
29
|
+
accountId: string;
|
|
30
|
+
checksum: string | null;
|
|
31
|
+
}];
|
|
28
32
|
export {};
|
|
29
33
|
//# 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;AAKrC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAgB7E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAI5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,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,gGAwB9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,KACd,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA+BvE,CAAC"}
|
package/lib-es/bridge/utils.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import murmurhash from "imurmurhash";
|
|
3
3
|
import invariant from "invariant";
|
|
4
|
+
import { AccountId } from "@hashgraph/sdk";
|
|
5
|
+
import { InvalidAddress } from "@ledgerhq/errors";
|
|
4
6
|
import cvsApi from "@ledgerhq/live-countervalues/api/index";
|
|
5
|
-
import { findTokenByAddressInCurrency, getFiatCurrencyByTicker, listTokensForCryptoCurrency, } from "@ledgerhq/cryptoassets";
|
|
7
|
+
import { findCryptoCurrencyById, findTokenByAddressInCurrency, getFiatCurrencyByTicker, listTokensForCryptoCurrency, } from "@ledgerhq/cryptoassets";
|
|
6
8
|
import { decodeTokenAccountId, emptyHistoryCache, encodeTokenAccountId, findSubAccountById, isTokenAccount, } from "@ledgerhq/coin-framework/account";
|
|
7
9
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
8
10
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
9
11
|
import { makeLRUCache, seconds } from "@ledgerhq/live-network/cache";
|
|
10
12
|
import { estimateMaxSpendable } from "./estimateMaxSpendable";
|
|
11
13
|
import { getAccount } from "../api/mirror";
|
|
14
|
+
import { getHederaClient } from "../api/network";
|
|
15
|
+
import { HederaRecipientInvalidChecksum } from "../errors";
|
|
12
16
|
import { isTokenAssociateTransaction, isValidExtra } from "../logic";
|
|
13
17
|
import { BASE_USD_FEE_BY_OPERATION_TYPE, HEDERA_OPERATION_TYPES } from "../constants";
|
|
14
18
|
const ESTIMATED_FEE_SAFETY_RATE = 2;
|
|
@@ -318,8 +322,13 @@ export function patchOperationWithExtra(operation, extra) {
|
|
|
318
322
|
nftOperations: (operation.nftOperations ?? []).map(op => ({ ...op, extra })),
|
|
319
323
|
};
|
|
320
324
|
}
|
|
321
|
-
export const checkAccountTokenAssociationStatus = makeLRUCache(async (
|
|
322
|
-
const
|
|
325
|
+
export const checkAccountTokenAssociationStatus = makeLRUCache(async (address, tokenId) => {
|
|
326
|
+
const [parsingError, parsingResult] = safeParseAccountId(address);
|
|
327
|
+
if (parsingError) {
|
|
328
|
+
throw parsingError;
|
|
329
|
+
}
|
|
330
|
+
const addressWithoutChecksum = parsingResult.accountId;
|
|
331
|
+
const mirrorAccount = await getAccount(addressWithoutChecksum);
|
|
323
332
|
// auto association is enabled
|
|
324
333
|
if (mirrorAccount.max_automatic_token_associations === -1) {
|
|
325
334
|
return true;
|
|
@@ -329,4 +338,32 @@ export const checkAccountTokenAssociationStatus = makeLRUCache(async (accountId,
|
|
|
329
338
|
});
|
|
330
339
|
return isTokenAssociated;
|
|
331
340
|
}, (accountId, tokenId) => `${accountId}-${tokenId}`, seconds(30));
|
|
341
|
+
export const safeParseAccountId = (address) => {
|
|
342
|
+
const currency = findCryptoCurrencyById("hedera");
|
|
343
|
+
const currencyName = currency?.name ?? "Hedera";
|
|
344
|
+
try {
|
|
345
|
+
const accountId = AccountId.fromString(address);
|
|
346
|
+
// verify checksum if present
|
|
347
|
+
// FIXME: migrate to EntityIdHelper methods once SDK is upgraded:
|
|
348
|
+
// https://github.com/hiero-ledger/hiero-sdk-js/blob/main/src/EntityIdHelper.js#L197
|
|
349
|
+
// https://github.com/hiero-ledger/hiero-sdk-js/blob/main/src/EntityIdHelper.js#L446
|
|
350
|
+
const checksum = address.split("-")[1] ?? null;
|
|
351
|
+
if (checksum) {
|
|
352
|
+
const client = getHederaClient();
|
|
353
|
+
const recipientWithChecksum = accountId.toStringWithChecksum(client);
|
|
354
|
+
const expectedChecksum = recipientWithChecksum.split("-")[1];
|
|
355
|
+
if (checksum !== expectedChecksum) {
|
|
356
|
+
return [new HederaRecipientInvalidChecksum(), null];
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
const result = {
|
|
360
|
+
accountId: accountId.toString(),
|
|
361
|
+
checksum,
|
|
362
|
+
};
|
|
363
|
+
return [null, result];
|
|
364
|
+
}
|
|
365
|
+
catch (err) {
|
|
366
|
+
return [new InvalidAddress("", { currencyName }), null];
|
|
367
|
+
}
|
|
368
|
+
};
|
|
332
369
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
|
package/lib-es/errors.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
export declare const HederaAddAccountError: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
2
2
|
[key: string]: unknown;
|
|
3
3
|
}>;
|
|
4
|
+
export declare const HederaRecipientInvalidChecksum: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const HederaInsufficientFundsForAssociation: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const HederaRecipientTokenAssociationRequired: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const HederaRecipientTokenAssociationUnverified: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}>;
|
|
4
16
|
//# sourceMappingURL=errors.d.ts.map
|
package/lib-es/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;EAAkD,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;EAAkD,CAAC;AACrF,eAAO,MAAM,8BAA8B;;EAE1C,CAAC;AACF,eAAO,MAAM,qCAAqC;;EAEjD,CAAC;AACF,eAAO,MAAM,uCAAuC;;EAEnD,CAAC;AACF,eAAO,MAAM,yCAAyC;;EAErD,CAAC"}
|
package/lib-es/errors.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { createCustomErrorClass } from "@ledgerhq/errors";
|
|
2
2
|
export const HederaAddAccountError = createCustomErrorClass("HederaAddAccountError");
|
|
3
|
+
export const HederaRecipientInvalidChecksum = createCustomErrorClass("HederaRecipientInvalidChecksum");
|
|
4
|
+
export const HederaInsufficientFundsForAssociation = createCustomErrorClass("HederaInsufficientFundsForAssociation");
|
|
5
|
+
export const HederaRecipientTokenAssociationRequired = createCustomErrorClass("HederaRecipientTokenAssociationRequired");
|
|
6
|
+
export const HederaRecipientTokenAssociationUnverified = createCustomErrorClass("HederaRecipientTokenAssociationUnverified");
|
|
3
7
|
//# sourceMappingURL=errors.js.map
|
package/lib-es/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAClE,gCAAgC,CACjC,CAAC;AACF,MAAM,CAAC,MAAM,qCAAqC,GAAG,sBAAsB,CACzE,uCAAuC,CACxC,CAAC;AACF,MAAM,CAAC,MAAM,uCAAuC,GAAG,sBAAsB,CAC3E,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,yCAAyC,GAAG,sBAAsB,CAC7E,2CAA2C,CAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-hedera",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.1-nightly.1",
|
|
4
4
|
"description": "Ledger Hedera Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -82,14 +82,14 @@
|
|
|
82
82
|
"invariant": "^2.2.2",
|
|
83
83
|
"lodash": "^4.17.21",
|
|
84
84
|
"rxjs": "^7.8.1",
|
|
85
|
-
"@ledgerhq/coin-framework": "^6.
|
|
86
|
-
"@ledgerhq/cryptoassets": "^13.31.0",
|
|
87
|
-
"@ledgerhq/devices": "8.6.
|
|
88
|
-
"@ledgerhq/errors": "^6.
|
|
89
|
-
"@ledgerhq/live-countervalues": "^0.8.
|
|
85
|
+
"@ledgerhq/coin-framework": "^6.8.0-nightly.1",
|
|
86
|
+
"@ledgerhq/cryptoassets": "^13.31.1-nightly.0",
|
|
87
|
+
"@ledgerhq/devices": "8.6.2-nightly.0",
|
|
88
|
+
"@ledgerhq/errors": "^6.27.0-nightly.0",
|
|
89
|
+
"@ledgerhq/live-countervalues": "^0.8.1-nightly.1",
|
|
90
90
|
"@ledgerhq/live-env": "^2.19.0",
|
|
91
91
|
"@ledgerhq/live-network": "^2.0.20",
|
|
92
|
-
"@ledgerhq/types-live": "^6.
|
|
92
|
+
"@ledgerhq/types-live": "^6.88.0-nightly.0"
|
|
93
93
|
},
|
|
94
94
|
"devDependencies": {
|
|
95
95
|
"@types/imurmurhash": "^0.1.4",
|
package/src/api/network.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import BigNumber from "bignumber.js";
|
|
2
1
|
import invariant from "invariant";
|
|
3
2
|
import type { Transaction as HederaTransaction, TransactionResponse } from "@hashgraph/sdk";
|
|
4
3
|
import {
|
|
@@ -7,18 +6,15 @@ import {
|
|
|
7
6
|
Hbar,
|
|
8
7
|
AccountId,
|
|
9
8
|
TransactionId,
|
|
10
|
-
AccountBalanceQuery,
|
|
11
|
-
HbarUnit,
|
|
12
9
|
TokenAssociateTransaction,
|
|
13
10
|
} from "@hashgraph/sdk";
|
|
14
11
|
import type { Account, TokenAccount } from "@ledgerhq/types-live";
|
|
15
12
|
import { findSubAccountById, isTokenAccount } from "@ledgerhq/coin-framework/account/helpers";
|
|
16
|
-
import { HederaAddAccountError } from "../errors";
|
|
17
13
|
import { Transaction } from "../types";
|
|
18
14
|
import { isTokenAssociateTransaction } from "../logic";
|
|
19
15
|
|
|
20
16
|
export function broadcastTransaction(transaction: HederaTransaction): Promise<TransactionResponse> {
|
|
21
|
-
return transaction.execute(
|
|
17
|
+
return transaction.execute(getHederaClient());
|
|
22
18
|
}
|
|
23
19
|
|
|
24
20
|
// https://github.com/LedgerHQ/ledger-live/pull/72/commits/1e942687d4301660e43e0c4b5419fcfa2733b290
|
|
@@ -118,41 +114,12 @@ export async function buildUnsignedTransaction({
|
|
|
118
114
|
}
|
|
119
115
|
}
|
|
120
116
|
|
|
121
|
-
export interface AccountBalance {
|
|
122
|
-
balance: BigNumber;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export async function getAccountBalance(address: string): Promise<AccountBalance> {
|
|
126
|
-
const accountId = AccountId.fromString(address);
|
|
127
|
-
let accountBalance;
|
|
128
|
-
|
|
129
|
-
try {
|
|
130
|
-
accountBalance = await new AccountBalanceQuery({
|
|
131
|
-
accountId,
|
|
132
|
-
}).execute(getBalanceClient());
|
|
133
|
-
} catch {
|
|
134
|
-
throw new HederaAddAccountError();
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return {
|
|
138
|
-
balance: accountBalance.hbars.to(HbarUnit.Tinybar),
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
|
|
142
117
|
let _hederaClient: Client | null = null;
|
|
143
118
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
function getClient(): Client {
|
|
119
|
+
export function getHederaClient(): Client {
|
|
147
120
|
_hederaClient ??= Client.forMainnet().setMaxNodesPerTransaction(1);
|
|
148
121
|
|
|
149
122
|
//_hederaClient.setNetwork({ mainnet: "https://hedera.coin.ledger.com" });
|
|
150
123
|
|
|
151
124
|
return _hederaClient;
|
|
152
125
|
}
|
|
153
|
-
|
|
154
|
-
function getBalanceClient(): Client {
|
|
155
|
-
_hederaBalanceClient ??= Client.forMainnet();
|
|
156
|
-
|
|
157
|
-
return _hederaBalanceClient;
|
|
158
|
-
}
|
|
@@ -3,7 +3,7 @@ import type { Account, Operation, OperationType, TokenAccount } from "@ledgerhq/
|
|
|
3
3
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
4
4
|
import { findSubAccountById, isTokenAccount } from "@ledgerhq/coin-framework/account/helpers";
|
|
5
5
|
import type { HederaOperationExtra, Transaction } from "../types";
|
|
6
|
-
import { getEstimatedFees } from "./utils";
|
|
6
|
+
import { getEstimatedFees, safeParseAccountId } from "./utils";
|
|
7
7
|
import { isTokenAssociateTransaction } from "../logic";
|
|
8
8
|
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
9
9
|
|
|
@@ -55,6 +55,8 @@ const buildOptimisticCoinOperation = async ({
|
|
|
55
55
|
: await getEstimatedFees(account, HEDERA_OPERATION_TYPES.CryptoTransfer);
|
|
56
56
|
const value = transaction.amount;
|
|
57
57
|
const type: OperationType = transactionType ?? "OUT";
|
|
58
|
+
const [_, recipientAddress] = safeParseAccountId(transaction.recipient);
|
|
59
|
+
const recipientWithoutChecksum = recipientAddress?.accountId ?? transaction.recipient;
|
|
58
60
|
|
|
59
61
|
const operation: Operation = {
|
|
60
62
|
id: encodeOperationId(account.id, "", type),
|
|
@@ -65,7 +67,7 @@ const buildOptimisticCoinOperation = async ({
|
|
|
65
67
|
blockHash: null,
|
|
66
68
|
blockHeight: null,
|
|
67
69
|
senders: [account.freshAddress.toString()],
|
|
68
|
-
recipients: [
|
|
70
|
+
recipients: [recipientWithoutChecksum],
|
|
69
71
|
accountId: account.id,
|
|
70
72
|
date: new Date(),
|
|
71
73
|
extra: {},
|
|
@@ -86,6 +88,8 @@ const buildOptimisticTokenOperation = async ({
|
|
|
86
88
|
const estimatedFee = await getEstimatedFees(account, HEDERA_OPERATION_TYPES.TokenTransfer);
|
|
87
89
|
const value = transaction.amount;
|
|
88
90
|
const type: OperationType = "OUT";
|
|
91
|
+
const [_, recipientAddress] = safeParseAccountId(transaction.recipient);
|
|
92
|
+
const recipientWithoutChecksum = recipientAddress?.accountId ?? transaction.recipient;
|
|
89
93
|
|
|
90
94
|
const coinOperation = await buildOptimisticCoinOperation({
|
|
91
95
|
account,
|
|
@@ -109,7 +113,7 @@ const buildOptimisticTokenOperation = async ({
|
|
|
109
113
|
blockHash: null,
|
|
110
114
|
blockHeight: null,
|
|
111
115
|
senders: [account.freshAddress.toString()],
|
|
112
|
-
recipients: [
|
|
116
|
+
recipients: [recipientWithoutChecksum],
|
|
113
117
|
accountId: tokenAccount.id,
|
|
114
118
|
date: new Date(),
|
|
115
119
|
extra: {},
|
|
@@ -4,10 +4,13 @@ import {
|
|
|
4
4
|
InvalidAddressBecauseDestinationIsAlsoSource,
|
|
5
5
|
AmountRequired,
|
|
6
6
|
NotEnoughBalance,
|
|
7
|
+
} from "@ledgerhq/errors";
|
|
8
|
+
import {
|
|
9
|
+
HederaRecipientInvalidChecksum,
|
|
7
10
|
HederaInsufficientFundsForAssociation,
|
|
8
11
|
HederaRecipientTokenAssociationRequired,
|
|
9
12
|
HederaRecipientTokenAssociationUnverified,
|
|
10
|
-
} from "
|
|
13
|
+
} from "../errors";
|
|
11
14
|
import { getMockedAccount, getMockedTokenAccount } from "../test/fixtures/account.fixture";
|
|
12
15
|
import { getMockedTokenCurrency } from "../test/fixtures/currency.fixture";
|
|
13
16
|
import { getMockedTransaction } from "../test/fixtures/transaction.fixture";
|
|
@@ -19,7 +22,7 @@ describe("getTransactionStatus", () => {
|
|
|
19
22
|
const mockedEstimatedFee = new BigNumber(1);
|
|
20
23
|
const mockedUsdRate = new BigNumber(1);
|
|
21
24
|
const validRecipientAddress = "0.0.1234567";
|
|
22
|
-
const
|
|
25
|
+
const validRecipientAddressWithChecksum = "0.0.1234567-ylkls";
|
|
23
26
|
|
|
24
27
|
beforeEach(() => {
|
|
25
28
|
jest.clearAllMocks();
|
|
@@ -81,13 +84,32 @@ describe("getTransactionStatus", () => {
|
|
|
81
84
|
expect(result.estimatedFees).toEqual(mockedEstimatedFee);
|
|
82
85
|
});
|
|
83
86
|
|
|
87
|
+
test("recipient with checksum is supported", async () => {
|
|
88
|
+
const mockedAccount = getMockedAccount({ balance: new BigNumber(1000) });
|
|
89
|
+
const mockedTransaction = getMockedTransaction({
|
|
90
|
+
recipient: validRecipientAddressWithChecksum,
|
|
91
|
+
amount: new BigNumber(100),
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const result = await getTransactionStatus(mockedAccount, mockedTransaction);
|
|
95
|
+
|
|
96
|
+
expect(result.errors).toEqual({});
|
|
97
|
+
expect(result.warnings).toEqual({});
|
|
98
|
+
});
|
|
99
|
+
|
|
84
100
|
test("adds error for invalid recipient address", async () => {
|
|
85
101
|
const mockedAccount = getMockedAccount();
|
|
86
|
-
const mockedTransaction = getMockedTransaction({ recipient: invalidRecipientAddress });
|
|
87
102
|
|
|
88
|
-
const
|
|
103
|
+
const txWithInvalidAddress = getMockedTransaction({ recipient: "invalid_address" });
|
|
104
|
+
const txWithInvalidAddressChecksum = getMockedTransaction({ recipient: "0.0.9124531-invld" });
|
|
105
|
+
|
|
106
|
+
const [result1, result2] = await Promise.all([
|
|
107
|
+
getTransactionStatus(mockedAccount, txWithInvalidAddress),
|
|
108
|
+
getTransactionStatus(mockedAccount, txWithInvalidAddressChecksum),
|
|
109
|
+
]);
|
|
89
110
|
|
|
90
|
-
expect(
|
|
111
|
+
expect(result1.errors.recipient).toBeInstanceOf(InvalidAddress);
|
|
112
|
+
expect(result2.errors.recipient).toBeInstanceOf(HederaRecipientInvalidChecksum);
|
|
91
113
|
});
|
|
92
114
|
|
|
93
115
|
test("adds error for self transfers", async () => {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import { AccountId } from "@hashgraph/sdk";
|
|
3
2
|
import {
|
|
4
3
|
AmountRequired,
|
|
5
4
|
NotEnoughBalance,
|
|
6
|
-
InvalidAddress,
|
|
7
5
|
InvalidAddressBecauseDestinationIsAlsoSource,
|
|
8
6
|
RecipientRequired,
|
|
9
|
-
HederaInsufficientFundsForAssociation,
|
|
10
|
-
HederaRecipientTokenAssociationRequired,
|
|
11
|
-
HederaRecipientTokenAssociationUnverified,
|
|
12
7
|
} from "@ledgerhq/errors";
|
|
13
8
|
import type { Account, AccountBridge, TokenAccount } from "@ledgerhq/types-live";
|
|
14
9
|
import { findSubAccountById, isTokenAccount } from "@ledgerhq/coin-framework/account";
|
|
15
10
|
import { getEnv } from "@ledgerhq/live-env";
|
|
11
|
+
import {
|
|
12
|
+
HederaInsufficientFundsForAssociation,
|
|
13
|
+
HederaRecipientTokenAssociationRequired,
|
|
14
|
+
HederaRecipientTokenAssociationUnverified,
|
|
15
|
+
} from "../errors";
|
|
16
16
|
import { isTokenAssociateTransaction, isTokenAssociationRequired } from "../logic";
|
|
17
17
|
import type { TokenAssociateProperties, Transaction, TransactionStatus } from "../types";
|
|
18
18
|
import {
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
checkAccountTokenAssociationStatus,
|
|
21
21
|
getCurrencyToUSDRate,
|
|
22
22
|
getEstimatedFees,
|
|
23
|
+
safeParseAccountId,
|
|
23
24
|
} from "./utils";
|
|
24
25
|
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
25
26
|
|
|
@@ -31,16 +32,16 @@ function validateRecipient(account: Account, recipient: string): Error | null {
|
|
|
31
32
|
return new RecipientRequired();
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
const [parsingError, parsingResult] = safeParseAccountId(recipient);
|
|
36
|
+
|
|
37
|
+
if (parsingError) {
|
|
38
|
+
return parsingError;
|
|
36
39
|
}
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return new
|
|
42
|
-
currencyName: account.currency.name,
|
|
43
|
-
});
|
|
41
|
+
const recipientWithoutChecksum = parsingResult.accountId;
|
|
42
|
+
|
|
43
|
+
if (account.freshAddress === recipientWithoutChecksum) {
|
|
44
|
+
return new InvalidAddressBecauseDestinationIsAlsoSource();
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
return null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
+
import { InvalidAddress } from "@ledgerhq/errors";
|
|
2
3
|
import cvsApi from "@ledgerhq/live-countervalues/api/index";
|
|
3
4
|
import { encodeTokenAccountId } from "@ledgerhq/coin-framework/account";
|
|
4
5
|
import { getMockedAccount, getMockedTokenAccount } from "../test/fixtures/account.fixture";
|
|
@@ -12,6 +13,7 @@ import {
|
|
|
12
13
|
getSubAccounts,
|
|
13
14
|
getSyncHash,
|
|
14
15
|
mergeSubAccounts,
|
|
16
|
+
safeParseAccountId,
|
|
15
17
|
patchOperationWithExtra,
|
|
16
18
|
prepareOperations,
|
|
17
19
|
} from "./utils";
|
|
@@ -23,6 +25,7 @@ import {
|
|
|
23
25
|
import { getMockedOperation } from "../test/fixtures/operation.fixture";
|
|
24
26
|
import { HederaOperationExtra } from "../types";
|
|
25
27
|
import { getAccount } from "../api/mirror";
|
|
28
|
+
import { HederaRecipientInvalidChecksum } from "../errors";
|
|
26
29
|
import { isValidExtra } from "../logic";
|
|
27
30
|
import { getMockedMirrorToken } from "../test/fixtures/mirror.fixture";
|
|
28
31
|
import { HEDERA_OPERATION_TYPES, HEDERA_TRANSACTION_KINDS } from "../constants";
|
|
@@ -539,5 +542,54 @@ describe("utils", () => {
|
|
|
539
542
|
const result = await checkAccountTokenAssociationStatus(accountId, tokenId);
|
|
540
543
|
expect(result).toBe(false);
|
|
541
544
|
});
|
|
545
|
+
|
|
546
|
+
test("supports addresses with checksum", async () => {
|
|
547
|
+
const addressWithChecksum = "0.0.9124531-xrxlv";
|
|
548
|
+
|
|
549
|
+
mockedGetAccount.mockResolvedValueOnce({
|
|
550
|
+
account: accountId,
|
|
551
|
+
max_automatic_token_associations: 0,
|
|
552
|
+
balance: {
|
|
553
|
+
balance: 1,
|
|
554
|
+
timestamp: "",
|
|
555
|
+
tokens: [{ token_id: "0.0.9999", balance: 1 }],
|
|
556
|
+
},
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
await checkAccountTokenAssociationStatus(addressWithChecksum, tokenId);
|
|
560
|
+
expect(mockedGetAccount).toHaveBeenCalledWith("0.0.9124531");
|
|
561
|
+
});
|
|
562
|
+
});
|
|
563
|
+
|
|
564
|
+
describe("safeParseAccountId", () => {
|
|
565
|
+
test("returns account id and no checksum for valid address without checksum", () => {
|
|
566
|
+
const [error, result] = safeParseAccountId("0.0.9124531");
|
|
567
|
+
|
|
568
|
+
expect(error).toBeNull();
|
|
569
|
+
expect(result?.accountId).toBe("0.0.9124531");
|
|
570
|
+
expect(result?.checksum).toBeNull();
|
|
571
|
+
});
|
|
572
|
+
|
|
573
|
+
test("returns account id and checksum for valid address with correct checksum", () => {
|
|
574
|
+
const [error, result] = safeParseAccountId("0.0.9124531-xrxlv");
|
|
575
|
+
|
|
576
|
+
expect(error).toBeNull();
|
|
577
|
+
expect(result?.accountId).toBe("0.0.9124531");
|
|
578
|
+
expect(result?.checksum).toBe("xrxlv");
|
|
579
|
+
});
|
|
580
|
+
|
|
581
|
+
test("returns error for valid address with incorrect checksum", () => {
|
|
582
|
+
const [error, accountId] = safeParseAccountId("0.0.9124531-invld");
|
|
583
|
+
|
|
584
|
+
expect(error).toBeInstanceOf(HederaRecipientInvalidChecksum);
|
|
585
|
+
expect(accountId).toBeNull();
|
|
586
|
+
});
|
|
587
|
+
|
|
588
|
+
test("returns error for invalid address format", () => {
|
|
589
|
+
const [error, accountId] = safeParseAccountId("not-a-valid-address");
|
|
590
|
+
|
|
591
|
+
expect(error).toBeInstanceOf(InvalidAddress);
|
|
592
|
+
expect(accountId).toBeNull();
|
|
593
|
+
});
|
|
542
594
|
});
|
|
543
595
|
});
|