@ledgerhq/coin-hedera 1.13.0-nightly.4 → 1.13.0-nightly.6
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 +20 -0
- package/lib/bridge/synchronisation.js +1 -1
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/bridge/utils.d.ts +1 -1
- package/lib/bridge/utils.d.ts.map +1 -1
- package/lib/bridge/utils.js +17 -16
- package/lib/bridge/utils.js.map +1 -1
- package/lib/logic/getBalance.d.ts.map +1 -1
- package/lib/logic/getBalance.js +2 -2
- package/lib/logic/getBalance.js.map +1 -1
- package/lib/logic/getTokenFromAsset.js +2 -2
- package/lib/logic/getTokenFromAsset.js.map +1 -1
- package/lib/logic/listOperations.js +4 -4
- package/lib/logic/listOperations.js.map +1 -1
- package/lib-es/bridge/synchronisation.js +1 -1
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/bridge/utils.d.ts +1 -1
- package/lib-es/bridge/utils.d.ts.map +1 -1
- package/lib-es/bridge/utils.js +18 -17
- package/lib-es/bridge/utils.js.map +1 -1
- package/lib-es/logic/getBalance.d.ts.map +1 -1
- package/lib-es/logic/getBalance.js +2 -2
- package/lib-es/logic/getBalance.js.map +1 -1
- package/lib-es/logic/getTokenFromAsset.js +2 -2
- package/lib-es/logic/getTokenFromAsset.js.map +1 -1
- package/lib-es/logic/listOperations.js +4 -4
- package/lib-es/logic/listOperations.js.map +1 -1
- package/package.json +6 -6
- package/src/bridge/synchronisation.ts +1 -1
- package/src/bridge/utils.integration.test.ts +5 -5
- package/src/bridge/utils.ts +29 -28
- package/src/logic/getBalance.test.ts +17 -12
- package/src/logic/getBalance.ts +5 -2
- package/src/logic/getTokenFromAsset.test.ts +18 -7
- package/src/logic/getTokenFromAsset.ts +2 -2
- package/src/logic/listOperations.test.ts +8 -4
- package/src/logic/listOperations.ts +6 -6
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/coin-hedera@1.13.0-nightly.
|
|
2
|
+
> @ledgerhq/coin-hedera@1.13.0-nightly.5 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-hedera
|
|
3
3
|
> tsc --outDir lib --module commonjs --moduleResolution node10 && tsc -m ES6 --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @ledgerhq/coin-hedera
|
|
2
2
|
|
|
3
|
+
## 1.13.0-nightly.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`607e4be`](https://github.com/LedgerHQ/ledger-live/commit/607e4be33145c102debce1606224b08579888aa8)]:
|
|
8
|
+
- @ledgerhq/cryptoassets@13.32.0-nightly.4
|
|
9
|
+
- @ledgerhq/coin-framework@6.8.0-nightly.6
|
|
10
|
+
- @ledgerhq/live-countervalues@0.8.1-nightly.6
|
|
11
|
+
|
|
12
|
+
## 1.13.0-nightly.5
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [[`77566c5`](https://github.com/LedgerHQ/ledger-live/commit/77566c5a3b5795f5938bd5daaa5f8d65934c56b8), [`c1a4bfd`](https://github.com/LedgerHQ/ledger-live/commit/c1a4bfd34b46c6b6587d247673cadb3c078deb1d), [`6ccabef`](https://github.com/LedgerHQ/ledger-live/commit/6ccabef8f3c4e8cc042299d531684595ebadcc55)]:
|
|
17
|
+
- @ledgerhq/types-live@6.88.0-nightly.3
|
|
18
|
+
- @ledgerhq/devices@8.7.0-nightly.1
|
|
19
|
+
- @ledgerhq/cryptoassets@13.32.0-nightly.3
|
|
20
|
+
- @ledgerhq/coin-framework@6.8.0-nightly.5
|
|
21
|
+
- @ledgerhq/live-countervalues@0.8.1-nightly.5
|
|
22
|
+
|
|
3
23
|
## 1.13.0-nightly.4
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
|
@@ -55,7 +55,7 @@ const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
|
55
55
|
});
|
|
56
56
|
const newSubAccounts = await (0, utils_1.getSubAccounts)(liveAccountId, latestAccountOperations.tokenOperations, mirrorTokens);
|
|
57
57
|
const subAccounts = (0, utils_1.mergeSubAccounts)(initialAccount, newSubAccounts);
|
|
58
|
-
const newOperations = (0, utils_1.prepareOperations)(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations);
|
|
58
|
+
const newOperations = await (0, utils_1.prepareOperations)(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations);
|
|
59
59
|
const enrichedNewOperations = (0, utils_1.applyPendingExtras)(newOperations, pendingOperations);
|
|
60
60
|
const operations = shouldSyncFromScratch
|
|
61
61
|
? enrichedNewOperations
|
|
@@ -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,8DAAmE;AACnE,4DAAyD;AACzD,wCAA2C;AAE3C,mCAMiB;AAEV,MAAM,eAAe,GAAmC,KAAK,EAClE,IAAI,EACJ,EAAE,mBAAmB,EAAE,EACU,EAAE;IACnC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnE,IAAA,mBAAS,EAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,IAAA,yBAAe,EAAC;QACpC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,yCAAyC;IACzC,sFAAsF;IACtF,yEAAyE;IACzE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,eAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,eAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACpC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,wBAAS,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,CAAC,cAAc,IAAI,QAAQ,KAAK,cAAc,EAAE,QAAQ,CAAC;IAEvF,MAAM,aAAa,GAAG,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAC;IAElE,mEAAmE;IACnE,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,wBAAwB,GAC5B,CAAC,qBAAqB,IAAI,eAAe;QACvC,CAAC,CAAC,IAAI,wBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,uBAAuB,GAAG,MAAM,IAAA,+BAAc,EAAC;QACnD,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,UAAU,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,CAAC,wBAAwB,IAAI,EAAE,eAAe,EAAE,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC;SAC1F;QACD,aAAa,EAAE,IAAI;QACnB,0BAA0B,EAAE,KAAK;QACjC,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,KAAK;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,IAAA,sBAAc,EACzC,aAAa,EACb,uBAAuB,CAAC,eAAe,EACvC,YAAY,CACb,CAAC;IACF,MAAM,WAAW,GAAG,IAAA,wBAAgB,EAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,IAAA,yBAAiB,
|
|
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
|
@@ -12,7 +12,7 @@ export declare const calculateAmount: ({ account, transaction, }: {
|
|
|
12
12
|
}) => Promise<CalculateAmountResult>;
|
|
13
13
|
export declare const getSyncHash: (currency: CryptoCurrency, blacklistedTokenIds?: string[]) => string;
|
|
14
14
|
export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
|
|
15
|
-
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Operation<HederaOperationExtra>[]
|
|
15
|
+
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Promise<Operation<HederaOperationExtra>[]>;
|
|
16
16
|
/**
|
|
17
17
|
* In charge of smartly merging sub accounts while maintaining references as much as possible
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAU7E,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAU7E,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAOlF,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;AAIF,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;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
|
@@ -10,6 +10,7 @@ const cryptoassets_1 = require("@ledgerhq/cryptoassets");
|
|
|
10
10
|
const account_1 = require("@ledgerhq/coin-framework/account");
|
|
11
11
|
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
12
12
|
const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
|
|
13
|
+
const index_1 = require("@ledgerhq/coin-framework/crypto-assets/index");
|
|
13
14
|
const constants_1 = require("../constants");
|
|
14
15
|
const estimateMaxSpendable_1 = require("./estimateMaxSpendable");
|
|
15
16
|
const estimateFees_1 = require("../logic/estimateFees");
|
|
@@ -59,19 +60,19 @@ const getSyncHash = (currency, blacklistedTokenIds = []) => {
|
|
|
59
60
|
exports.getSyncHash = getSyncHash;
|
|
60
61
|
const getSubAccounts = async (accountId, lastTokenOperations, mirrorTokens) => {
|
|
61
62
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
62
|
-
const operationsByToken =
|
|
63
|
-
|
|
63
|
+
const operationsByToken = new Map();
|
|
64
|
+
for (const tokenOperation of lastTokenOperations) {
|
|
65
|
+
const { token } = await (0, account_1.decodeTokenAccountId)(tokenOperation.accountId);
|
|
64
66
|
if (!token)
|
|
65
|
-
|
|
66
|
-
const isTokenListedInCAL = (0,
|
|
67
|
+
continue;
|
|
68
|
+
const isTokenListedInCAL = await (0, index_1.getCryptoAssetsStore)().findTokenByAddressInCurrency(token.contractAddress, token.parentCurrency.id);
|
|
67
69
|
if (!isTokenListedInCAL)
|
|
68
|
-
|
|
69
|
-
if (!
|
|
70
|
-
|
|
70
|
+
continue;
|
|
71
|
+
if (!operationsByToken.has(token)) {
|
|
72
|
+
operationsByToken.set(token, []);
|
|
71
73
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}, new Map());
|
|
74
|
+
operationsByToken.get(token)?.push(tokenOperation);
|
|
75
|
+
}
|
|
75
76
|
const subAccounts = [];
|
|
76
77
|
// extract token accounts from existing operations
|
|
77
78
|
for (const [token, tokenOperations] of operationsByToken.entries()) {
|
|
@@ -102,7 +103,7 @@ const getSubAccounts = async (accountId, lastTokenOperations, mirrorTokens) => {
|
|
|
102
103
|
const parentAccountId = accountId;
|
|
103
104
|
const rawBalance = rawToken.balance;
|
|
104
105
|
const balance = new bignumber_js_1.default(rawBalance);
|
|
105
|
-
const token = (0,
|
|
106
|
+
const token = await (0, index_1.getCryptoAssetsStore)().findTokenByAddressInCurrency(rawToken.token_id, "hedera");
|
|
106
107
|
if (!token) {
|
|
107
108
|
continue;
|
|
108
109
|
}
|
|
@@ -129,9 +130,9 @@ const getSubAccounts = async (accountId, lastTokenOperations, mirrorTokens) => {
|
|
|
129
130
|
};
|
|
130
131
|
exports.getSubAccounts = getSubAccounts;
|
|
131
132
|
// create NONE coin operation that will be a parent of an orphan child operation
|
|
132
|
-
const makeCoinOperationForOrphanChildOperation = (childOperation) => {
|
|
133
|
+
const makeCoinOperationForOrphanChildOperation = async (childOperation) => {
|
|
133
134
|
const type = "NONE";
|
|
134
|
-
const { accountId } = (0, account_1.decodeTokenAccountId)(childOperation.accountId);
|
|
135
|
+
const { accountId } = await (0, account_1.decodeTokenAccountId)(childOperation.accountId);
|
|
135
136
|
const id = (0, operation_1.encodeOperationId)(accountId, childOperation.hash, type);
|
|
136
137
|
return {
|
|
137
138
|
id,
|
|
@@ -155,7 +156,7 @@ const makeCoinOperationForOrphanChildOperation = (childOperation) => {
|
|
|
155
156
|
// this util handles:
|
|
156
157
|
// - linking sub operations with coin operations, e.g. token transfer with fee payment
|
|
157
158
|
// - if possible, assigning `extra.associatedTokenId = mirrorToken.tokenId` based on operation's consensus timestamp
|
|
158
|
-
const prepareOperations = (coinOperations, tokenOperations) => {
|
|
159
|
+
const prepareOperations = async (coinOperations, tokenOperations) => {
|
|
159
160
|
const preparedCoinOperations = coinOperations.map(op => ({ ...op }));
|
|
160
161
|
const preparedTokenOperations = tokenOperations.map(op => ({ ...op }));
|
|
161
162
|
// loop through coin operations to prepare a map of hash => operations
|
|
@@ -169,12 +170,12 @@ const prepareOperations = (coinOperations, tokenOperations) => {
|
|
|
169
170
|
});
|
|
170
171
|
// loop through token operations to potentially copy them as a child operation of a coin operation
|
|
171
172
|
for (const tokenOperation of preparedTokenOperations) {
|
|
172
|
-
const { token } = (0, account_1.decodeTokenAccountId)(tokenOperation.accountId);
|
|
173
|
+
const { token } = await (0, account_1.decodeTokenAccountId)(tokenOperation.accountId);
|
|
173
174
|
if (!token)
|
|
174
175
|
continue;
|
|
175
176
|
let mainOperations = coinOperationsByHash[tokenOperation.hash];
|
|
176
177
|
if (!mainOperations?.length) {
|
|
177
|
-
const noneOperation = makeCoinOperationForOrphanChildOperation(tokenOperation);
|
|
178
|
+
const noneOperation = await makeCoinOperationForOrphanChildOperation(tokenOperation);
|
|
178
179
|
mainOperations = [noneOperation];
|
|
179
180
|
preparedCoinOperations.push(noneOperation);
|
|
180
181
|
}
|
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;AACrC,8DAAqC;AAErC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAoC9F"}
|
package/lib/logic/getBalance.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getBalance = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_1 = require("@ledgerhq/coin-framework/crypto-assets/index");
|
|
5
5
|
const api_1 = require("../network/api");
|
|
6
6
|
async function getBalance(currency, address) {
|
|
7
7
|
const [mirrorAccount, mirrorTokens] = await Promise.all([
|
|
@@ -15,7 +15,7 @@ async function getBalance(currency, address) {
|
|
|
15
15
|
},
|
|
16
16
|
];
|
|
17
17
|
for (const mirrorToken of mirrorTokens) {
|
|
18
|
-
const calToken = (0,
|
|
18
|
+
const calToken = await (0, index_1.getCryptoAssetsStore)().findTokenByAddressInCurrency(mirrorToken.token_id, currency.id);
|
|
19
19
|
if (!calToken) {
|
|
20
20
|
continue;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":";;;AAEA,wEAAoF;AACpF,wCAA2C;AAEpC,KAAK,UAAU,UAAU,CAAC,QAAwB,EAAE,OAAe;IACxE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,eAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,eAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACpC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAc;QACzB;YACE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;SAC7C;KACF,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAoB,GAAE,CAAC,4BAA4B,CACxE,WAAW,CAAC,QAAQ,EACpB,QAAQ,CAAC,EAAE,CACZ,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ,CAAC,SAAS;gBACxB,cAAc,EAAE,QAAQ,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AApCD,gCAoCC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTokenFromAsset = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_1 = require("@ledgerhq/coin-framework/crypto-assets/index");
|
|
5
5
|
async function getTokenFromAsset(currency, asset) {
|
|
6
6
|
const tokenId = asset.type !== "native" && "assetReference" in asset ? asset.assetReference : undefined;
|
|
7
7
|
if (!tokenId) {
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
-
return (0,
|
|
10
|
+
return (0, index_1.getCryptoAssetsStore)().findTokenByAddressInCurrency(tokenId, currency.id);
|
|
11
11
|
}
|
|
12
12
|
exports.getTokenFromAsset = getTokenFromAsset;
|
|
13
13
|
//# sourceMappingURL=getTokenFromAsset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTokenFromAsset.js","sourceRoot":"","sources":["../../src/logic/getTokenFromAsset.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"getTokenFromAsset.js","sourceRoot":"","sources":["../../src/logic/getTokenFromAsset.ts"],"names":[],"mappings":";;;AAEA,wEAAoF;AAE7E,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,KAAgB;IAEhB,MAAM,OAAO,GACX,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,IAAA,4BAAoB,GAAE,CAAC,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC;AAZD,8CAYC"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.listOperations = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
-
const
|
|
8
|
+
const index_1 = require("@ledgerhq/coin-framework/crypto-assets/index");
|
|
9
9
|
const accountId_1 = require("@ledgerhq/coin-framework/account/accountId");
|
|
10
10
|
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
11
11
|
const api_1 = require("../network/api");
|
|
@@ -35,12 +35,12 @@ function getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks) {
|
|
|
35
35
|
extra,
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
function processTokenTransfers({ rawTx, address, currency, ledgerAccountId, commonData, skipFeesForTokenOperations, }) {
|
|
38
|
+
async function processTokenTransfers({ rawTx, address, currency, ledgerAccountId, commonData, skipFeesForTokenOperations, }) {
|
|
39
39
|
const tokenTransfers = rawTx.token_transfers ?? [];
|
|
40
40
|
if (tokenTransfers.length === 0)
|
|
41
41
|
return null;
|
|
42
42
|
const tokenId = tokenTransfers[0].token_id;
|
|
43
|
-
const token = (0,
|
|
43
|
+
const token = await (0, index_1.getCryptoAssetsStore)().findTokenByAddressInCurrency(tokenId, currency.id);
|
|
44
44
|
if (!token)
|
|
45
45
|
return null;
|
|
46
46
|
const encodedTokenId = (0, accountId_1.encodeTokenAccountId)(ledgerAccountId, token);
|
|
@@ -144,7 +144,7 @@ async function listOperations({ currency, address, mirrorTokens, pagination, fet
|
|
|
144
144
|
for (const rawTx of mirrorResult.transactions) {
|
|
145
145
|
const commonData = getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks);
|
|
146
146
|
// process token transfers
|
|
147
|
-
const tokenResult = processTokenTransfers({
|
|
147
|
+
const tokenResult = await processTokenTransfers({
|
|
148
148
|
rawTx,
|
|
149
149
|
address,
|
|
150
150
|
currency,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAIrC,
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
|
49
49
|
});
|
|
50
50
|
const newSubAccounts = await getSubAccounts(liveAccountId, latestAccountOperations.tokenOperations, mirrorTokens);
|
|
51
51
|
const subAccounts = mergeSubAccounts(initialAccount, newSubAccounts);
|
|
52
|
-
const newOperations = prepareOperations(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations);
|
|
52
|
+
const newOperations = await prepareOperations(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations);
|
|
53
53
|
const enrichedNewOperations = applyPendingExtras(newOperations, pendingOperations);
|
|
54
54
|
const operations = shouldSyncFromScratch
|
|
55
55
|
? enrichedNewOperations
|
|
@@ -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;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,MAAM,eAAe,GAAmC,KAAK,EAClE,IAAI,EACJ,EAAE,mBAAmB,EAAE,EACU,EAAE;IACnC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnE,SAAS,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,eAAe,CAAC;QACpC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,yCAAyC;IACzC,sFAAsF;IACtF,yEAAyE;IACzE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACpC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,CAAC,cAAc,IAAI,QAAQ,KAAK,cAAc,EAAE,QAAQ,CAAC;IAEvF,MAAM,aAAa,GAAG,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAC;IAElE,mEAAmE;IACnE,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,wBAAwB,GAC5B,CAAC,qBAAqB,IAAI,eAAe;QACvC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,uBAAuB,GAAG,MAAM,cAAc,CAAC;QACnD,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,UAAU,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,GAAG,CAAC,wBAAwB,IAAI,EAAE,eAAe,EAAE,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC;SAC1F;QACD,aAAa,EAAE,IAAI;QACnB,0BAA0B,EAAE,KAAK;QACjC,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,KAAK;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,cAAc,CACzC,aAAa,EACb,uBAAuB,CAAC,eAAe,EACvC,YAAY,CACb,CAAC;IACF,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,iBAAiB,
|
|
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
|
@@ -12,7 +12,7 @@ export declare const calculateAmount: ({ account, transaction, }: {
|
|
|
12
12
|
}) => Promise<CalculateAmountResult>;
|
|
13
13
|
export declare const getSyncHash: (currency: CryptoCurrency, blacklistedTokenIds?: string[]) => string;
|
|
14
14
|
export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
|
|
15
|
-
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Operation<HederaOperationExtra>[]
|
|
15
|
+
export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Promise<Operation<HederaOperationExtra>[]>;
|
|
16
16
|
/**
|
|
17
17
|
* In charge of smartly merging sub accounts while maintaining references as much as possible
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAU7E,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAU7E,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAOlF,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;AAIF,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;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,9 +1,10 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import murmurhash from "imurmurhash";
|
|
3
|
-
import {
|
|
3
|
+
import { listTokensForCryptoCurrency } from "@ledgerhq/cryptoassets";
|
|
4
4
|
import { decodeTokenAccountId, emptyHistoryCache, encodeTokenAccountId, findSubAccountById, isTokenAccount, } from "@ledgerhq/coin-framework/account";
|
|
5
5
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
6
6
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
7
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
7
8
|
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
8
9
|
import { estimateMaxSpendable } from "./estimateMaxSpendable";
|
|
9
10
|
import { estimateFees } from "../logic/estimateFees";
|
|
@@ -51,19 +52,19 @@ export const getSyncHash = (currency, blacklistedTokenIds = []) => {
|
|
|
51
52
|
};
|
|
52
53
|
export const getSubAccounts = async (accountId, lastTokenOperations, mirrorTokens) => {
|
|
53
54
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
54
|
-
const operationsByToken =
|
|
55
|
-
|
|
55
|
+
const operationsByToken = new Map();
|
|
56
|
+
for (const tokenOperation of lastTokenOperations) {
|
|
57
|
+
const { token } = await decodeTokenAccountId(tokenOperation.accountId);
|
|
56
58
|
if (!token)
|
|
57
|
-
|
|
58
|
-
const isTokenListedInCAL = findTokenByAddressInCurrency(token.contractAddress, token.parentCurrency.id);
|
|
59
|
+
continue;
|
|
60
|
+
const isTokenListedInCAL = await getCryptoAssetsStore().findTokenByAddressInCurrency(token.contractAddress, token.parentCurrency.id);
|
|
59
61
|
if (!isTokenListedInCAL)
|
|
60
|
-
|
|
61
|
-
if (!
|
|
62
|
-
|
|
62
|
+
continue;
|
|
63
|
+
if (!operationsByToken.has(token)) {
|
|
64
|
+
operationsByToken.set(token, []);
|
|
63
65
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}, new Map());
|
|
66
|
+
operationsByToken.get(token)?.push(tokenOperation);
|
|
67
|
+
}
|
|
67
68
|
const subAccounts = [];
|
|
68
69
|
// extract token accounts from existing operations
|
|
69
70
|
for (const [token, tokenOperations] of operationsByToken.entries()) {
|
|
@@ -94,7 +95,7 @@ export const getSubAccounts = async (accountId, lastTokenOperations, mirrorToken
|
|
|
94
95
|
const parentAccountId = accountId;
|
|
95
96
|
const rawBalance = rawToken.balance;
|
|
96
97
|
const balance = new BigNumber(rawBalance);
|
|
97
|
-
const token = findTokenByAddressInCurrency(rawToken.token_id, "hedera");
|
|
98
|
+
const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(rawToken.token_id, "hedera");
|
|
98
99
|
if (!token) {
|
|
99
100
|
continue;
|
|
100
101
|
}
|
|
@@ -120,9 +121,9 @@ export const getSubAccounts = async (accountId, lastTokenOperations, mirrorToken
|
|
|
120
121
|
return subAccounts;
|
|
121
122
|
};
|
|
122
123
|
// create NONE coin operation that will be a parent of an orphan child operation
|
|
123
|
-
const makeCoinOperationForOrphanChildOperation = (childOperation) => {
|
|
124
|
+
const makeCoinOperationForOrphanChildOperation = async (childOperation) => {
|
|
124
125
|
const type = "NONE";
|
|
125
|
-
const { accountId } = decodeTokenAccountId(childOperation.accountId);
|
|
126
|
+
const { accountId } = await decodeTokenAccountId(childOperation.accountId);
|
|
126
127
|
const id = encodeOperationId(accountId, childOperation.hash, type);
|
|
127
128
|
return {
|
|
128
129
|
id,
|
|
@@ -146,7 +147,7 @@ const makeCoinOperationForOrphanChildOperation = (childOperation) => {
|
|
|
146
147
|
// this util handles:
|
|
147
148
|
// - linking sub operations with coin operations, e.g. token transfer with fee payment
|
|
148
149
|
// - if possible, assigning `extra.associatedTokenId = mirrorToken.tokenId` based on operation's consensus timestamp
|
|
149
|
-
export const prepareOperations = (coinOperations, tokenOperations) => {
|
|
150
|
+
export const prepareOperations = async (coinOperations, tokenOperations) => {
|
|
150
151
|
const preparedCoinOperations = coinOperations.map(op => ({ ...op }));
|
|
151
152
|
const preparedTokenOperations = tokenOperations.map(op => ({ ...op }));
|
|
152
153
|
// loop through coin operations to prepare a map of hash => operations
|
|
@@ -160,12 +161,12 @@ export const prepareOperations = (coinOperations, tokenOperations) => {
|
|
|
160
161
|
});
|
|
161
162
|
// loop through token operations to potentially copy them as a child operation of a coin operation
|
|
162
163
|
for (const tokenOperation of preparedTokenOperations) {
|
|
163
|
-
const { token } = decodeTokenAccountId(tokenOperation.accountId);
|
|
164
|
+
const { token } = await decodeTokenAccountId(tokenOperation.accountId);
|
|
164
165
|
if (!token)
|
|
165
166
|
continue;
|
|
166
167
|
let mainOperations = coinOperationsByHash[tokenOperation.hash];
|
|
167
168
|
if (!mainOperations?.length) {
|
|
168
|
-
const noneOperation = makeCoinOperationForOrphanChildOperation(tokenOperation);
|
|
169
|
+
const noneOperation = await makeCoinOperationForOrphanChildOperation(tokenOperation);
|
|
169
170
|
mainOperations = [noneOperation];
|
|
170
171
|
preparedCoinOperations.push(noneOperation);
|
|
171
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ3E,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACjC,OAAO,EACP,WAAW,EACX,aAAa,GAKd,EAAkC,EAAE;IACnC,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY;QACrC,CAAC,CAAC,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACtD,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;IAEvB,OAAO;QACL,MAAM;QACN,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;KACvC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAClC,OAAO,EACP,YAAY,EACZ,WAAW,GAKZ,EAAkC,EAAE;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY;QACrC,CAAC,CAAC,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC5F,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;IAEvB,OAAO;QACL,MAAM;QACN,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,OAAO,EACP,WAAW,GAIZ,EAAkC,EAAE;IACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,oBAAoB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,aAAa,GAA2B,2BAA2B,CAAC,WAAW,CAAC;QACpF,CAAC,CAAC,sBAAsB,CAAC,cAAc;QACvC,CAAC,CAAC,sBAAsB,CAAC,cAAc,CAAC;IAE1C,OAAO,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAA2B,EAAE,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAwB,EACxB,sBAAgC,EAAE,EAC1B,EAAE;IACV,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,YAAY,GAChB,QAAQ,CAAC,EAAE;QACX,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1F,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/B,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,qBAAqB,CAAC,YAAY,CAAC,GAAG,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;IAED,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,SAAiB,EACjB,mBAAgC,EAChC,YAAiC,EACR,EAAE;IAC3B,gHAAgH;IAChH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEhE,KAAK,MAAM,cAAc,IAAI,mBAAmB,EAAE,CAAC;QACjD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,EAAE,CAAC,4BAA4B,CAClF,KAAK,CAAC,eAAe,EACrB,KAAK,CAAC,cAAc,CAAC,EAAE,CACxB,CAAC;QACF,IAAI,CAAC,kBAAkB;YAAE,SAAS;QAElC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,WAAW,GAAmB,EAAE,CAAC;IAEvC,kDAAkD;IAClD,KAAK,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;QACnE,MAAM,eAAe,GAAG,SAAS,CAAC;QAClC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QACzF,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC;YAChD,QAAQ,EAAE,eAAe;YACzB,KAAK;YACL,OAAO;YACP,gBAAgB,EAAE,OAAO;YACzB,YAAY,EACV,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAC5F,UAAU,EAAE,eAAe;YAC3B,eAAe,EAAE,eAAe,CAAC,MAAM;YACvC,iBAAiB,EAAE,EAAE;YACrB,mBAAmB,EAAE,iBAAiB;YACtC,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAED,gGAAgG;IAChG,0EAA0E;IAC1E,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,SAAS,CAAC;QAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,oBAAoB,EAAE,CAAC,4BAA4B,CACrE,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,MAAM,EAAE,GAAG,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAExD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC;YAChD,QAAQ,EAAE,eAAe;YACzB,KAAK;YACL,OAAO;YACP,gBAAgB,EAAE,OAAO;YACzB,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;YACrE,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,EAAE;YACrB,mBAAmB,EAAE,iBAAiB;YACtC,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAKF,gFAAgF;AAChF,MAAM,wCAAwC,GAAG,KAAK,EACpD,cAA+C,EACA,EAAE;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC3E,MAAM,EAAE,GAAG,iBAAiB,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnE,OAAO;QACL,EAAE;QACF,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,IAAI;QACJ,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;QACvB,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;QACrB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,yBAAyB,EAAE,cAAc,CAAC,yBAAyB;QACnE,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,kBAAkB,EAAE,EAAE;QACtB,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC,CAAC;AAEF,qBAAqB;AACrB,sFAAsF;AACtF,oHAAoH;AACpH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,cAAiD,EACjD,eAAkD,EACN,EAAE;IAC9C,MAAM,sBAAsB,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,uBAAuB,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAEvE,sEAAsE;IACtE,MAAM,oBAAoB,GAA2D,EAAE,CAAC;IACxF,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAClC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,CAAC;QAED,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC;QACtB,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAA0C,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,kGAAkG;IAClG,KAAK,MAAM,cAAc,IAAI,uBAAuB,EAAE,CAAC;QACrD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,IAAI,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,MAAM,wCAAwC,CAAC,cAAc,CAAC,CAAC;YACrF,cAAc,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC;QAED,0GAA0G;QAC1G,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,6BAA6B,GAAG;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;IACjC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1C,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE;IAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;IACnC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;CACW,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,cAAmC,EACnC,cAA8B,EACT,EAAE;IACvB,MAAM,cAAc,GAAoC,cAAc,EAAE,WAAW,CAAC;IAEpF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,6CAA6C;IAC7C,MAAM,kBAAkB,GAAiC,EAAE,CAAC;IAC5D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC;IACvD,CAAC;IAED,8EAA8E;IAC9E,sFAAsF;IACtF,+DAA+D;IAC/D,MAAM,mBAAmB,GAAmB,EAAE,CAAC;IAC/C,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,MAAM,iBAAiB,GAA6B,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEzF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAA0B,EAAE,CAAC;QAC1C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,6BAA6B,EAAE,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,kFAAkF;oBAClF,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,OAAO,CAAC,eAAe;YACrB,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,iBAAiB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;QAE3E,6DAA6D;QAC7D,kBAAkB,CAAC,aAAa,CAAC,EAAG,CAAC,GAAG;YACtC,GAAG,iBAAiB;YACpB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,mBAAmB,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAqB,EAAE,OAAoB,EAAE,EAAE;IAChF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACvB,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE9C,OAAO;YACL,GAAG,EAAE;YACL,KAAK,EAAE;gBACL,GAAG,SAAS,CAAC,KAAK;gBAClB,GAAG,EAAE,CAAC,KAAK;aACZ;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,SAAoB,EACpB,KAA2B;IAE3B,OAAO;QACL,GAAG,SAAS;QACZ,KAAK;QACL,aAAa,EAAE,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,aAAa,EAAE,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;KAC7E,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,wBAAsB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAoC9F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
2
2
|
import { apiClient } from "../network/api";
|
|
3
3
|
export async function getBalance(currency, address) {
|
|
4
4
|
const [mirrorAccount, mirrorTokens] = await Promise.all([
|
|
@@ -12,7 +12,7 @@ export async function getBalance(currency, address) {
|
|
|
12
12
|
},
|
|
13
13
|
];
|
|
14
14
|
for (const mirrorToken of mirrorTokens) {
|
|
15
|
-
const calToken = findTokenByAddressInCurrency(mirrorToken.token_id, currency.id);
|
|
15
|
+
const calToken = await getCryptoAssetsStore().findTokenByAddressInCurrency(mirrorToken.token_id, currency.id);
|
|
16
16
|
if (!calToken) {
|
|
17
17
|
continue;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAwB,EAAE,OAAe;IACxE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACpC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAc;QACzB;YACE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;SAC7C;KACF,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC,4BAA4B,CACxE,WAAW,CAAC,QAAQ,EACpB,QAAQ,CAAC,EAAE,CACZ,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ,CAAC,SAAS;gBACxB,cAAc,EAAE,QAAQ,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
2
2
|
export async function getTokenFromAsset(currency, asset) {
|
|
3
3
|
const tokenId = asset.type !== "native" && "assetReference" in asset ? asset.assetReference : undefined;
|
|
4
4
|
if (!tokenId) {
|
|
5
5
|
return;
|
|
6
6
|
}
|
|
7
|
-
return findTokenByAddressInCurrency(tokenId, currency.id);
|
|
7
|
+
return getCryptoAssetsStore().findTokenByAddressInCurrency(tokenId, currency.id);
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=getTokenFromAsset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTokenFromAsset.js","sourceRoot":"","sources":["../../src/logic/getTokenFromAsset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getTokenFromAsset.js","sourceRoot":"","sources":["../../src/logic/getTokenFromAsset.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,KAAgB;IAEhB,MAAM,OAAO,GACX,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,oBAAoB,EAAE,CAAC,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import {
|
|
2
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
3
3
|
import { encodeAccountId, encodeTokenAccountId } from "@ledgerhq/coin-framework/account/accountId";
|
|
4
4
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
5
5
|
import { apiClient } from "../network/api";
|
|
@@ -29,12 +29,12 @@ function getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks) {
|
|
|
29
29
|
extra,
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
function processTokenTransfers({ rawTx, address, currency, ledgerAccountId, commonData, skipFeesForTokenOperations, }) {
|
|
32
|
+
async function processTokenTransfers({ rawTx, address, currency, ledgerAccountId, commonData, skipFeesForTokenOperations, }) {
|
|
33
33
|
const tokenTransfers = rawTx.token_transfers ?? [];
|
|
34
34
|
if (tokenTransfers.length === 0)
|
|
35
35
|
return null;
|
|
36
36
|
const tokenId = tokenTransfers[0].token_id;
|
|
37
|
-
const token = findTokenByAddressInCurrency(tokenId, currency.id);
|
|
37
|
+
const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(tokenId, currency.id);
|
|
38
38
|
if (!token)
|
|
39
39
|
return null;
|
|
40
40
|
const encodedTokenId = encodeTokenAccountId(ledgerAccountId, token);
|
|
@@ -138,7 +138,7 @@ export async function listOperations({ currency, address, mirrorTokens, paginati
|
|
|
138
138
|
for (const rawTx of mirrorResult.transactions) {
|
|
139
139
|
const commonData = getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks);
|
|
140
140
|
// process token transfers
|
|
141
|
-
const tokenResult = processTokenTransfers({
|
|
141
|
+
const tokenResult = await processTokenTransfers({
|
|
142
142
|
rawTx,
|
|
143
143
|
address,
|
|
144
144
|
currency,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.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.13.0-nightly.
|
|
3
|
+
"version": "1.13.0-nightly.6",
|
|
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.8.0-nightly.
|
|
86
|
-
"@ledgerhq/cryptoassets": "^13.32.0-nightly.
|
|
87
|
-
"@ledgerhq/devices": "8.
|
|
85
|
+
"@ledgerhq/coin-framework": "^6.8.0-nightly.6",
|
|
86
|
+
"@ledgerhq/cryptoassets": "^13.32.0-nightly.4",
|
|
87
|
+
"@ledgerhq/devices": "8.7.0-nightly.1",
|
|
88
88
|
"@ledgerhq/errors": "^6.27.0-nightly.0",
|
|
89
|
-
"@ledgerhq/live-countervalues": "^0.8.1-nightly.
|
|
89
|
+
"@ledgerhq/live-countervalues": "^0.8.1-nightly.6",
|
|
90
90
|
"@ledgerhq/live-env": "^2.20.0-nightly.0",
|
|
91
91
|
"@ledgerhq/live-network": "^2.1.0-nightly.1",
|
|
92
|
-
"@ledgerhq/types-live": "^6.88.0-nightly.
|
|
92
|
+
"@ledgerhq/types-live": "^6.88.0-nightly.3"
|
|
93
93
|
},
|
|
94
94
|
"devDependencies": {
|
|
95
95
|
"@types/imurmurhash": "^0.1.4",
|
|
@@ -78,7 +78,7 @@ export const getAccountShape: GetAccountShape<HederaAccount> = async (
|
|
|
78
78
|
mirrorTokens,
|
|
79
79
|
);
|
|
80
80
|
const subAccounts = mergeSubAccounts(initialAccount, newSubAccounts);
|
|
81
|
-
const newOperations = prepareOperations(
|
|
81
|
+
const newOperations = await prepareOperations(
|
|
82
82
|
latestAccountOperations.coinOperations,
|
|
83
83
|
latestAccountOperations.tokenOperations,
|
|
84
84
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import { encodeTokenAccountId } from "@ledgerhq/coin-framework/account";
|
|
3
3
|
import { setCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
4
|
-
import { legacyCryptoAssetsStore } from "@ledgerhq/cryptoassets/
|
|
4
|
+
import { legacyCryptoAssetsStore } from "@ledgerhq/cryptoassets/legacy/legacy-store";
|
|
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";
|
|
@@ -229,7 +229,7 @@ describe("utils", () => {
|
|
|
229
229
|
describe("prepareOperations", () => {
|
|
230
230
|
const tokenCurrencyFromCAL = getTokenCurrencyFromCAL(0);
|
|
231
231
|
|
|
232
|
-
test("links token operation to existing coin operation with matching hash", () => {
|
|
232
|
+
test("links token operation to existing coin operation with matching hash", async () => {
|
|
233
233
|
const mockedTokenAccount = getMockedTokenAccount(tokenCurrencyFromCAL);
|
|
234
234
|
const mockedCoinOperation = getMockedOperation({ hash: "shared" });
|
|
235
235
|
const mockedTokenOperation = getMockedOperation({
|
|
@@ -237,20 +237,20 @@ describe("utils", () => {
|
|
|
237
237
|
accountId: encodeTokenAccountId(mockedTokenAccount.parentId, tokenCurrencyFromCAL),
|
|
238
238
|
});
|
|
239
239
|
|
|
240
|
-
const result = prepareOperations([mockedCoinOperation], [mockedTokenOperation]);
|
|
240
|
+
const result = await prepareOperations([mockedCoinOperation], [mockedTokenOperation]);
|
|
241
241
|
|
|
242
242
|
expect(result).toHaveLength(1);
|
|
243
243
|
expect(result[0].subOperations).toEqual([mockedTokenOperation]);
|
|
244
244
|
});
|
|
245
245
|
|
|
246
|
-
test("creates NONE coin operation as parent if no coin op with matching hash exists", () => {
|
|
246
|
+
test("creates NONE coin operation as parent if no coin op with matching hash exists", async () => {
|
|
247
247
|
const mockedTokenAccount = getMockedTokenAccount(tokenCurrencyFromCAL);
|
|
248
248
|
const mockedOrphanTokenOperation = getMockedOperation({
|
|
249
249
|
hash: "unknown-hash",
|
|
250
250
|
accountId: encodeTokenAccountId(mockedTokenAccount.parentId, tokenCurrencyFromCAL),
|
|
251
251
|
});
|
|
252
252
|
|
|
253
|
-
const result = prepareOperations([], [mockedOrphanTokenOperation]);
|
|
253
|
+
const result = await prepareOperations([], [mockedOrphanTokenOperation]);
|
|
254
254
|
const noneOp = result.find(op => op.type === "NONE");
|
|
255
255
|
|
|
256
256
|
expect(typeof noneOp).toBe("object");
|
package/src/bridge/utils.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import murmurhash from "imurmurhash";
|
|
3
3
|
import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
|
|
4
|
-
import {
|
|
4
|
+
import { listTokensForCryptoCurrency } from "@ledgerhq/cryptoassets";
|
|
5
5
|
import {
|
|
6
6
|
decodeTokenAccountId,
|
|
7
7
|
emptyHistoryCache,
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
13
13
|
import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
14
14
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
15
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
15
16
|
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
16
17
|
import { estimateMaxSpendable } from "./estimateMaxSpendable";
|
|
17
18
|
import { estimateFees } from "../logic/estimateFees";
|
|
@@ -109,27 +110,24 @@ export const getSubAccounts = async (
|
|
|
109
110
|
mirrorTokens: HederaMirrorToken[],
|
|
110
111
|
): Promise<TokenAccount[]> => {
|
|
111
112
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
112
|
-
const operationsByToken =
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const isTokenListedInCAL = findTokenByAddressInCurrency(
|
|
118
|
-
token.contractAddress,
|
|
119
|
-
token.parentCurrency.id,
|
|
120
|
-
);
|
|
121
|
-
if (!isTokenListedInCAL) return acc;
|
|
122
|
-
|
|
123
|
-
if (!acc.has(token)) {
|
|
124
|
-
acc.set(token, []);
|
|
125
|
-
}
|
|
113
|
+
const operationsByToken = new Map<TokenCurrency, Operation[]>();
|
|
114
|
+
|
|
115
|
+
for (const tokenOperation of lastTokenOperations) {
|
|
116
|
+
const { token } = await decodeTokenAccountId(tokenOperation.accountId);
|
|
117
|
+
if (!token) continue;
|
|
126
118
|
|
|
127
|
-
|
|
119
|
+
const isTokenListedInCAL = await getCryptoAssetsStore().findTokenByAddressInCurrency(
|
|
120
|
+
token.contractAddress,
|
|
121
|
+
token.parentCurrency.id,
|
|
122
|
+
);
|
|
123
|
+
if (!isTokenListedInCAL) continue;
|
|
128
124
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
125
|
+
if (!operationsByToken.has(token)) {
|
|
126
|
+
operationsByToken.set(token, []);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
operationsByToken.get(token)?.push(tokenOperation);
|
|
130
|
+
}
|
|
133
131
|
|
|
134
132
|
const subAccounts: TokenAccount[] = [];
|
|
135
133
|
|
|
@@ -166,7 +164,10 @@ export const getSubAccounts = async (
|
|
|
166
164
|
const parentAccountId = accountId;
|
|
167
165
|
const rawBalance = rawToken.balance;
|
|
168
166
|
const balance = new BigNumber(rawBalance);
|
|
169
|
-
const token = findTokenByAddressInCurrency(
|
|
167
|
+
const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(
|
|
168
|
+
rawToken.token_id,
|
|
169
|
+
"hedera",
|
|
170
|
+
);
|
|
170
171
|
|
|
171
172
|
if (!token) {
|
|
172
173
|
continue;
|
|
@@ -201,11 +202,11 @@ type CoinOperationForOrphanChildOperation = Operation<HederaOperationExtra> &
|
|
|
201
202
|
Required<Pick<Operation, "subOperations">>;
|
|
202
203
|
|
|
203
204
|
// create NONE coin operation that will be a parent of an orphan child operation
|
|
204
|
-
const makeCoinOperationForOrphanChildOperation = (
|
|
205
|
+
const makeCoinOperationForOrphanChildOperation = async (
|
|
205
206
|
childOperation: Operation<HederaOperationExtra>,
|
|
206
|
-
): CoinOperationForOrphanChildOperation => {
|
|
207
|
+
): Promise<CoinOperationForOrphanChildOperation> => {
|
|
207
208
|
const type = "NONE";
|
|
208
|
-
const { accountId } = decodeTokenAccountId(childOperation.accountId);
|
|
209
|
+
const { accountId } = await decodeTokenAccountId(childOperation.accountId);
|
|
209
210
|
const id = encodeOperationId(accountId, childOperation.hash, type);
|
|
210
211
|
|
|
211
212
|
return {
|
|
@@ -231,10 +232,10 @@ const makeCoinOperationForOrphanChildOperation = (
|
|
|
231
232
|
// this util handles:
|
|
232
233
|
// - linking sub operations with coin operations, e.g. token transfer with fee payment
|
|
233
234
|
// - if possible, assigning `extra.associatedTokenId = mirrorToken.tokenId` based on operation's consensus timestamp
|
|
234
|
-
export const prepareOperations = (
|
|
235
|
+
export const prepareOperations = async (
|
|
235
236
|
coinOperations: Operation<HederaOperationExtra>[],
|
|
236
237
|
tokenOperations: Operation<HederaOperationExtra>[],
|
|
237
|
-
): Operation<HederaOperationExtra>[] => {
|
|
238
|
+
): Promise<Operation<HederaOperationExtra>[]> => {
|
|
238
239
|
const preparedCoinOperations = coinOperations.map(op => ({ ...op }));
|
|
239
240
|
const preparedTokenOperations = tokenOperations.map(op => ({ ...op }));
|
|
240
241
|
|
|
@@ -251,13 +252,13 @@ export const prepareOperations = (
|
|
|
251
252
|
|
|
252
253
|
// loop through token operations to potentially copy them as a child operation of a coin operation
|
|
253
254
|
for (const tokenOperation of preparedTokenOperations) {
|
|
254
|
-
const { token } = decodeTokenAccountId(tokenOperation.accountId);
|
|
255
|
+
const { token } = await decodeTokenAccountId(tokenOperation.accountId);
|
|
255
256
|
if (!token) continue;
|
|
256
257
|
|
|
257
258
|
let mainOperations = coinOperationsByHash[tokenOperation.hash];
|
|
258
259
|
|
|
259
260
|
if (!mainOperations?.length) {
|
|
260
|
-
const noneOperation = makeCoinOperationForOrphanChildOperation(tokenOperation);
|
|
261
|
+
const noneOperation = await makeCoinOperationForOrphanChildOperation(tokenOperation);
|
|
261
262
|
mainOperations = [noneOperation];
|
|
262
263
|
preparedCoinOperations.push(noneOperation);
|
|
263
264
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { findTokenByAddressInCurrency } from "@ledgerhq/cryptoassets/tokens";
|
|
2
1
|
import { getBalance } from "./getBalance";
|
|
3
2
|
import { apiClient } from "../network/api";
|
|
4
3
|
import { getMockedCurrency } from "../test/fixtures/currency.fixture";
|
|
4
|
+
import * as cryptoAssets from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
5
5
|
|
|
6
6
|
jest.mock("../network/api");
|
|
7
|
-
jest.mock("@ledgerhq/
|
|
7
|
+
jest.mock("@ledgerhq/coin-framework/crypto-assets/index");
|
|
8
8
|
|
|
9
9
|
describe("getBalance", () => {
|
|
10
10
|
beforeEach(() => {
|
|
@@ -73,10 +73,12 @@ describe("getBalance", () => {
|
|
|
73
73
|
|
|
74
74
|
(apiClient.getAccount as jest.Mock).mockResolvedValue(mockMirrorAccount);
|
|
75
75
|
(apiClient.getAccountTokens as jest.Mock).mockResolvedValue(mockMirrorTokens);
|
|
76
|
-
(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
(cryptoAssets.getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
77
|
+
findTokenByAddressInCurrency: jest.fn().mockImplementation(tokenId => {
|
|
78
|
+
if (tokenId === "0.0.7890") return mockToken1;
|
|
79
|
+
if (tokenId === "0.0.9876") return mockToken2;
|
|
80
|
+
return null;
|
|
81
|
+
}),
|
|
80
82
|
});
|
|
81
83
|
|
|
82
84
|
const result = await getBalance(mockCurrency, address);
|
|
@@ -85,9 +87,10 @@ describe("getBalance", () => {
|
|
|
85
87
|
expect(apiClient.getAccount).toHaveBeenCalledWith(address);
|
|
86
88
|
expect(apiClient.getAccountTokens).toHaveBeenCalledTimes(1);
|
|
87
89
|
expect(apiClient.getAccountTokens).toHaveBeenCalledWith(address);
|
|
88
|
-
|
|
89
|
-
expect(findTokenByAddressInCurrency).
|
|
90
|
-
expect(findTokenByAddressInCurrency).toHaveBeenCalledWith("0.0.
|
|
90
|
+
const store = (cryptoAssets.getCryptoAssetsStore as jest.Mock)();
|
|
91
|
+
expect(store.findTokenByAddressInCurrency).toHaveBeenCalledTimes(2);
|
|
92
|
+
expect(store.findTokenByAddressInCurrency).toHaveBeenCalledWith("0.0.7890", "hedera");
|
|
93
|
+
expect(store.findTokenByAddressInCurrency).toHaveBeenCalledWith("0.0.9876", "hedera");
|
|
91
94
|
expect(result).toHaveLength(3);
|
|
92
95
|
expect(result).toEqual(
|
|
93
96
|
expect.arrayContaining([
|
|
@@ -147,9 +150,11 @@ describe("getBalance", () => {
|
|
|
147
150
|
|
|
148
151
|
(apiClient.getAccount as jest.Mock).mockResolvedValue(mockMirrorAccount);
|
|
149
152
|
(apiClient.getAccountTokens as jest.Mock).mockResolvedValue(mockMirrorTokens);
|
|
150
|
-
(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
(cryptoAssets.getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
154
|
+
findTokenByAddressInCurrency: jest.fn().mockImplementation(tokenId => {
|
|
155
|
+
if (tokenId === "0.0.7890") return mockToken1;
|
|
156
|
+
return null;
|
|
157
|
+
}),
|
|
153
158
|
});
|
|
154
159
|
|
|
155
160
|
const result = await getBalance(mockCurrency, address);
|
package/src/logic/getBalance.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Balance } from "@ledgerhq/coin-framework/api/types";
|
|
2
2
|
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
3
|
-
import {
|
|
3
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
4
4
|
import { apiClient } from "../network/api";
|
|
5
5
|
|
|
6
6
|
export async function getBalance(currency: CryptoCurrency, address: string): Promise<Balance[]> {
|
|
@@ -17,7 +17,10 @@ export async function getBalance(currency: CryptoCurrency, address: string): Pro
|
|
|
17
17
|
];
|
|
18
18
|
|
|
19
19
|
for (const mirrorToken of mirrorTokens) {
|
|
20
|
-
const calToken = findTokenByAddressInCurrency(
|
|
20
|
+
const calToken = await getCryptoAssetsStore().findTokenByAddressInCurrency(
|
|
21
|
+
mirrorToken.token_id,
|
|
22
|
+
currency.id,
|
|
23
|
+
);
|
|
21
24
|
|
|
22
25
|
if (!calToken) {
|
|
23
26
|
continue;
|
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import { getTokenFromAsset } from "./getTokenFromAsset";
|
|
2
|
-
import { getMockedCurrency } from "../test/fixtures/currency.fixture";
|
|
2
|
+
import { getMockedCurrency, getMockedTokenCurrency } from "../test/fixtures/currency.fixture";
|
|
3
|
+
import * as cryptoAssets from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
4
|
+
|
|
5
|
+
jest.mock("@ledgerhq/coin-framework/crypto-assets/index");
|
|
3
6
|
|
|
4
7
|
describe("getTokenFromAsset", () => {
|
|
5
8
|
const mockCurrency = getMockedCurrency();
|
|
9
|
+
const mockToken = getMockedTokenCurrency();
|
|
10
|
+
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
jest.clearAllMocks();
|
|
13
|
+
});
|
|
6
14
|
|
|
7
|
-
it("returns token from
|
|
8
|
-
const asset1 = { type: "hts", assetReference:
|
|
15
|
+
it("returns token from token asset", async () => {
|
|
16
|
+
const asset1 = { type: "hts", assetReference: mockToken.contractAddress };
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
contractAddress: "0.0.5022567",
|
|
13
|
-
name: "hBARK",
|
|
18
|
+
(cryptoAssets.getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
19
|
+
findTokenByAddressInCurrency: jest.fn().mockReturnValue(mockToken),
|
|
14
20
|
});
|
|
21
|
+
|
|
22
|
+
const result = await getTokenFromAsset(mockCurrency, asset1);
|
|
23
|
+
expect(result).toEqual(mockToken);
|
|
24
|
+
expect(result?.id).toBe(mockToken.id);
|
|
25
|
+
expect(result?.contractAddress).toBe(mockToken.contractAddress);
|
|
15
26
|
});
|
|
16
27
|
|
|
17
28
|
it("returns undefined for native asset", async () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AssetInfo } from "@ledgerhq/coin-framework/api/types";
|
|
2
2
|
import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
3
|
-
import {
|
|
3
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
4
4
|
|
|
5
5
|
export async function getTokenFromAsset(
|
|
6
6
|
currency: CryptoCurrency,
|
|
@@ -13,5 +13,5 @@ export async function getTokenFromAsset(
|
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
return findTokenByAddressInCurrency(tokenId, currency.id);
|
|
16
|
+
return getCryptoAssetsStore().findTokenByAddressInCurrency(tokenId, currency.id);
|
|
17
17
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { findTokenByAddressInCurrency } from "@ledgerhq/cryptoassets/tokens";
|
|
2
1
|
import { encodeTokenAccountId } from "@ledgerhq/coin-framework/account/accountId";
|
|
3
2
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
4
3
|
import type { Pagination } from "@ledgerhq/coin-framework/api/types";
|
|
@@ -6,8 +5,9 @@ import { listOperations } from "./listOperations";
|
|
|
6
5
|
import { apiClient } from "../network/api";
|
|
7
6
|
import { getMockedCurrency } from "../test/fixtures/currency.fixture";
|
|
8
7
|
import * as utils from "./utils";
|
|
8
|
+
import * as cryptoAssets from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
9
9
|
|
|
10
|
-
jest.mock("@ledgerhq/
|
|
10
|
+
jest.mock("@ledgerhq/coin-framework/crypto-assets/index");
|
|
11
11
|
jest.mock("@ledgerhq/coin-framework/account/accountId");
|
|
12
12
|
jest.mock("@ledgerhq/coin-framework/operation");
|
|
13
13
|
jest.mock("../network/api");
|
|
@@ -163,7 +163,9 @@ describe("listOperations", () => {
|
|
|
163
163
|
transactions: mockTransactions,
|
|
164
164
|
nextCursor: null,
|
|
165
165
|
});
|
|
166
|
-
(
|
|
166
|
+
(cryptoAssets.getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
167
|
+
findTokenByAddressInCurrency: jest.fn().mockReturnValue(mockToken),
|
|
168
|
+
});
|
|
167
169
|
|
|
168
170
|
const result = await listOperations({
|
|
169
171
|
currency: mockCurrency,
|
|
@@ -288,7 +290,9 @@ describe("listOperations", () => {
|
|
|
288
290
|
transactions: mockTransactions,
|
|
289
291
|
nextCursor: null,
|
|
290
292
|
});
|
|
291
|
-
(
|
|
293
|
+
(cryptoAssets.getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
294
|
+
findTokenByAddressInCurrency: jest.fn().mockReturnValue(null),
|
|
295
|
+
});
|
|
292
296
|
|
|
293
297
|
const result = await listOperations({
|
|
294
298
|
currency: mockCurrency,
|
|
@@ -2,7 +2,7 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import type { Operation } from "@ledgerhq/types-live";
|
|
3
3
|
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
4
4
|
import type { Pagination } from "@ledgerhq/coin-framework/api/types";
|
|
5
|
-
import {
|
|
5
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
6
6
|
import { encodeAccountId, encodeTokenAccountId } from "@ledgerhq/coin-framework/account/accountId";
|
|
7
7
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
8
8
|
import { apiClient } from "../network/api";
|
|
@@ -40,7 +40,7 @@ function getCommonOperationData(
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
function processTokenTransfers({
|
|
43
|
+
async function processTokenTransfers({
|
|
44
44
|
rawTx,
|
|
45
45
|
address,
|
|
46
46
|
currency,
|
|
@@ -54,15 +54,15 @@ function processTokenTransfers({
|
|
|
54
54
|
ledgerAccountId: string;
|
|
55
55
|
commonData: ReturnType<typeof getCommonOperationData>;
|
|
56
56
|
skipFeesForTokenOperations: boolean;
|
|
57
|
-
}): {
|
|
57
|
+
}): Promise<{
|
|
58
58
|
coinOperation: Operation<HederaOperationExtra> | undefined;
|
|
59
59
|
tokenOperation: Operation<HederaOperationExtra>;
|
|
60
|
-
} | null {
|
|
60
|
+
} | null> {
|
|
61
61
|
const tokenTransfers = rawTx.token_transfers ?? [];
|
|
62
62
|
if (tokenTransfers.length === 0) return null;
|
|
63
63
|
|
|
64
64
|
const tokenId = tokenTransfers[0].token_id;
|
|
65
|
-
const token = findTokenByAddressInCurrency(tokenId, currency.id);
|
|
65
|
+
const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(tokenId, currency.id);
|
|
66
66
|
if (!token) return null;
|
|
67
67
|
|
|
68
68
|
const encodedTokenId = encodeTokenAccountId(ledgerAccountId, token);
|
|
@@ -213,7 +213,7 @@ export async function listOperations({
|
|
|
213
213
|
const commonData = getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks);
|
|
214
214
|
|
|
215
215
|
// process token transfers
|
|
216
|
-
const tokenResult = processTokenTransfers({
|
|
216
|
+
const tokenResult = await processTokenTransfers({
|
|
217
217
|
rawTx,
|
|
218
218
|
address,
|
|
219
219
|
currency,
|