@ledgerhq/coin-aptos 1.9.6-next.0 → 2.0.0-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.unimportedrc.json +18 -6
- package/CHANGELOG.md +19 -4
- package/jest.integ.config.js +8 -0
- package/lib/__tests__/api/index.integ.test.d.ts +2 -0
- package/lib/__tests__/api/index.integ.test.d.ts.map +1 -0
- package/lib/__tests__/api/index.integ.test.js +22 -0
- package/lib/__tests__/api/index.integ.test.js.map +1 -0
- package/lib/__tests__/api/index.test.js +48 -404
- package/lib/__tests__/api/index.test.js.map +1 -1
- package/lib/__tests__/bridge/broadcast.test.js +5 -5
- package/lib/__tests__/bridge/broadcast.test.js.map +1 -1
- package/lib/__tests__/bridge/buildTransaction.test.js +60 -5
- package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/getFeesForTransaction.test.js +115 -14
- package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/getTransactionStatus.test.js +175 -37
- package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
- package/lib/__tests__/bridge/logic.test.js +889 -115
- package/lib/__tests__/bridge/logic.test.js.map +1 -1
- package/lib/__tests__/bridge/prepareTransaction.test.js +3 -3
- package/lib/__tests__/bridge/prepareTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/signOperation.test.js +131 -4
- package/lib/__tests__/bridge/signOperation.test.js.map +1 -1
- package/lib/__tests__/bridge/synchronisation.test.js +1215 -68
- package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
- package/lib/__tests__/network/client.test.d.ts +2 -0
- package/lib/__tests__/network/client.test.d.ts.map +1 -0
- package/lib/__tests__/network/client.test.js +478 -0
- package/lib/__tests__/network/client.test.js.map +1 -0
- package/lib/api/index.d.ts +4 -30
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +26 -170
- package/lib/api/index.js.map +1 -1
- package/lib/bridge/bridge.fixture.d.ts +2 -0
- package/lib/bridge/bridge.fixture.d.ts.map +1 -1
- package/lib/bridge/bridge.fixture.js +85 -13
- package/lib/bridge/bridge.fixture.js.map +1 -1
- package/lib/bridge/broadcast.d.ts +3 -2
- package/lib/bridge/broadcast.d.ts.map +1 -1
- package/lib/bridge/broadcast.js +4 -3
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/bridge/buildTransaction.d.ts +1 -1
- package/lib/bridge/buildTransaction.d.ts.map +1 -1
- package/lib/bridge/buildTransaction.js +29 -3
- package/lib/bridge/buildTransaction.js.map +1 -1
- package/lib/bridge/estimateMaxSpendable.js +3 -3
- package/lib/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/getFeesForTransaction.d.ts +1 -1
- package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
- package/lib/bridge/getFeesForTransaction.js +12 -7
- package/lib/bridge/getFeesForTransaction.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +28 -14
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/index.d.ts +1 -1
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/logic.d.ts +13 -8
- package/lib/bridge/logic.d.ts.map +1 -1
- package/lib/bridge/logic.js +152 -54
- package/lib/bridge/logic.js.map +1 -1
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +4 -4
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +20 -6
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/synchronisation.d.ts +15 -0
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +129 -6
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/config.d.ts +13 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +9 -0
- package/lib/config.js.map +1 -0
- package/lib/constants.d.ts +5 -1
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +6 -2
- package/lib/constants.js.map +1 -1
- package/lib/network/client.d.ts +34 -0
- package/lib/network/client.d.ts.map +1 -0
- package/lib/network/client.js +213 -0
- package/lib/network/client.js.map +1 -0
- package/lib/network/graphql/queries.d.ts.map +1 -0
- package/lib/{api → network}/graphql/queries.js +6 -6
- package/lib/network/graphql/queries.js.map +1 -0
- package/lib/{api → network}/graphql/types.d.ts +9 -9
- package/lib/network/graphql/types.d.ts.map +1 -0
- package/lib/{api → network}/graphql/types.js.map +1 -1
- package/lib/network/index.d.ts +2 -1
- package/lib/network/index.d.ts.map +1 -1
- package/lib/network/index.js +15 -0
- package/lib/network/index.js.map +1 -1
- package/lib/test/bot-specs.d.ts.map +1 -1
- package/lib/test/bot-specs.js +40 -1
- package/lib/test/bot-specs.js.map +1 -1
- package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
- package/lib/test/bridgeDatasetTest.js +44 -62
- package/lib/test/bridgeDatasetTest.js.map +1 -1
- package/lib/test/speculos-deviceActions.d.ts +1 -0
- package/lib/test/speculos-deviceActions.d.ts.map +1 -1
- package/lib/test/speculos-deviceActions.js +37 -5
- package/lib/test/speculos-deviceActions.js.map +1 -1
- package/lib/types/assets.d.ts +3 -0
- package/lib/types/assets.d.ts.map +1 -0
- package/lib/types/assets.js +3 -0
- package/lib/types/assets.js.map +1 -0
- package/lib/types/index.d.ts +18 -7
- package/lib/types/index.d.ts.map +1 -1
- package/lib-es/__tests__/api/index.integ.test.d.ts +2 -0
- package/lib-es/__tests__/api/index.integ.test.d.ts.map +1 -0
- package/lib-es/__tests__/api/index.integ.test.js +20 -0
- package/lib-es/__tests__/api/index.integ.test.js.map +1 -0
- package/lib-es/__tests__/api/index.test.js +52 -408
- package/lib-es/__tests__/api/index.test.js.map +1 -1
- package/lib-es/__tests__/bridge/broadcast.test.js +2 -2
- package/lib-es/__tests__/bridge/broadcast.test.js.map +1 -1
- package/lib-es/__tests__/bridge/buildTransaction.test.js +60 -5
- package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +112 -11
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/getTransactionStatus.test.js +177 -39
- package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
- package/lib-es/__tests__/bridge/logic.test.js +891 -117
- package/lib-es/__tests__/bridge/logic.test.js.map +1 -1
- package/lib-es/__tests__/bridge/prepareTransaction.test.js +2 -2
- package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/signOperation.test.js +131 -4
- package/lib-es/__tests__/bridge/signOperation.test.js.map +1 -1
- package/lib-es/__tests__/bridge/synchronisation.test.js +1213 -69
- package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -1
- package/lib-es/__tests__/network/client.test.d.ts +2 -0
- package/lib-es/__tests__/network/client.test.d.ts.map +1 -0
- package/lib-es/__tests__/network/client.test.js +473 -0
- package/lib-es/__tests__/network/client.test.js.map +1 -0
- package/lib-es/api/index.d.ts +4 -30
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +24 -168
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/bridge/bridge.fixture.d.ts +2 -0
- package/lib-es/bridge/bridge.fixture.d.ts.map +1 -1
- package/lib-es/bridge/bridge.fixture.js +82 -12
- package/lib-es/bridge/bridge.fixture.js.map +1 -1
- package/lib-es/bridge/broadcast.d.ts +3 -2
- package/lib-es/bridge/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/broadcast.js +4 -3
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/bridge/buildTransaction.d.ts +1 -1
- package/lib-es/bridge/buildTransaction.d.ts.map +1 -1
- package/lib-es/bridge/buildTransaction.js +30 -4
- package/lib-es/bridge/buildTransaction.js.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js +2 -2
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/getFeesForTransaction.d.ts +1 -1
- package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
- package/lib-es/bridge/getFeesForTransaction.js +13 -8
- package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +28 -14
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/index.d.ts +1 -1
- package/lib-es/bridge/index.d.ts.map +1 -1
- package/lib-es/bridge/logic.d.ts +13 -8
- package/lib-es/bridge/logic.d.ts.map +1 -1
- package/lib-es/bridge/logic.js +146 -52
- package/lib-es/bridge/logic.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +3 -3
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/signOperation.js +18 -4
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/synchronisation.d.ts +15 -0
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +124 -4
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/config.d.ts +13 -0
- package/lib-es/config.d.ts.map +1 -0
- package/lib-es/config.js +4 -0
- package/lib-es/config.js.map +1 -0
- package/lib-es/constants.d.ts +5 -1
- package/lib-es/constants.d.ts.map +1 -1
- package/lib-es/constants.js +5 -1
- package/lib-es/constants.js.map +1 -1
- package/lib-es/network/client.d.ts +34 -0
- package/lib-es/network/client.d.ts.map +1 -0
- package/lib-es/network/client.js +206 -0
- package/lib-es/network/client.js.map +1 -0
- package/lib-es/network/graphql/queries.d.ts.map +1 -0
- package/lib-es/{api → network}/graphql/queries.js +6 -6
- package/lib-es/network/graphql/queries.js.map +1 -0
- package/lib-es/{api → network}/graphql/types.d.ts +9 -9
- package/lib-es/network/graphql/types.d.ts.map +1 -0
- package/lib-es/{api → network}/graphql/types.js.map +1 -1
- package/lib-es/network/index.d.ts +2 -1
- package/lib-es/network/index.d.ts.map +1 -1
- package/lib-es/network/index.js +1 -0
- package/lib-es/network/index.js.map +1 -1
- package/lib-es/test/bot-specs.d.ts.map +1 -1
- package/lib-es/test/bot-specs.js +41 -2
- package/lib-es/test/bot-specs.js.map +1 -1
- package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
- package/lib-es/test/bridgeDatasetTest.js +44 -59
- package/lib-es/test/bridgeDatasetTest.js.map +1 -1
- package/lib-es/test/speculos-deviceActions.d.ts +1 -0
- package/lib-es/test/speculos-deviceActions.d.ts.map +1 -1
- package/lib-es/test/speculos-deviceActions.js +36 -4
- package/lib-es/test/speculos-deviceActions.js.map +1 -1
- package/lib-es/types/assets.d.ts +3 -0
- package/lib-es/types/assets.d.ts.map +1 -0
- package/lib-es/types/assets.js +2 -0
- package/lib-es/types/assets.js.map +1 -0
- package/lib-es/types/index.d.ts +18 -7
- package/lib-es/types/index.d.ts.map +1 -1
- package/package.json +10 -8
- package/src/__tests__/api/index.integ.test.ts +24 -0
- package/src/__tests__/api/index.test.ts +58 -477
- package/src/__tests__/bridge/broadcast.test.ts +2 -2
- package/src/__tests__/bridge/buildTransaction.test.ts +87 -5
- package/src/__tests__/bridge/getFeesForTransaction.test.ts +146 -11
- package/src/__tests__/bridge/getTransactionStatus.test.ts +217 -38
- package/src/__tests__/bridge/logic.test.ts +922 -118
- package/src/__tests__/bridge/prepareTransaction.test.ts +2 -2
- package/src/__tests__/bridge/signOperation.test.ts +147 -5
- package/src/__tests__/bridge/synchronisation.test.ts +1265 -71
- package/src/__tests__/network/client.test.ts +569 -0
- package/src/api/index.ts +30 -223
- package/src/bridge/bridge.fixture.ts +91 -12
- package/src/bridge/broadcast.ts +7 -7
- package/src/bridge/buildTransaction.ts +40 -7
- package/src/bridge/estimateMaxSpendable.ts +2 -2
- package/src/bridge/getFeesForTransaction.ts +15 -10
- package/src/bridge/getTransactionStatus.ts +35 -13
- package/src/bridge/index.ts +1 -1
- package/src/bridge/logic.ts +202 -63
- package/src/bridge/prepareTransaction.ts +5 -3
- package/src/bridge/signOperation.ts +20 -4
- package/src/bridge/synchronisation.ts +171 -4
- package/src/config.ts +19 -0
- package/src/constants.ts +12 -1
- package/src/network/client.ts +265 -0
- package/src/{api → network}/graphql/queries.ts +6 -6
- package/src/{api → network}/graphql/types.ts +9 -9
- package/src/network/index.ts +2 -1
- package/src/test/bot-specs.ts +63 -3
- package/src/test/bridgeDatasetTest.ts +46 -59
- package/src/test/speculos-deviceActions.ts +40 -4
- package/src/types/assets.ts +3 -0
- package/src/types/index.ts +15 -1
- package/lib/api/graphql/queries.d.ts.map +0 -1
- package/lib/api/graphql/queries.js.map +0 -1
- package/lib/api/graphql/types.d.ts.map +0 -1
- package/lib-es/api/graphql/queries.d.ts.map +0 -1
- package/lib-es/api/graphql/queries.js.map +0 -1
- package/lib-es/api/graphql/types.d.ts.map +0 -1
- /package/lib/{api → network}/graphql/queries.d.ts +0 -0
- /package/lib/{api → network}/graphql/types.js +0 -0
- /package/lib-es/{api → network}/graphql/queries.d.ts +0 -0
- /package/lib-es/{api → network}/graphql/types.js +0 -0
|
@@ -1,7 +1,117 @@
|
|
|
1
|
+
import { inferSubOperations } from "@ledgerhq/coin-framework/serialization/index";
|
|
1
2
|
import { decodeAccountId, encodeAccountId } from "@ledgerhq/coin-framework/account";
|
|
2
3
|
import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
3
|
-
import { AptosAPI } from "../
|
|
4
|
+
import { AptosAPI } from "../network";
|
|
4
5
|
import { txsToOps } from "./logic";
|
|
6
|
+
import { decodeTokenAccountId, emptyHistoryCache, encodeTokenAccountId, } from "@ledgerhq/coin-framework/account/index";
|
|
7
|
+
/**
|
|
8
|
+
* List of properties of a sub account that can be updated when 2 "identical" accounts are found
|
|
9
|
+
*/
|
|
10
|
+
const updatableSubAccountProperties = [
|
|
11
|
+
{ name: "balance", isOps: false },
|
|
12
|
+
{ name: "spendableBalance", isOps: false },
|
|
13
|
+
{ name: "balanceHistoryCache", isOps: false },
|
|
14
|
+
{ name: "operations", isOps: true },
|
|
15
|
+
{ name: "pendingOperations", isOps: true },
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* In charge of smartly merging sub accounts while maintaining references as much as possible
|
|
19
|
+
*/
|
|
20
|
+
export const mergeSubAccounts = (initialAccount, newSubAccounts) => {
|
|
21
|
+
const oldSubAccounts = initialAccount?.subAccounts;
|
|
22
|
+
if (!oldSubAccounts) {
|
|
23
|
+
return newSubAccounts;
|
|
24
|
+
}
|
|
25
|
+
// Creating a map of already existing sub accounts by id
|
|
26
|
+
const oldSubAccountsById = {};
|
|
27
|
+
for (const oldSubAccount of oldSubAccounts) {
|
|
28
|
+
oldSubAccountsById[oldSubAccount.id] = oldSubAccount;
|
|
29
|
+
}
|
|
30
|
+
// Looping on new sub accounts to compare them with already existing ones
|
|
31
|
+
// Already existing will be updated if necessary (see `updatableSubAccountProperties`)
|
|
32
|
+
// Fresh new sub accounts will be added/pushed after already existing
|
|
33
|
+
const newSubAccountsToAdd = [];
|
|
34
|
+
for (const newSubAccount of newSubAccounts) {
|
|
35
|
+
const duplicatedAccount = oldSubAccountsById[newSubAccount.id];
|
|
36
|
+
// If this sub account was not already in the initialAccount
|
|
37
|
+
if (!duplicatedAccount) {
|
|
38
|
+
// We'll add it later
|
|
39
|
+
newSubAccountsToAdd.push(newSubAccount);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const updates = {};
|
|
43
|
+
for (const { name, isOps } of updatableSubAccountProperties) {
|
|
44
|
+
if (!isOps) {
|
|
45
|
+
if (newSubAccount[name] !==
|
|
46
|
+
duplicatedAccount[name]) {
|
|
47
|
+
updates[name] = newSubAccount[name];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
updates[name] =
|
|
52
|
+
mergeOps(duplicatedAccount[name], newSubAccount[name]) || [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Updating the operationsCount in case the mergeOps changed it
|
|
56
|
+
updates.operationsCount =
|
|
57
|
+
updates.operations?.length || duplicatedAccount?.operations?.length || 0;
|
|
58
|
+
// Modifying the Map with the updated sub account with a new ref
|
|
59
|
+
oldSubAccountsById[newSubAccount.id] = {
|
|
60
|
+
...duplicatedAccount,
|
|
61
|
+
...updates,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const updatedSubAccounts = Object.values(oldSubAccountsById);
|
|
65
|
+
return [...updatedSubAccounts, ...newSubAccountsToAdd];
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Fetch the balance for a token and creates a TokenAccount based on this and the provided operations
|
|
69
|
+
*/
|
|
70
|
+
export const getSubAccountShape = async (currency, address, parentId, token, operations) => {
|
|
71
|
+
const aptosClient = new AptosAPI(currency.id);
|
|
72
|
+
const tokenAccountId = encodeTokenAccountId(parentId, token);
|
|
73
|
+
const balance = await aptosClient.getBalance(address, token);
|
|
74
|
+
const firstOperation = operations
|
|
75
|
+
.sort((a, b) => b.date.getTime() - a.date.getTime())
|
|
76
|
+
.at(operations.length - 1);
|
|
77
|
+
return {
|
|
78
|
+
type: "TokenAccount",
|
|
79
|
+
id: tokenAccountId,
|
|
80
|
+
parentId,
|
|
81
|
+
token,
|
|
82
|
+
balance,
|
|
83
|
+
spendableBalance: balance,
|
|
84
|
+
creationDate: firstOperation?.date || new Date(0),
|
|
85
|
+
operations,
|
|
86
|
+
operationsCount: operations.length,
|
|
87
|
+
pendingOperations: [],
|
|
88
|
+
balanceHistoryCache: emptyHistoryCache,
|
|
89
|
+
swapHistory: [],
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Getting all token related operations in order to provide TokenAccounts
|
|
94
|
+
*/
|
|
95
|
+
export const getSubAccounts = async (infos, address, accountId, lastTokenOperations) => {
|
|
96
|
+
const { currency } = infos;
|
|
97
|
+
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
98
|
+
const operationsByToken = lastTokenOperations.reduce((acc, operation) => {
|
|
99
|
+
const { token } = decodeTokenAccountId(operation.accountId);
|
|
100
|
+
if (!token)
|
|
101
|
+
return acc; // TODO: do we need to check blacklistedTokenIds
|
|
102
|
+
if (!acc.has(token)) {
|
|
103
|
+
acc.set(token, []);
|
|
104
|
+
}
|
|
105
|
+
acc.get(token)?.push(operation);
|
|
106
|
+
return acc;
|
|
107
|
+
}, new Map());
|
|
108
|
+
// Fetching all TokenAccounts possible and providing already filtered operations
|
|
109
|
+
const subAccountsPromises = [];
|
|
110
|
+
for (const [token, ops] of operationsByToken.entries()) {
|
|
111
|
+
subAccountsPromises.push(getSubAccountShape(currency, address, accountId, token, ops));
|
|
112
|
+
}
|
|
113
|
+
return Promise.all(subAccountsPromises);
|
|
114
|
+
};
|
|
5
115
|
export const getAccountShape = async (info) => {
|
|
6
116
|
const { address, initialAccount, currency, derivationMode, rest } = info;
|
|
7
117
|
const publicKey = rest?.publicKey || (initialAccount && decodeAccountId(initialAccount.id).xpubOrAddress);
|
|
@@ -18,11 +128,20 @@ export const getAccountShape = async (info) => {
|
|
|
18
128
|
// "xpub" field is used because this field exists in ledger operation type
|
|
19
129
|
const xpub = initialAccount?.xpub || publicKey || "";
|
|
20
130
|
const oldOperations = initialAccount?.operations || [];
|
|
21
|
-
const startAt = oldOperations[0]?.extra?.version;
|
|
22
131
|
const aptosClient = new AptosAPI(currency.id);
|
|
23
|
-
const { balance, transactions, blockHeight } = await aptosClient.getAccountInfo(address
|
|
24
|
-
const newOperations = txsToOps(info, accountId, transactions);
|
|
132
|
+
const { balance, transactions, blockHeight } = await aptosClient.getAccountInfo(address);
|
|
133
|
+
const [newOperations, tokenOperations] = txsToOps(info, accountId, transactions);
|
|
25
134
|
const operations = mergeOps(oldOperations, newOperations);
|
|
135
|
+
const newSubAccounts = await getSubAccounts(info, address, accountId, tokenOperations);
|
|
136
|
+
const shouldSyncFromScratch = initialAccount === undefined;
|
|
137
|
+
const subAccounts = shouldSyncFromScratch
|
|
138
|
+
? newSubAccounts
|
|
139
|
+
: mergeSubAccounts(initialAccount, newSubAccounts);
|
|
140
|
+
operations.forEach(op => {
|
|
141
|
+
const subOperations = inferSubOperations(op.hash, subAccounts);
|
|
142
|
+
op.subOperations =
|
|
143
|
+
subOperations.length === 1 ? subOperations : subOperations.filter(op => !!op.blockHash);
|
|
144
|
+
});
|
|
26
145
|
const shape = {
|
|
27
146
|
type: "Account",
|
|
28
147
|
id: accountId,
|
|
@@ -33,6 +152,7 @@ export const getAccountShape = async (info) => {
|
|
|
33
152
|
operationsCount: operations.length,
|
|
34
153
|
blockHeight,
|
|
35
154
|
lastSyncDate: new Date(),
|
|
155
|
+
subAccounts,
|
|
36
156
|
};
|
|
37
157
|
return shape;
|
|
38
158
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AptosSettings } from "@aptos-labs/ts-sdk";
|
|
2
|
+
import { type CoinConfig, type CurrencyConfig } from "@ledgerhq/coin-framework/config";
|
|
3
|
+
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
4
|
+
export type AptosConfig = {
|
|
5
|
+
aptosSettings: AptosSettings;
|
|
6
|
+
};
|
|
7
|
+
export type AptosCoinConfig = CurrencyConfig & AptosConfig;
|
|
8
|
+
declare const coinConfig: {
|
|
9
|
+
setCoinConfig: (config: CoinConfig<AptosCoinConfig>) => void;
|
|
10
|
+
getCoinConfig: (currency?: CryptoCurrency) => AptosCoinConfig;
|
|
11
|
+
};
|
|
12
|
+
export default coinConfig;
|
|
13
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAwB,EACtB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3D,QAAA,MAAM,UAAU,EAAE;IAChB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,KAAK,eAAe,CAAC;CAC1B,CAAC;AAEvC,eAAe,UAAU,CAAC"}
|
package/lib-es/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,eAGN,MAAM,iCAAiC,CAAC;AASzC,MAAM,UAAU,GAGZ,eAAe,EAAmB,CAAC;AAEvC,eAAe,UAAU,CAAC"}
|
package/lib-es/constants.d.ts
CHANGED
|
@@ -6,14 +6,18 @@ export declare enum TX_STATUS {
|
|
|
6
6
|
SUCCESS = "success"
|
|
7
7
|
}
|
|
8
8
|
export declare const WRITE_RESOURCE = "write_resource";
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const COIN_TRANSFER_TYPES: MoveStructId[];
|
|
10
|
+
export declare const FA_TRANSFER_TYPES: MoveStructId[];
|
|
10
11
|
export declare const BATCH_TRANSFER_TYPES: MoveStructId[];
|
|
11
12
|
export declare const DELEGATION_POOL_TYPES: MoveStructId[];
|
|
12
13
|
export declare const APTOS_ASSET_ID: MoveStructId;
|
|
13
14
|
export declare const APTOS_COIN_CHANGE: MoveStructId;
|
|
15
|
+
export declare const APTOS_FUNGIBLE_STORE: MoveStructId;
|
|
16
|
+
export declare const APTOS_OBJECT_CORE: MoveStructId;
|
|
14
17
|
export declare enum DIRECTION {
|
|
15
18
|
IN = "IN",
|
|
16
19
|
OUT = "OUT",
|
|
17
20
|
UNKNOWN = "UNKNOWN"
|
|
18
21
|
}
|
|
22
|
+
export declare const SUPPORTED_TOKEN_TYPES: string[];
|
|
19
23
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAI7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAA8C,CAAC;AAE3F,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAG9C,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAG/C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YAA2C,CAAC;AAEzE,eAAO,MAAM,iBAAiB,EAAE,YAAwD,CAAC;AAEzF,eAAO,MAAM,oBAAoB,EAAE,YAAmD,CAAC;AAEvF,eAAO,MAAM,iBAAiB,EAAE,YAAwC,CAAC;AAEzE,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,qBAAqB,UAA6B,CAAC"}
|
package/lib-es/constants.js
CHANGED
|
@@ -6,11 +6,12 @@ export var TX_STATUS;
|
|
|
6
6
|
TX_STATUS["SUCCESS"] = "success";
|
|
7
7
|
})(TX_STATUS || (TX_STATUS = {}));
|
|
8
8
|
export const WRITE_RESOURCE = "write_resource";
|
|
9
|
-
export const
|
|
9
|
+
export const COIN_TRANSFER_TYPES = [
|
|
10
10
|
"0x1::aptos_account::transfer",
|
|
11
11
|
"0x1::aptos_account::transfer_coins",
|
|
12
12
|
"0x1::coin::transfer",
|
|
13
13
|
];
|
|
14
|
+
export const FA_TRANSFER_TYPES = ["0x1::primary_fungible_store::transfer"];
|
|
14
15
|
export const BATCH_TRANSFER_TYPES = [
|
|
15
16
|
"0x1::aptos_account::batch_transfer",
|
|
16
17
|
"0x1::aptos_account::batch_transfer_coins",
|
|
@@ -21,10 +22,13 @@ export const DELEGATION_POOL_TYPES = [
|
|
|
21
22
|
];
|
|
22
23
|
export const APTOS_ASSET_ID = "0x1::aptos_coin::AptosCoin";
|
|
23
24
|
export const APTOS_COIN_CHANGE = `0x1::coin::CoinStore<${APTOS_ASSET_ID}>`;
|
|
25
|
+
export const APTOS_FUNGIBLE_STORE = "0x1::fungible_asset::FungibleStore";
|
|
26
|
+
export const APTOS_OBJECT_CORE = "0x1::object::ObjectCore";
|
|
24
27
|
export var DIRECTION;
|
|
25
28
|
(function (DIRECTION) {
|
|
26
29
|
DIRECTION["IN"] = "IN";
|
|
27
30
|
DIRECTION["OUT"] = "OUT";
|
|
28
31
|
DIRECTION["UNKNOWN"] = "UNKNOWN";
|
|
29
32
|
})(DIRECTION || (DIRECTION = {}));
|
|
33
|
+
export const SUPPORTED_TOKEN_TYPES = ["coin", "fungible_asset"];
|
|
30
34
|
//# sourceMappingURL=constants.js.map
|
package/lib-es/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,0BAAa,CAAA;IACb,gCAAmB,CAAA;AACrB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE/C,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,0BAAa,CAAA;IACb,gCAAmB,CAAA;AACrB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,8BAA8B;IAC9B,oCAAoC;IACpC,qBAAqB;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAmB,CAAC,uCAAuC,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,oCAAoC;IACpC,0CAA0C;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,iCAAiC;IACjC,gCAAgC;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAiB,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,iBAAiB,GAAiB,wBAAwB,cAAc,GAAG,CAAC;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAAiB,oCAAoC,CAAC;AAEvF,MAAM,CAAC,MAAM,iBAAiB,GAAiB,yBAAyB,CAAC;AAEzE,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,sBAAS,CAAA;IACT,wBAAW,CAAA;IACX,gCAAmB,CAAA;AACrB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AccountData, Ed25519PublicKey, GasEstimation, InputEntryFunctionData, RawTransaction, UserTransactionResponse, AptosSettings } from "@aptos-labs/ts-sdk";
|
|
2
|
+
import BigNumber from "bignumber.js";
|
|
3
|
+
import type { AptosTransaction, TransactionOptions } from "../types";
|
|
4
|
+
import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
5
|
+
import { BlockInfo } from "@ledgerhq/coin-framework/api/types";
|
|
6
|
+
export declare class AptosAPI {
|
|
7
|
+
private aptosConfig;
|
|
8
|
+
private aptosClient;
|
|
9
|
+
private apolloClient;
|
|
10
|
+
constructor(currencyIdOrSettings: AptosSettings | string);
|
|
11
|
+
getAccount(address: string): Promise<AccountData>;
|
|
12
|
+
getAccountInfo(address: string, startAt?: string): Promise<{
|
|
13
|
+
balance: BigNumber;
|
|
14
|
+
transactions: (AptosTransaction | null)[];
|
|
15
|
+
blockHeight: number;
|
|
16
|
+
}>;
|
|
17
|
+
estimateGasPrice(): Promise<GasEstimation>;
|
|
18
|
+
generateTransaction(address: string, payload: InputEntryFunctionData, options: TransactionOptions): Promise<RawTransaction>;
|
|
19
|
+
simulateTransaction(address: Ed25519PublicKey, tx: RawTransaction, options?: {
|
|
20
|
+
estimateGasUnitPrice: boolean;
|
|
21
|
+
estimateMaxGasAmount: boolean;
|
|
22
|
+
estimatePrioritizedGasUnitPrice: boolean;
|
|
23
|
+
}): Promise<UserTransactionResponse[]>;
|
|
24
|
+
broadcast(signature: string): Promise<string>;
|
|
25
|
+
getBalance(address: string, token: TokenCurrency): Promise<BigNumber>;
|
|
26
|
+
getLastBlock(): Promise<BlockInfo>;
|
|
27
|
+
getCoinBalance(address: string, contract_address: string): Promise<BigNumber>;
|
|
28
|
+
getFABalance(address: string, contract_address: string): Promise<BigNumber>;
|
|
29
|
+
private fetchTransactions;
|
|
30
|
+
private richItemByVersion;
|
|
31
|
+
private getHeight;
|
|
32
|
+
private getBlock;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/network/client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAIX,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EAItB,cAAc,EAGd,uBAAuB,EAGvB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMrE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAS/D,qBAAa,QAAQ;IACnB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAuB;gBAE/B,oBAAoB,EAAE,aAAa,GAAG,MAAM;IAoBlD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;;;;;IAchD,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAI1C,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC;IA6BpB,mBAAmB,CACvB,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAE,cAAc,EAClB,OAAO;;;;KAIN,GACA,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAQ/B,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa7C,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAUrE,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAUlC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAgB7E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAgBnE,iBAAiB;YA8BjB,iBAAiB;YAejB,SAAS;YAQT,QAAQ;CAOvB"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { ApolloClient, InMemoryCache } from "@apollo/client";
|
|
2
|
+
import { Aptos, AptosApiType, AptosConfig, MimeType, post, } from "@aptos-labs/ts-sdk";
|
|
3
|
+
import { getEnv } from "@ledgerhq/live-env";
|
|
4
|
+
import network from "@ledgerhq/live-network";
|
|
5
|
+
import BigNumber from "bignumber.js";
|
|
6
|
+
import isUndefined from "lodash/isUndefined";
|
|
7
|
+
import { APTOS_ASSET_ID } from "../constants";
|
|
8
|
+
import { isTestnet } from "../bridge/logic";
|
|
9
|
+
import { GetAccountTransactionsData, GetAccountTransactionsDataGt } from "./graphql/queries";
|
|
10
|
+
const getApiEndpoint = (currencyId) => isTestnet(currencyId) ? getEnv("APTOS_TESTNET_API_ENDPOINT") : getEnv("APTOS_API_ENDPOINT");
|
|
11
|
+
const getIndexerEndpoint = (currencyId) => isTestnet(currencyId)
|
|
12
|
+
? getEnv("APTOS_TESTNET_INDEXER_ENDPOINT")
|
|
13
|
+
: getEnv("APTOS_INDEXER_ENDPOINT");
|
|
14
|
+
export class AptosAPI {
|
|
15
|
+
aptosConfig;
|
|
16
|
+
aptosClient;
|
|
17
|
+
apolloClient;
|
|
18
|
+
constructor(currencyIdOrSettings) {
|
|
19
|
+
if (typeof currencyIdOrSettings === "string") {
|
|
20
|
+
this.aptosConfig = new AptosConfig({
|
|
21
|
+
fullnode: getApiEndpoint(currencyIdOrSettings),
|
|
22
|
+
indexer: getIndexerEndpoint(currencyIdOrSettings),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.aptosConfig = new AptosConfig(currencyIdOrSettings);
|
|
27
|
+
}
|
|
28
|
+
this.aptosClient = new Aptos(this.aptosConfig);
|
|
29
|
+
this.apolloClient = new ApolloClient({
|
|
30
|
+
uri: this.aptosConfig.indexer || "",
|
|
31
|
+
cache: new InMemoryCache(),
|
|
32
|
+
headers: {
|
|
33
|
+
"x-client": "ledger-live",
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async getAccount(address) {
|
|
38
|
+
return this.aptosClient.getAccountInfo({ accountAddress: address });
|
|
39
|
+
}
|
|
40
|
+
async getAccountInfo(address, startAt) {
|
|
41
|
+
const [balance, transactions, blockHeight] = await Promise.all([
|
|
42
|
+
this.getCoinBalance(address, APTOS_ASSET_ID),
|
|
43
|
+
this.fetchTransactions(address, startAt),
|
|
44
|
+
this.getHeight(),
|
|
45
|
+
]);
|
|
46
|
+
return {
|
|
47
|
+
balance,
|
|
48
|
+
transactions,
|
|
49
|
+
blockHeight,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async estimateGasPrice() {
|
|
53
|
+
return this.aptosClient.getGasPriceEstimation();
|
|
54
|
+
}
|
|
55
|
+
async generateTransaction(address, payload, options) {
|
|
56
|
+
const opts = {};
|
|
57
|
+
if (!isUndefined(options.maxGasAmount)) {
|
|
58
|
+
opts.maxGasAmount = Number(options.maxGasAmount);
|
|
59
|
+
}
|
|
60
|
+
if (!isUndefined(options.gasUnitPrice)) {
|
|
61
|
+
opts.gasUnitPrice = Number(options.gasUnitPrice);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const { ledger_timestamp } = await this.aptosClient.getLedgerInfo();
|
|
65
|
+
opts.expireTimestamp = Number(Math.ceil(+ledger_timestamp / 1_000_000 + 2 * 60)); // in milliseconds
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// skip
|
|
69
|
+
}
|
|
70
|
+
return this.aptosClient.transaction.build
|
|
71
|
+
.simple({
|
|
72
|
+
sender: address,
|
|
73
|
+
data: payload,
|
|
74
|
+
options: opts,
|
|
75
|
+
})
|
|
76
|
+
.then(t => t.rawTransaction)
|
|
77
|
+
.catch(error => {
|
|
78
|
+
throw error;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async simulateTransaction(address, tx, options = {
|
|
82
|
+
estimateGasUnitPrice: true,
|
|
83
|
+
estimateMaxGasAmount: true,
|
|
84
|
+
estimatePrioritizedGasUnitPrice: false,
|
|
85
|
+
}) {
|
|
86
|
+
return this.aptosClient.transaction.simulate.simple({
|
|
87
|
+
signerPublicKey: address,
|
|
88
|
+
transaction: { rawTransaction: tx },
|
|
89
|
+
options,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async broadcast(signature) {
|
|
93
|
+
const txBytes = Uint8Array.from(Buffer.from(signature, "hex"));
|
|
94
|
+
const pendingTx = await post({
|
|
95
|
+
contentType: MimeType.BCS_SIGNED_TRANSACTION,
|
|
96
|
+
aptosConfig: this.aptosClient.config,
|
|
97
|
+
body: txBytes,
|
|
98
|
+
path: "transactions",
|
|
99
|
+
type: AptosApiType.FULLNODE,
|
|
100
|
+
originMethod: "",
|
|
101
|
+
});
|
|
102
|
+
return pendingTx.data.hash;
|
|
103
|
+
}
|
|
104
|
+
async getBalance(address, token) {
|
|
105
|
+
let balance = new BigNumber(0);
|
|
106
|
+
if (token.tokenType === "coin") {
|
|
107
|
+
balance = await this.getCoinBalance(address, token.contractAddress);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
balance = await this.getFABalance(address, token.contractAddress);
|
|
111
|
+
}
|
|
112
|
+
return balance;
|
|
113
|
+
}
|
|
114
|
+
async getLastBlock() {
|
|
115
|
+
const { block_height } = await this.aptosClient.getLedgerInfo();
|
|
116
|
+
const block = await this.aptosClient.getBlockByHeight({ blockHeight: Number(block_height) });
|
|
117
|
+
return {
|
|
118
|
+
height: Number(block.block_height),
|
|
119
|
+
hash: block.block_hash,
|
|
120
|
+
time: new Date(Number(block.block_timestamp)),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
async getCoinBalance(address, contract_address) {
|
|
124
|
+
try {
|
|
125
|
+
const [balanceStr] = await this.aptosClient.view({
|
|
126
|
+
payload: {
|
|
127
|
+
function: "0x1::coin::balance",
|
|
128
|
+
typeArguments: [contract_address],
|
|
129
|
+
functionArguments: [address],
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
const balance = parseInt(balanceStr, 10);
|
|
133
|
+
return new BigNumber(balance);
|
|
134
|
+
}
|
|
135
|
+
catch (_) {
|
|
136
|
+
return new BigNumber(0);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async getFABalance(address, contract_address) {
|
|
140
|
+
try {
|
|
141
|
+
const [balanceStr] = await this.aptosClient.view({
|
|
142
|
+
payload: {
|
|
143
|
+
function: "0x1::primary_fungible_store::balance",
|
|
144
|
+
typeArguments: ["0x1::object::ObjectCore"],
|
|
145
|
+
functionArguments: [address, contract_address],
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
const balance = parseInt(balanceStr, 10);
|
|
149
|
+
return new BigNumber(balance);
|
|
150
|
+
}
|
|
151
|
+
catch (_) {
|
|
152
|
+
return new BigNumber(0);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async fetchTransactions(address, gt) {
|
|
156
|
+
if (!address) {
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
let query = GetAccountTransactionsData;
|
|
160
|
+
if (gt) {
|
|
161
|
+
query = GetAccountTransactionsDataGt;
|
|
162
|
+
}
|
|
163
|
+
const queryResponse = await this.apolloClient.query({
|
|
164
|
+
query,
|
|
165
|
+
variables: {
|
|
166
|
+
address,
|
|
167
|
+
limit: 1000,
|
|
168
|
+
gt,
|
|
169
|
+
},
|
|
170
|
+
fetchPolicy: "network-only",
|
|
171
|
+
});
|
|
172
|
+
return Promise.all(queryResponse.data.account_transactions.map(({ transaction_version }) => {
|
|
173
|
+
return this.richItemByVersion(transaction_version);
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
async richItemByVersion(version) {
|
|
177
|
+
try {
|
|
178
|
+
const tx = await this.aptosClient.getTransactionByVersion({
|
|
179
|
+
ledgerVersion: version,
|
|
180
|
+
});
|
|
181
|
+
const block = await this.getBlock(version);
|
|
182
|
+
return {
|
|
183
|
+
...tx,
|
|
184
|
+
block,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async getHeight() {
|
|
192
|
+
const { data } = await network({
|
|
193
|
+
method: "GET",
|
|
194
|
+
url: this.aptosConfig.fullnode || "",
|
|
195
|
+
});
|
|
196
|
+
return parseInt(data.block_height);
|
|
197
|
+
}
|
|
198
|
+
async getBlock(version) {
|
|
199
|
+
const block = await this.aptosClient.getBlockByVersion({ ledgerVersion: version });
|
|
200
|
+
return {
|
|
201
|
+
height: parseInt(block.block_height),
|
|
202
|
+
hash: block.block_hash,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/network/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/network/graphql/queries.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,6BAA6B,uCAczC,CAAC;AACF,eAAO,MAAM,0BAA0B,uCAWtC,CAAC;AACF,eAAO,MAAM,4BAA4B,uCAWxC,CAAC;AACF,eAAO,MAAM,4BAA4B,uCAWxC,CAAC"}
|
|
@@ -17,8 +17,8 @@ export const GetDelegatedStakingActivities = gql `
|
|
|
17
17
|
`;
|
|
18
18
|
export const GetAccountTransactionsData = gql `
|
|
19
19
|
query GetAccountTransactionsData($address: String, $limit: Int) {
|
|
20
|
-
|
|
21
|
-
where: {
|
|
20
|
+
account_transactions(
|
|
21
|
+
where: { account_address: { _eq: $address } }
|
|
22
22
|
order_by: { transaction_version: desc }
|
|
23
23
|
limit: $limit
|
|
24
24
|
) {
|
|
@@ -29,8 +29,8 @@ export const GetAccountTransactionsData = gql `
|
|
|
29
29
|
`;
|
|
30
30
|
export const GetAccountTransactionsDataGt = gql `
|
|
31
31
|
query GetAccountTransactionsDataGt($address: String, $limit: Int, $gt: bigint) {
|
|
32
|
-
|
|
33
|
-
where: {
|
|
32
|
+
account_transactions(
|
|
33
|
+
where: { account_address: { _eq: $address }, transaction_version: { _gt: $gt } }
|
|
34
34
|
order_by: { transaction_version: desc }
|
|
35
35
|
limit: $limit
|
|
36
36
|
) {
|
|
@@ -41,8 +41,8 @@ export const GetAccountTransactionsDataGt = gql `
|
|
|
41
41
|
`;
|
|
42
42
|
export const GetAccountTransactionsDataLt = gql `
|
|
43
43
|
query GetAccountTransactionsDataLt($address: String, $limit: Int, $lt: bigint) {
|
|
44
|
-
|
|
45
|
-
where: {
|
|
44
|
+
account_transactions(
|
|
45
|
+
where: { account_address: { _eq: $address }, transaction_version: { _lt: $lt } }
|
|
46
46
|
order_by: { transaction_version: desc }
|
|
47
47
|
limit: $limit
|
|
48
48
|
) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/network/graphql/queries.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;CAc/C,CAAC;AACF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;;;;;;CAW5C,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAA;;;;;;;;;;;CAW9C,CAAC;AACF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAA;;;;;;;;;;;CAW9C,CAAC"}
|
|
@@ -24,9 +24,9 @@ export type GetAccountTransactionsDataQueryVariables = Exact<{
|
|
|
24
24
|
}>;
|
|
25
25
|
export type GetAccountTransactionsDataQuery = {
|
|
26
26
|
__typename?: "query_root";
|
|
27
|
-
|
|
28
|
-
__typename
|
|
29
|
-
transaction_version
|
|
27
|
+
account_transactions: Array<{
|
|
28
|
+
__typename?: "account_transactions";
|
|
29
|
+
transaction_version: number;
|
|
30
30
|
}>;
|
|
31
31
|
};
|
|
32
32
|
export type GetAccountTransactionsDataGtQueryVariables = Exact<{
|
|
@@ -36,9 +36,9 @@ export type GetAccountTransactionsDataGtQueryVariables = Exact<{
|
|
|
36
36
|
}>;
|
|
37
37
|
export type GetAccountTransactionsDataGtQuery = {
|
|
38
38
|
__typename?: "query_root";
|
|
39
|
-
|
|
40
|
-
__typename
|
|
41
|
-
transaction_version
|
|
39
|
+
account_transactions: Array<{
|
|
40
|
+
__typename?: "account_transactions";
|
|
41
|
+
transaction_version: number;
|
|
42
42
|
}>;
|
|
43
43
|
};
|
|
44
44
|
export type GetAccountTransactionsDataLtQueryVariables = Exact<{
|
|
@@ -48,9 +48,9 @@ export type GetAccountTransactionsDataLtQueryVariables = Exact<{
|
|
|
48
48
|
}>;
|
|
49
49
|
export type GetAccountTransactionsDataLtQuery = {
|
|
50
50
|
__typename?: "query_root";
|
|
51
|
-
|
|
52
|
-
__typename
|
|
53
|
-
transaction_version
|
|
51
|
+
account_transactions: Array<{
|
|
52
|
+
__typename?: "account_transactions";
|
|
53
|
+
transaction_version: number;
|
|
54
54
|
}>;
|
|
55
55
|
};
|
|
56
56
|
export type DelegatedStakingActivity = {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/graphql/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/network/graphql/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RawTransaction } from "@aptos-labs/ts-sdk";
|
|
2
|
-
import { SignerContext } from "@ledgerhq/coin-framework/
|
|
2
|
+
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
3
3
|
import { Account } from "@ledgerhq/types-live";
|
|
4
4
|
import { AptosSigner } from "../types";
|
|
5
|
+
export * from "./client";
|
|
5
6
|
export declare function signTransaction(signerContext: SignerContext<AptosSigner>, account: Account, deviceId: string, rawTxn: RawTransaction): Promise<Uint8Array>;
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,cAAc,UAAU,CAAC;AAEzB,wBAAsB,eAAe,CACnC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,EACzC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
|
package/lib-es/network/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AccountAddress, AccountAuthenticatorEd25519, Ed25519PublicKey, Ed25519Signature, generateSignedTransaction, generateSigningMessageForTransaction, Hex, } from "@aptos-labs/ts-sdk";
|
|
2
2
|
import { sha3_256 as sha3Hash } from "@noble/hashes/sha3";
|
|
3
|
+
export * from "./client";
|
|
3
4
|
export async function signTransaction(signerContext, account, deviceId, rawTxn) {
|
|
4
5
|
const { freshAddressPath: derivationPath } = account;
|
|
5
6
|
if (!account.xpub) {
|