@ledgerhq/coin-ton 0.5.2 → 0.5.3
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 +2 -2
- package/CHANGELOG.md +14 -0
- package/lib/__tests__/fixtures/api.fixtures.d.ts +1 -1
- package/lib/__tests__/fixtures/api.fixtures.d.ts.map +1 -1
- package/lib/__tests__/fixtures/common.fixtures.js +4 -1
- package/lib/__tests__/fixtures/common.fixtures.js.map +1 -1
- package/lib/__tests__/integration/bridge.integration.test.js +2 -3
- package/lib/__tests__/integration/bridge.integration.test.js.map +1 -1
- package/lib/__tests__/unit/api.unit.test.js +18 -27
- package/lib/__tests__/unit/api.unit.test.js.map +1 -1
- package/lib/__tests__/unit/broadcast.unit.test.js +10 -13
- package/lib/__tests__/unit/broadcast.unit.test.js.map +1 -1
- package/lib/__tests__/unit/createTransaction.unit.test.js +2 -11
- package/lib/__tests__/unit/createTransaction.unit.test.js.map +1 -1
- package/lib/__tests__/unit/deviceTransactionConfig.unit.test.js +19 -22
- package/lib/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -1
- package/lib/__tests__/unit/estimateMaxSpendable.unit.test.js +6 -15
- package/lib/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -1
- package/lib/__tests__/unit/getTransactionStatus.unit.test.js +58 -48
- package/lib/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -1
- package/lib/__tests__/unit/hw-getAddress.unit.test.js +12 -25
- package/lib/__tests__/unit/hw-getAddress.unit.test.js.map +1 -1
- package/lib/__tests__/unit/prepareTransaction.unit.test.js +46 -34
- package/lib/__tests__/unit/prepareTransaction.unit.test.js.map +1 -1
- package/lib/__tests__/unit/signOperation.unit.test.js +11 -22
- package/lib/__tests__/unit/signOperation.unit.test.js.map +1 -1
- package/lib/__tests__/unit/txn.unit.test.js +32 -39
- package/lib/__tests__/unit/txn.unit.test.js.map +1 -1
- package/lib/__tests__/unit/utils.unit.test.js +22 -8
- package/lib/__tests__/unit/utils.unit.test.js.map +1 -1
- package/lib/bridge/bridgeHelpers/api.js +65 -88
- package/lib/bridge/bridgeHelpers/api.js.map +1 -1
- package/lib/bridge/bridgeHelpers/txn.js +52 -66
- package/lib/bridge/bridgeHelpers/txn.js.map +1 -1
- package/lib/bridge/js.js +1 -10
- package/lib/bridge/js.js.map +1 -1
- package/lib/broadcast.js +3 -12
- package/lib/broadcast.js.map +1 -1
- package/lib/cli-transaction.js +6 -1
- package/lib/cli-transaction.js.map +1 -1
- package/lib/config.js +1 -1
- package/lib/config.js.map +1 -1
- package/lib/estimateMaxSpendable.js +7 -16
- package/lib/estimateMaxSpendable.js.map +1 -1
- package/lib/getTransactionStatus.js +14 -18
- package/lib/getTransactionStatus.js.map +1 -1
- package/lib/hw-getAddress.js +6 -15
- package/lib/hw-getAddress.js.map +1 -1
- package/lib/hw-signMessage.js +3 -12
- package/lib/hw-signMessage.js.map +1 -1
- package/lib/prepareTransaction.js +5 -15
- package/lib/prepareTransaction.js.map +1 -1
- package/lib/signOperation.js +23 -35
- package/lib/signOperation.js.map +1 -1
- package/lib/specs.js +12 -18
- package/lib/specs.js.map +1 -1
- package/lib/synchronisation.js +46 -55
- package/lib/synchronisation.js.map +1 -1
- package/lib/transaction.js +13 -2
- package/lib/transaction.js.map +1 -1
- package/lib/utils.js +11 -20
- package/lib/utils.js.map +1 -1
- package/lib-es/__tests__/fixtures/api.fixtures.d.ts +1 -1
- package/lib-es/__tests__/fixtures/api.fixtures.d.ts.map +1 -1
- package/lib-es/__tests__/fixtures/common.fixtures.js +4 -1
- package/lib-es/__tests__/fixtures/common.fixtures.js.map +1 -1
- package/lib-es/__tests__/integration/bridge.integration.test.js +2 -3
- package/lib-es/__tests__/integration/bridge.integration.test.js.map +1 -1
- package/lib-es/__tests__/unit/api.unit.test.js +18 -27
- package/lib-es/__tests__/unit/api.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/broadcast.unit.test.js +10 -13
- package/lib-es/__tests__/unit/broadcast.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/createTransaction.unit.test.js +2 -11
- package/lib-es/__tests__/unit/createTransaction.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.js +19 -22
- package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.js +6 -15
- package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js +58 -48
- package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/hw-getAddress.unit.test.js +12 -25
- package/lib-es/__tests__/unit/hw-getAddress.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/prepareTransaction.unit.test.js +46 -34
- package/lib-es/__tests__/unit/prepareTransaction.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/signOperation.unit.test.js +11 -22
- package/lib-es/__tests__/unit/signOperation.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/txn.unit.test.js +32 -39
- package/lib-es/__tests__/unit/txn.unit.test.js.map +1 -1
- package/lib-es/__tests__/unit/utils.unit.test.js +22 -8
- package/lib-es/__tests__/unit/utils.unit.test.js.map +1 -1
- package/lib-es/bridge/bridgeHelpers/api.js +65 -88
- package/lib-es/bridge/bridgeHelpers/api.js.map +1 -1
- package/lib-es/bridge/bridgeHelpers/txn.js +52 -66
- package/lib-es/bridge/bridgeHelpers/txn.js.map +1 -1
- package/lib-es/bridge/js.js +1 -10
- package/lib-es/bridge/js.js.map +1 -1
- package/lib-es/broadcast.js +3 -12
- package/lib-es/broadcast.js.map +1 -1
- package/lib-es/cli-transaction.js +6 -1
- package/lib-es/cli-transaction.js.map +1 -1
- package/lib-es/config.js +1 -1
- package/lib-es/config.js.map +1 -1
- package/lib-es/estimateMaxSpendable.js +7 -16
- package/lib-es/estimateMaxSpendable.js.map +1 -1
- package/lib-es/getTransactionStatus.js +14 -18
- package/lib-es/getTransactionStatus.js.map +1 -1
- package/lib-es/hw-getAddress.js +6 -15
- package/lib-es/hw-getAddress.js.map +1 -1
- package/lib-es/hw-signMessage.js +3 -12
- package/lib-es/hw-signMessage.js.map +1 -1
- package/lib-es/prepareTransaction.js +5 -15
- package/lib-es/prepareTransaction.js.map +1 -1
- package/lib-es/signOperation.js +23 -35
- package/lib-es/signOperation.js.map +1 -1
- package/lib-es/specs.js +12 -18
- package/lib-es/specs.js.map +1 -1
- package/lib-es/synchronisation.js +46 -55
- package/lib-es/synchronisation.js.map +1 -1
- package/lib-es/transaction.js +13 -2
- package/lib-es/transaction.js.map +1 -1
- package/lib-es/utils.js +11 -20
- package/lib-es/utils.js.map +1 -1
- package/package.json +4 -4
- package/tsconfig.json +0 -1
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { decodeAccountId, decodeTokenAccountId, emptyHistoryCache, encodeAccountId, encodeTokenAccountId, } from "@ledgerhq/coin-framework/account/index";
|
|
11
2
|
import { makeSync, mergeOps, } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
12
3
|
import { decodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
@@ -16,11 +7,10 @@ import flatMap from "lodash/flatMap";
|
|
|
16
7
|
import { fetchAccountInfo, fetchJettonWallets, fetchLastBlockNumber, } from "./bridge/bridgeHelpers/api";
|
|
17
8
|
import { getJettonTransfers, getTransactions, mapJettonTxToOps, mapTxToOps, } from "./bridge/bridgeHelpers/txn";
|
|
18
9
|
import { getSyncHash } from "./logic";
|
|
19
|
-
export const getAccountShape =
|
|
20
|
-
var _b;
|
|
10
|
+
export const getAccountShape = async (info, { blacklistedTokenIds }) => {
|
|
21
11
|
const { address, rest, currency, derivationMode, initialAccount } = info;
|
|
22
|
-
const publicKey = reconciliatePubkey(rest
|
|
23
|
-
const blockHeight =
|
|
12
|
+
const publicKey = reconciliatePubkey(rest?.publicKey, initialAccount);
|
|
13
|
+
const blockHeight = await fetchLastBlockNumber();
|
|
24
14
|
const accountId = encodeAccountId({
|
|
25
15
|
type: "js",
|
|
26
16
|
version: "2",
|
|
@@ -29,32 +19,32 @@ export const getAccountShape = (info_1, _a) => __awaiter(void 0, [info_1, _a], v
|
|
|
29
19
|
derivationMode,
|
|
30
20
|
});
|
|
31
21
|
log("debug", `Generation account shape for ${address}`);
|
|
32
|
-
const syncHash = getSyncHash(currency, blacklistedTokenIds
|
|
33
|
-
const shouldSyncFromScratch = syncHash !==
|
|
22
|
+
const syncHash = getSyncHash(currency, blacklistedTokenIds ?? []);
|
|
23
|
+
const shouldSyncFromScratch = syncHash !== initialAccount?.syncHash;
|
|
34
24
|
const newTxs = { transactions: [], address_book: {} };
|
|
35
25
|
const newJettonTxs = [];
|
|
36
|
-
const oldOps = (
|
|
37
|
-
const { last_transaction_lt, balance } =
|
|
26
|
+
const oldOps = (initialAccount?.operations ?? []);
|
|
27
|
+
const { last_transaction_lt, balance } = await fetchAccountInfo(address);
|
|
38
28
|
// if last_transaction_lt is empty, then there are no transactions in account (as well in token accounts)
|
|
39
29
|
if (last_transaction_lt != null) {
|
|
40
30
|
if (oldOps.length === 0 || shouldSyncFromScratch) {
|
|
41
|
-
const [tmpTxs, tmpJettonTxs] =
|
|
31
|
+
const [tmpTxs, tmpJettonTxs] = await Promise.all([
|
|
42
32
|
getTransactions(address),
|
|
43
33
|
getJettonTransfers(address),
|
|
44
34
|
]);
|
|
45
35
|
newTxs.transactions.push(...tmpTxs.transactions);
|
|
46
|
-
newTxs.address_book =
|
|
36
|
+
newTxs.address_book = { ...newTxs.address_book, ...tmpTxs.address_book };
|
|
47
37
|
newJettonTxs.push(...tmpJettonTxs);
|
|
48
38
|
}
|
|
49
39
|
else {
|
|
50
40
|
// if they are the same, we have no new ops (including tokens)
|
|
51
41
|
if (oldOps[0].extra.lt !== last_transaction_lt) {
|
|
52
|
-
const [tmpTxs, tmpJettonTxs] =
|
|
42
|
+
const [tmpTxs, tmpJettonTxs] = await Promise.all([
|
|
53
43
|
getTransactions(address, oldOps[0].extra.lt),
|
|
54
44
|
getJettonTransfers(address, oldOps[0].extra.lt),
|
|
55
45
|
]);
|
|
56
46
|
newTxs.transactions.push(...tmpTxs.transactions);
|
|
57
|
-
newTxs.address_book =
|
|
47
|
+
newTxs.address_book = { ...newTxs.address_book, ...tmpTxs.address_book };
|
|
58
48
|
newJettonTxs.push(...tmpJettonTxs);
|
|
59
49
|
}
|
|
60
50
|
}
|
|
@@ -62,7 +52,7 @@ export const getAccountShape = (info_1, _a) => __awaiter(void 0, [info_1, _a], v
|
|
|
62
52
|
const newOps = flatMap(newTxs.transactions, mapTxToOps(accountId, address, newTxs.address_book));
|
|
63
53
|
const newJettonOps = flatMap(newJettonTxs, mapJettonTxToOps(accountId, address, newTxs.address_book));
|
|
64
54
|
const operations = shouldSyncFromScratch ? newOps : mergeOps(oldOps, newOps);
|
|
65
|
-
const subAccounts =
|
|
55
|
+
const subAccounts = await getSubAccounts(info, accountId, newJettonOps, blacklistedTokenIds, shouldSyncFromScratch);
|
|
66
56
|
const toReturn = {
|
|
67
57
|
id: accountId,
|
|
68
58
|
balance: new BigNumber(balance),
|
|
@@ -75,18 +65,17 @@ export const getAccountShape = (info_1, _a) => __awaiter(void 0, [info_1, _a], v
|
|
|
75
65
|
lastSyncDate: new Date(),
|
|
76
66
|
};
|
|
77
67
|
return toReturn;
|
|
78
|
-
}
|
|
79
|
-
const getSubAccountShape = (info, parentId, token, ops, shouldSyncFromScratch) =>
|
|
80
|
-
var _c, _d, _e;
|
|
68
|
+
};
|
|
69
|
+
const getSubAccountShape = async (info, parentId, token, ops, shouldSyncFromScratch) => {
|
|
81
70
|
const tokenAccountId = encodeTokenAccountId(parentId, token);
|
|
82
|
-
const walletsInfo =
|
|
71
|
+
const walletsInfo = await fetchJettonWallets({
|
|
83
72
|
address: info.address,
|
|
84
73
|
jettonMaster: token.contractAddress,
|
|
85
74
|
});
|
|
86
75
|
if (walletsInfo.length !== 1)
|
|
87
76
|
throw new Error("[ton] unexpected api response");
|
|
88
77
|
const { balance, address: jettonWalletAddress } = walletsInfo[0];
|
|
89
|
-
const oldOps =
|
|
78
|
+
const oldOps = info.initialAccount?.subAccounts?.find(a => a.id === tokenAccountId)?.operations;
|
|
90
79
|
const operations = !oldOps || shouldSyncFromScratch ? ops : mergeOps(oldOps, ops);
|
|
91
80
|
const maybeExistingSubAccount = info.initialAccount &&
|
|
92
81
|
info.initialAccount.subAccounts &&
|
|
@@ -95,7 +84,7 @@ const getSubAccountShape = (info, parentId, token, ops, shouldSyncFromScratch) =
|
|
|
95
84
|
type: "TokenAccount",
|
|
96
85
|
id: tokenAccountId,
|
|
97
86
|
parentId,
|
|
98
|
-
token:
|
|
87
|
+
token: { ...token, contractAddress: jettonWalletAddress }, // the contract address is replaced for the jetton wallet address, it will be use for the token transfer
|
|
99
88
|
balance: new BigNumber(balance),
|
|
100
89
|
spendableBalance: new BigNumber(balance),
|
|
101
90
|
operations,
|
|
@@ -105,29 +94,25 @@ const getSubAccountShape = (info, parentId, token, ops, shouldSyncFromScratch) =
|
|
|
105
94
|
balanceHistoryCache: emptyHistoryCache, // calculated in the jsHelpers
|
|
106
95
|
swapHistory: [],
|
|
107
96
|
};
|
|
108
|
-
}
|
|
109
|
-
function getSubAccounts(
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const { token } = decodeTokenAccountId(tokenAccountId);
|
|
115
|
-
if (!token || blacklistedTokenIds.includes(token.id))
|
|
116
|
-
return acc;
|
|
117
|
-
if (!acc.has(token))
|
|
118
|
-
acc.set(token, []);
|
|
119
|
-
(_a = acc.get(token)) === null || _a === void 0 ? void 0 : _a.push(op);
|
|
97
|
+
};
|
|
98
|
+
async function getSubAccounts(info, accountId, newOps, blacklistedTokenIds = [], shouldSyncFromScratch) {
|
|
99
|
+
const opsPerToken = newOps.reduce((acc, op) => {
|
|
100
|
+
const { accountId: tokenAccountId } = decodeOperationId(op.id);
|
|
101
|
+
const { token } = decodeTokenAccountId(tokenAccountId);
|
|
102
|
+
if (!token || blacklistedTokenIds.includes(token.id))
|
|
120
103
|
return acc;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
104
|
+
if (!acc.has(token))
|
|
105
|
+
acc.set(token, []);
|
|
106
|
+
acc.get(token)?.push(op);
|
|
107
|
+
return acc;
|
|
108
|
+
}, new Map());
|
|
109
|
+
const subAccountsPromises = [];
|
|
110
|
+
for (const [token, ops] of opsPerToken.entries()) {
|
|
111
|
+
subAccountsPromises.push(getSubAccountShape(info, accountId, token, ops, shouldSyncFromScratch));
|
|
112
|
+
}
|
|
113
|
+
return Promise.all(subAccountsPromises);
|
|
128
114
|
}
|
|
129
115
|
const postSync = (initial, synced) => {
|
|
130
|
-
var _a;
|
|
131
116
|
// Set of ids from the already existing subAccount from previous sync
|
|
132
117
|
const initialSubAccountsIds = new Set();
|
|
133
118
|
for (const subAccount of initial.subAccounts || []) {
|
|
@@ -141,23 +126,29 @@ const postSync = (initial, synced) => {
|
|
|
141
126
|
for (const op of pendingOperations) {
|
|
142
127
|
coinPendingOperationsHashes.add(op.hash);
|
|
143
128
|
}
|
|
144
|
-
return
|
|
129
|
+
return {
|
|
130
|
+
...synced,
|
|
131
|
+
pendingOperations,
|
|
132
|
+
subAccounts: synced.subAccounts?.map(subAccount => {
|
|
145
133
|
// If the subAccount is new, just return the freshly synced subAccount
|
|
146
134
|
if (!initialSubAccountsIds.has(subAccount.id))
|
|
147
135
|
return subAccount;
|
|
148
|
-
return
|
|
136
|
+
return {
|
|
137
|
+
...subAccount,
|
|
138
|
+
pendingOperations: subAccount.pendingOperations.filter(tokenPendingOperation =>
|
|
149
139
|
// if the pending operation got removed from the main account, remove it as well
|
|
150
140
|
coinPendingOperationsHashes.has(tokenPendingOperation.hash) &&
|
|
151
141
|
// if the transaction has been confirmed, remove it
|
|
152
|
-
!subAccount.operations.some(op => op.id === tokenPendingOperation.id))
|
|
153
|
-
|
|
142
|
+
!subAccount.operations.some(op => op.id === tokenPendingOperation.id)),
|
|
143
|
+
};
|
|
144
|
+
}),
|
|
145
|
+
};
|
|
154
146
|
};
|
|
155
147
|
function reconciliatePubkey(publicKey, initialAccount) {
|
|
156
|
-
|
|
157
|
-
if ((publicKey === null || publicKey === void 0 ? void 0 : publicKey.length) === 64)
|
|
148
|
+
if (publicKey?.length === 64)
|
|
158
149
|
return publicKey;
|
|
159
150
|
if (initialAccount) {
|
|
160
|
-
if (
|
|
151
|
+
if (initialAccount.xpub?.length === 64)
|
|
161
152
|
return initialAccount.xpub;
|
|
162
153
|
const { xpubOrAddress } = decodeAccountId(initialAccount.id);
|
|
163
154
|
if (xpubOrAddress.length === 64)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../src/synchronisation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../src/synchronisation.ts"],"names":[],"mappings":"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"}
|
package/lib-es/transaction.js
CHANGED
|
@@ -16,11 +16,22 @@ SEND ${useAllAmount
|
|
|
16
16
|
TO ${recipient}`;
|
|
17
17
|
export const fromTransactionRaw = (tr) => {
|
|
18
18
|
const common = fromTransactionCommonRaw(tr);
|
|
19
|
-
return
|
|
19
|
+
return {
|
|
20
|
+
...common,
|
|
21
|
+
family: tr.family,
|
|
22
|
+
fees: new BigNumber(tr.fees),
|
|
23
|
+
comment: tr.comment,
|
|
24
|
+
};
|
|
20
25
|
};
|
|
21
26
|
const toTransactionRaw = (transaction) => {
|
|
22
27
|
const common = toTransactionCommonRaw(transaction);
|
|
23
|
-
return
|
|
28
|
+
return {
|
|
29
|
+
...common,
|
|
30
|
+
family: transaction.family,
|
|
31
|
+
amount: transaction.amount.toFixed(),
|
|
32
|
+
fees: transaction.fees.toFixed(),
|
|
33
|
+
comment: transaction.comment,
|
|
34
|
+
};
|
|
24
35
|
};
|
|
25
36
|
export default {
|
|
26
37
|
formatTransaction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,8BAA8B,IAAI,wBAAwB,EAC1D,sBAAsB,EACtB,4BAA4B,IAAI,sBAAsB,GACvD,MAAM,wCAAwC,CAAC;AAEhD,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAe,EAChD,OAAgB,EACR,EAAE,CAAC;OAEX,YAAY;IACV,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG;YACH,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;aACtB,CACT;KACK,SAAS,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAE5C,
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,8BAA8B,IAAI,wBAAwB,EAC1D,sBAAsB,EACtB,4BAA4B,IAAI,sBAAsB,GACvD,MAAM,wCAAwC,CAAC;AAEhD,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAe,EAChD,OAAgB,EACR,EAAE,CAAC;OAEX,YAAY;IACV,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG;YACH,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;gBAC/D,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;aACtB,CACT;KACK,SAAS,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5B,OAAO,EAAE,EAAE,CAAC,OAAO;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,WAAwB,EAAkB,EAAE;IACpE,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAEnD,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;QACpC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;QAChC,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe;IACb,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,wBAAwB;IACxB,sBAAsB;IACtB,uBAAuB;CACxB,CAAC"}
|
package/lib-es/utils.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { decodeAccountId, findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
11
2
|
import { Builder, SendMode, Address as TonAddress, WalletContractV4, comment, internal, toNano, } from "@ton/ton";
|
|
12
3
|
import BigNumber from "bignumber.js";
|
|
@@ -20,7 +11,7 @@ export const isAddressValid = (recipient) => {
|
|
|
20
11
|
return Boolean((TonAddress.isRaw(recipient) || TonAddress.isFriendly(recipient)) &&
|
|
21
12
|
TonAddress.parse(recipient));
|
|
22
13
|
}
|
|
23
|
-
catch
|
|
14
|
+
catch {
|
|
24
15
|
return false;
|
|
25
16
|
}
|
|
26
17
|
};
|
|
@@ -33,7 +24,7 @@ export const addressesAreEqual = (addr1, addr2) => {
|
|
|
33
24
|
isAddressValid(addr2) &&
|
|
34
25
|
TonAddress.parse(addr1).equals(TonAddress.parse(addr2)));
|
|
35
26
|
}
|
|
36
|
-
catch
|
|
27
|
+
catch {
|
|
37
28
|
return false;
|
|
38
29
|
}
|
|
39
30
|
};
|
|
@@ -48,11 +39,11 @@ export const buildTonTransaction = (transaction, seqno, account) => {
|
|
|
48
39
|
try {
|
|
49
40
|
TonAddress.parse(recipientParsed);
|
|
50
41
|
}
|
|
51
|
-
catch
|
|
42
|
+
catch {
|
|
52
43
|
recipientParsed = new TonAddress(0, Buffer.alloc(32)).toRawString();
|
|
53
44
|
}
|
|
54
45
|
// if there is a sub account, the transaction is a token transfer
|
|
55
|
-
const subAccount = findSubAccountById(account, subAccountId
|
|
46
|
+
const subAccount = findSubAccountById(account, subAccountId ?? "");
|
|
56
47
|
const finalAmount = subAccount
|
|
57
48
|
? toNano(TOKEN_TRANSFER_MAX_FEE) // for commission fees, excess will be returned
|
|
58
49
|
: useAllAmount
|
|
@@ -98,7 +89,7 @@ export const getTransferExpirationTime = () => Math.floor(Date.now() / 1000 + 60
|
|
|
98
89
|
/**
|
|
99
90
|
* Estimates the fees for a Ton transaction.
|
|
100
91
|
*/
|
|
101
|
-
export const getTonEstimatedFees = (account, needsInit, tx) =>
|
|
92
|
+
export const getTonEstimatedFees = async (account, needsInit, tx) => {
|
|
102
93
|
const { xpubOrAddress: pubKey } = decodeAccountId(account.id);
|
|
103
94
|
if (pubKey.length !== 64)
|
|
104
95
|
throw Error("[ton] pubKey can't be found");
|
|
@@ -130,9 +121,9 @@ export const getTonEstimatedFees = (account, needsInit, tx) => __awaiter(void 0,
|
|
|
130
121
|
});
|
|
131
122
|
const initCode = needsInit ? contract.init.code.toBoc().toString("base64") : undefined;
|
|
132
123
|
const initData = needsInit ? contract.init.data.toBoc().toString("base64") : undefined;
|
|
133
|
-
const fee =
|
|
124
|
+
const fee = await estimateFee(account.freshAddress, transfer.toBoc().toString("base64"), initCode, initData);
|
|
134
125
|
return BigNumber(fee.fwd_fee + fee.gas_fee + fee.in_fwd_fee + fee.storage_fee);
|
|
135
|
-
}
|
|
126
|
+
};
|
|
136
127
|
/**
|
|
137
128
|
* Converts a Ledger path string to an array of numbers.length.
|
|
138
129
|
*/
|
|
@@ -163,12 +154,12 @@ function buildTokenTransferBody(params) {
|
|
|
163
154
|
let forwardPayload = params.forwardPayload;
|
|
164
155
|
let builder = new Builder()
|
|
165
156
|
.storeUint(JettonOpCode.Transfer, 32)
|
|
166
|
-
.storeUint(queryId
|
|
157
|
+
.storeUint(queryId ?? generateQueryId(), 64)
|
|
167
158
|
.storeCoins(amount)
|
|
168
159
|
.storeAddress(destination)
|
|
169
160
|
.storeAddress(responseDestination)
|
|
170
161
|
.storeBit(false)
|
|
171
|
-
.storeCoins(forwardAmount
|
|
162
|
+
.storeCoins(forwardAmount ?? BigInt(0));
|
|
172
163
|
if (forwardPayload instanceof Uint8Array) {
|
|
173
164
|
forwardPayload = packBytesAsSnake(forwardPayload);
|
|
174
165
|
}
|
|
@@ -225,13 +216,13 @@ function packBytesAsSnakeCell(bytes) {
|
|
|
225
216
|
let currentBuilder = mainBuilder;
|
|
226
217
|
for (const [i, byte] of buffer.entries()) {
|
|
227
218
|
if (currentBuilder.availableBits < 8) {
|
|
228
|
-
prevBuilder
|
|
219
|
+
prevBuilder?.storeRef(currentBuilder);
|
|
229
220
|
prevBuilder = currentBuilder;
|
|
230
221
|
currentBuilder = new Builder();
|
|
231
222
|
}
|
|
232
223
|
currentBuilder = currentBuilder.storeUint(byte, 8);
|
|
233
224
|
if (i === buffer.length - 1) {
|
|
234
|
-
prevBuilder
|
|
225
|
+
prevBuilder?.storeRef(currentBuilder);
|
|
235
226
|
}
|
|
236
227
|
}
|
|
237
228
|
return mainBuilder.asCell();
|
package/lib-es/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-ton",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Ton Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"lodash": "^4.17.21",
|
|
55
55
|
"msw": "^2.0.11",
|
|
56
56
|
"rxjs": "^7.8.1",
|
|
57
|
-
"@ledgerhq/coin-framework": "^0.
|
|
57
|
+
"@ledgerhq/coin-framework": "^1.0.0",
|
|
58
58
|
"@ledgerhq/cryptoassets": "^13.10.0",
|
|
59
59
|
"@ledgerhq/devices": "8.4.4",
|
|
60
60
|
"@ledgerhq/errors": "^6.19.1",
|
|
@@ -75,10 +75,10 @@
|
|
|
75
75
|
"scripts": {
|
|
76
76
|
"clean": "rimraf lib lib-es",
|
|
77
77
|
"coverage": "jest --coverage --testPathIgnorePatterns='/bridge.integration.test.ts|node_modules|lib-es|lib/' --passWithNoTests && mv coverage/coverage-final.json coverage/coverage-ton.json",
|
|
78
|
-
"build": "tsc && tsc -m
|
|
78
|
+
"build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
|
|
79
79
|
"prewatch": "pnpm build",
|
|
80
80
|
"watch": "tsc --watch",
|
|
81
|
-
"watch:es": "tsc --watch -m
|
|
81
|
+
"watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
|
|
82
82
|
"doc": "documentation readme src/** --section=API --pe ts --re ts --re d.ts",
|
|
83
83
|
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
|
|
84
84
|
"lint:fix": "pnpm lint --fix",
|