@ledgerhq/coin-aptos 1.9.5 → 1.10.0-nightly.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/lib/__tests__/api/index.test.js +61 -5
- package/lib/__tests__/api/index.test.js.map +1 -1
- package/lib/__tests__/bridge/buildTransaction.test.js +57 -2
- package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -1
- package/lib/__tests__/bridge/getFeesForTransaction.test.js +109 -8
- 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/signOperation.test.js +128 -2
- package/lib/__tests__/bridge/signOperation.test.js.map +1 -1
- package/lib/__tests__/bridge/synchronisation.test.js +1214 -67
- package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
- package/lib/api/graphql/queries.js +6 -6
- package/lib/api/graphql/types.d.ts +9 -9
- package/lib/api/graphql/types.d.ts.map +1 -1
- package/lib/api/index.d.ts +5 -2
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +30 -4
- 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/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 +1 -1
- package/lib/bridge/estimateMaxSpendable.js.map +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/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 +2 -2
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +17 -3
- 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 +127 -4
- package/lib/bridge/synchronisation.js.map +1 -1
- 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/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/index.d.ts +18 -7
- package/lib/types/index.d.ts.map +1 -1
- package/lib-es/__tests__/api/index.test.js +61 -5
- package/lib-es/__tests__/api/index.test.js.map +1 -1
- package/lib-es/__tests__/bridge/buildTransaction.test.js +58 -3
- package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -1
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +110 -9
- 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/signOperation.test.js +128 -2
- 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/api/graphql/queries.js +6 -6
- package/lib-es/api/graphql/types.d.ts +9 -9
- package/lib-es/api/graphql/types.d.ts.map +1 -1
- package/lib-es/api/index.d.ts +5 -2
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +30 -4
- 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/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 +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js.map +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/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 +2 -2
- 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 +17 -3
- 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 +123 -3
- package/lib-es/bridge/synchronisation.js.map +1 -1
- 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/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/index.d.ts +18 -7
- package/lib-es/types/index.d.ts.map +1 -1
- package/package.json +9 -8
- package/src/__tests__/api/index.test.ts +75 -5
- package/src/__tests__/bridge/buildTransaction.test.ts +85 -3
- package/src/__tests__/bridge/getFeesForTransaction.test.ts +144 -9
- package/src/__tests__/bridge/getTransactionStatus.test.ts +217 -38
- package/src/__tests__/bridge/logic.test.ts +922 -118
- package/src/__tests__/bridge/signOperation.test.ts +141 -2
- package/src/__tests__/bridge/synchronisation.test.ts +1265 -71
- package/src/api/graphql/queries.ts +6 -6
- package/src/api/graphql/types.ts +9 -9
- package/src/api/index.ts +32 -5
- package/src/bridge/bridge.fixture.ts +91 -12
- package/src/bridge/buildTransaction.ts +39 -6
- package/src/bridge/estimateMaxSpendable.ts +1 -1
- package/src/bridge/getFeesForTransaction.ts +14 -9
- package/src/bridge/getTransactionStatus.ts +35 -13
- package/src/bridge/logic.ts +202 -63
- package/src/bridge/prepareTransaction.ts +4 -3
- package/src/bridge/signOperation.ts +19 -3
- package/src/bridge/synchronisation.ts +170 -3
- package/src/constants.ts +12 -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/index.ts +15 -1
|
@@ -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
4
|
import { AptosAPI } from "../api";
|
|
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;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,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;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAGhD;;GAEG;AACH,MAAM,6BAA6B,GAAuC;IACxE,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;CAC3C,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,cAAmC,EACnC,cAA8B,EACT,EAAE;IACvB,MAAM,cAAc,GAAoC,cAAc,EAAE,WAAW,CAAC;IACpF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,wDAAwD;IACxD,MAAM,kBAAkB,GAAoC,EAAE,CAAC;IAC/D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,kBAAkB,CAAC,aAAa,CAAC,EAAG,CAAC,GAAG,aAAa,CAAC;IACxD,CAAC;IAED,yEAAyE;IACzE,sFAAsF;IACtF,qEAAqE;IACrE,MAAM,mBAAmB,GAAmB,EAAE,CAAC;IAC/C,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,MAAM,iBAAiB,GAA6B,kBAAkB,CAAC,aAAa,CAAC,EAAG,CAAC,CAAC;QAE1F,4DAA4D;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,qBAAqB;YACrB,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAmD,EAAE,CAAC;QACnE,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,6BAA6B,EAAE,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IACE,aAAa,CAAC,IAA0B,CAAC;oBACzC,iBAAiB,CAAC,IAA0B,CAAC,EAC7C,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAA0B,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,CACN,iBAAiB,CAAC,IAA0B,CAAgB,EAC5D,aAAa,CAAC,IAA0B,CAAgB,CACzD,IAAI,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,OAAO,CAAC,eAAe;YACrB,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,iBAAiB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;QAE3E,gEAAgE;QAChE,kBAAkB,CAAC,aAAa,CAAC,EAAG,CAAC,GAAG;YACtC,GAAG,iBAAiB;YACpB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,mBAAmB,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,QAAwB,EACxB,OAAe,EACf,QAAgB,EAChB,KAAoB,EACpB,UAAuB,EACA,EAAE;IACzB,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,UAAU;SAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SACnD,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7B,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc;QAClB,QAAQ;QACR,KAAK;QACL,OAAO;QACP,gBAAgB,EAAE,OAAO;QACzB,YAAY,EAAE,cAAc,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;QACjD,UAAU;QACV,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,iBAAiB,EAAE,EAAE;QACrB,mBAAmB,EAAE,iBAAiB;QACtC,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,KAAgC,EAChC,OAAe,EACf,SAAiB,EACjB,mBAAgC,EACP,EAAE;IAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE3B,gHAAgH;IAChH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACjB,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC,CAAC,gDAAgD;QAExE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,IAAI,GAAG,EAA8B,CACtC,CAAC;IAEF,gFAAgF;IAChF,MAAM,mBAAmB,GAA4B,EAAE,CAAC;IACxD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAoB,KAAK,EAAC,IAAI,EAAC,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEzE,MAAM,SAAS,GACb,IAAI,EAAE,SAAS,IAAI,CAAC,cAAc,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IAE1F,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,SAAS,IAAI,OAAO;QACnC,cAAc;KACf,CAAC,CAAC;IAEH,yFAAyF;IACzF,4EAA4E;IAC5E,kDAAkD;IAClD,0EAA0E;IAC1E,MAAM,IAAI,GAAG,cAAc,EAAE,IAAI,IAAI,SAAS,IAAI,EAAE,CAAC;IAErD,MAAM,aAAa,GAAG,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;IAEvD,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAEzF,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAA+B,QAAQ,CAC3E,IAAI,EACJ,SAAS,EACT,YAAY,CACb,CAAC;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACvF,MAAM,qBAAqB,GAAG,cAAc,KAAK,SAAS,CAAC;IAC3D,MAAM,WAAW,GAAG,qBAAqB;QACvC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAErD,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACtB,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa;YACd,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAA0B;QACnC,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,SAAS;QACb,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,gBAAgB,EAAE,OAAO;QACzB,UAAU;QACV,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,WAAW;QACX,YAAY,EAAE,IAAI,IAAI,EAAE;QACxB,WAAW;KACZ,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-specs.d.ts","sourceRoot":"","sources":["../../src/test/bot-specs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"bot-specs.d.ts","sourceRoot":"","sources":["../../src/test/bot-specs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,oCAAoC,CAAC;;;;AA8IxF,wBAEE"}
|
package/lib-es/test/bot-specs.js
CHANGED
|
@@ -4,7 +4,7 @@ import { DeviceModelId } from "@ledgerhq/devices";
|
|
|
4
4
|
import BigNumber from "bignumber.js";
|
|
5
5
|
import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
|
|
6
6
|
import { genericTestDestination, pickSiblings, botTest } from "@ledgerhq/coin-framework/bot/specs";
|
|
7
|
-
import { acceptTransaction } from "./speculos-deviceActions";
|
|
7
|
+
import { acceptTokenTransaction, acceptTransaction } from "./speculos-deviceActions";
|
|
8
8
|
const MIN_SAFE = new BigNumber(0.0001);
|
|
9
9
|
const maxAccount = 6;
|
|
10
10
|
const aptosSpecs = {
|
|
@@ -15,7 +15,7 @@ const aptosSpecs = {
|
|
|
15
15
|
appName: "Aptos",
|
|
16
16
|
},
|
|
17
17
|
genericDeviceAction: acceptTransaction,
|
|
18
|
-
testTimeout:
|
|
18
|
+
testTimeout: 2 * 60 * 1000,
|
|
19
19
|
minViableAmount: MIN_SAFE,
|
|
20
20
|
transactionCheck: ({ maxSpendable }) => {
|
|
21
21
|
invariant(maxSpendable.gt(MIN_SAFE), "balance is too low");
|
|
@@ -70,8 +70,47 @@ const aptosSpecs = {
|
|
|
70
70
|
botTest("account spendable balance is zero", () => expect(account.spendableBalance.toString()).toBe("0"));
|
|
71
71
|
},
|
|
72
72
|
},
|
|
73
|
+
{
|
|
74
|
+
name: "Send ~50% of token amount",
|
|
75
|
+
feature: "tokens",
|
|
76
|
+
maxRun: 1,
|
|
77
|
+
deviceAction: acceptTokenTransaction,
|
|
78
|
+
transaction: ({ account, bridge, siblings, maxSpendable }) => {
|
|
79
|
+
invariant(maxSpendable.gt(MIN_SAFE), "Balance is too low");
|
|
80
|
+
const senderTokenAcc = findTokenSubAccountWithBalance(account);
|
|
81
|
+
invariant(senderTokenAcc, "Sender token account with available balance not found");
|
|
82
|
+
const sibling = pickSiblings(siblings, maxAccount);
|
|
83
|
+
const recipientTokenAcc = findTokenSubAccountWithBalance(sibling);
|
|
84
|
+
invariant(recipientTokenAcc, "Receiver token account with available balance not found");
|
|
85
|
+
const amount = senderTokenAcc.spendableBalance.div(2).integerValue();
|
|
86
|
+
const recipient = sibling.freshAddress;
|
|
87
|
+
const transaction = bridge.createTransaction(account);
|
|
88
|
+
const subAccountId = senderTokenAcc.id;
|
|
89
|
+
return {
|
|
90
|
+
transaction,
|
|
91
|
+
updates: [{ subAccountId }, { recipient }, { amount }],
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
test: input => {
|
|
95
|
+
expectTokenAccountCorrectBalanceChange(input);
|
|
96
|
+
},
|
|
97
|
+
},
|
|
73
98
|
],
|
|
74
99
|
};
|
|
100
|
+
function findTokenSubAccountWithBalance(account) {
|
|
101
|
+
return account.subAccounts?.find(acc => acc.type === "TokenAccount" && acc.balance.gt(0));
|
|
102
|
+
}
|
|
103
|
+
function expectTokenAccountCorrectBalanceChange({ account, accountBeforeTransaction, status, transaction, }) {
|
|
104
|
+
const tokenAccId = transaction.subAccountId;
|
|
105
|
+
if (!tokenAccId)
|
|
106
|
+
throw new Error("Wrong subAccountId");
|
|
107
|
+
const tokenAccAfterTx = account.subAccounts?.find(acc => acc.id === tokenAccId);
|
|
108
|
+
const tokenAccBeforeTx = accountBeforeTransaction.subAccounts?.find(acc => acc.id === tokenAccId);
|
|
109
|
+
if (!tokenAccAfterTx || !tokenAccBeforeTx) {
|
|
110
|
+
throw new Error("Token sub accounts not found!");
|
|
111
|
+
}
|
|
112
|
+
botTest("Token balance decreased with operation", () => expect(tokenAccAfterTx.balance.toString()).toBe(tokenAccBeforeTx.balance.minus(status.amount).toString()));
|
|
113
|
+
}
|
|
75
114
|
export default {
|
|
76
115
|
aptosSpecs,
|
|
77
116
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-specs.js","sourceRoot":"","sources":["../../src/test/bot-specs.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAEnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"bot-specs.js","sourceRoot":"","sources":["../../src/test/bot-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeDatasetTest.d.ts","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"bridgeDatasetTest.d.ts","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA6FvC,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAK5C,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import BigNumber from "bignumber.js";
|
|
2
|
-
import { fromTransactionRaw } from "../bridge/transaction";
|
|
3
1
|
const aptos = {
|
|
4
2
|
scanAccounts: [
|
|
5
3
|
{
|
|
@@ -18,86 +16,73 @@ const aptos = {
|
|
|
18
16
|
],
|
|
19
17
|
accounts: [
|
|
20
18
|
{
|
|
19
|
+
FIXME_tests: ["balance is sum of ops"],
|
|
21
20
|
raw: {
|
|
22
|
-
id: "js:2:aptos:d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956:",
|
|
21
|
+
id: "js:2:aptos:d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956:aptos",
|
|
23
22
|
seedIdentifier: "d6816f4f22f867b56cf9304b776f452a16d107835d73ee8a33c4ced210300583",
|
|
24
23
|
used: true,
|
|
25
|
-
derivationMode: "",
|
|
24
|
+
derivationMode: "aptos",
|
|
26
25
|
index: 0,
|
|
27
26
|
freshAddress: "0x445fa0013887abd1a0c14acdec6e48090e0ad3fed3e08202aac15ca14f3be26b",
|
|
28
27
|
freshAddressPath: "44'/637'/0'/0'/0'",
|
|
29
|
-
blockHeight:
|
|
28
|
+
blockHeight: 302459501,
|
|
30
29
|
creationDate: "2024-12-18T12:26:31.070Z",
|
|
31
|
-
operationsCount:
|
|
30
|
+
operationsCount: 6,
|
|
32
31
|
operations: [],
|
|
33
32
|
pendingOperations: [],
|
|
34
33
|
currencyId: "aptos",
|
|
35
|
-
lastSyncDate: "2025-
|
|
36
|
-
balance: "
|
|
37
|
-
spendableBalance: "
|
|
34
|
+
lastSyncDate: "2025-03-12T10:42:53.570Z",
|
|
35
|
+
balance: "19949100",
|
|
36
|
+
spendableBalance: "19949100",
|
|
38
37
|
balanceHistoryCache: {
|
|
39
38
|
HOUR: {
|
|
40
39
|
balances: [
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
51
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
52
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
53
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
54
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
55
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
56
|
-
30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
|
|
57
|
-
30100,
|
|
40
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
41
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
42
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
43
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
44
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
45
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
46
|
+
0, 19949100, 19949100, 19949100, 19949100, 19949100, 19949100, 19949100, 19949100,
|
|
47
|
+
19949100, 19949100, 19949100, 19949100, 19949100, 19949100, 19949100, 19949100,
|
|
48
|
+
19949100, 19949100,
|
|
58
49
|
],
|
|
59
|
-
latestDate:
|
|
50
|
+
latestDate: 1741773600000,
|
|
60
51
|
},
|
|
61
52
|
DAY: {
|
|
62
53
|
balances: [
|
|
63
|
-
0,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
54
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
55
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
56
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
57
|
+
19949100,
|
|
67
58
|
],
|
|
68
|
-
latestDate:
|
|
69
|
-
},
|
|
70
|
-
WEEK: {
|
|
71
|
-
balances: [0, 30100, 30100, 30100, 30100, 30100, 30100, 30100],
|
|
72
|
-
latestDate: 1738454400000,
|
|
59
|
+
latestDate: 1741737600000,
|
|
73
60
|
},
|
|
61
|
+
WEEK: { balances: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], latestDate: 1741478400000 },
|
|
74
62
|
},
|
|
75
63
|
xpub: "d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956",
|
|
64
|
+
subAccounts: [
|
|
65
|
+
{
|
|
66
|
+
type: "TokenAccountRaw",
|
|
67
|
+
id: "js:2:aptos:d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956:aptos+aptos%2Fcoin%2Fdstapt~!underscore!~0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5%3A%3Astaked~!underscore!~coin%3A%3Astakedaptos",
|
|
68
|
+
parentId: "js:2:aptos:d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956:aptos",
|
|
69
|
+
tokenId: "aptos/coin/dstapt_0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::staked_coin::stakedaptos",
|
|
70
|
+
balance: "30000000",
|
|
71
|
+
spendableBalance: "30000000",
|
|
72
|
+
balanceHistoryCache: {
|
|
73
|
+
HOUR: { latestDate: null, balances: [] },
|
|
74
|
+
DAY: { latestDate: null, balances: [] },
|
|
75
|
+
WEEK: { latestDate: null, balances: [] },
|
|
76
|
+
},
|
|
77
|
+
creationDate: "2025-03-12T10:42:53.570Z",
|
|
78
|
+
operationsCount: 2,
|
|
79
|
+
operations: [],
|
|
80
|
+
pendingOperations: [],
|
|
81
|
+
swapHistory: [],
|
|
82
|
+
},
|
|
83
|
+
],
|
|
76
84
|
swapHistory: [],
|
|
77
85
|
},
|
|
78
|
-
transactions: [
|
|
79
|
-
{
|
|
80
|
-
name: "NO_NAME",
|
|
81
|
-
transaction: fromTransactionRaw({
|
|
82
|
-
amount: "1000",
|
|
83
|
-
recipient: "0xd20fa44192f94ba086ab16bfdf57e43ff118ada69b4c66fa9b9a9223cbc068c1",
|
|
84
|
-
useAllAmount: false,
|
|
85
|
-
subAccountId: null,
|
|
86
|
-
family: "aptos",
|
|
87
|
-
mode: "send",
|
|
88
|
-
fees: "900",
|
|
89
|
-
options: '{"maxGasAmount":"9","gasUnitPrice":"100"}',
|
|
90
|
-
errors: "{}",
|
|
91
|
-
}),
|
|
92
|
-
expectedStatus: () =>
|
|
93
|
-
// you can use account and transaction for smart logic. drop the =>fn otherwise
|
|
94
|
-
({
|
|
95
|
-
errors: {},
|
|
96
|
-
warnings: {},
|
|
97
|
-
amount: BigNumber("1000"),
|
|
98
|
-
}),
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
86
|
},
|
|
102
87
|
],
|
|
103
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeDatasetTest.js","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bridgeDatasetTest.js","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AAGA,MAAM,KAAK,GAAgC;IACzC,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE;;;;;;;;;OASN;SACF;KACF;IACD,QAAQ,EAAE;QACR;YACE,WAAW,EAAE,CAAC,uBAAuB,CAAC;YACtC,GAAG,EAAE;gBACH,EAAE,EAAE,mFAAmF;gBACvF,cAAc,EAAE,kEAAkE;gBAClF,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,OAAO;gBACvB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,oEAAoE;gBAClF,gBAAgB,EAAE,mBAAmB;gBACrC,WAAW,EAAE,SAAS;gBACtB,YAAY,EAAE,0BAA0B;gBACxC,eAAe,EAAE,CAAC;gBAClB,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,0BAA0B;gBACxC,OAAO,EAAE,UAAU;gBACnB,gBAAgB,EAAE,UAAU;gBAC5B,mBAAmB,EAAE;oBACnB,IAAI,EAAE;wBACJ,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;4BACjF,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;4BAC9E,QAAQ,EAAE,QAAQ;yBACnB;wBACD,UAAU,EAAE,aAAa;qBAC1B;oBACD,GAAG,EAAE;wBACH,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BACrF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC5E,QAAQ;yBACT;wBACD,UAAU,EAAE,aAAa;qBAC1B;oBACD,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE;iBACvF;gBACD,IAAI,EAAE,kEAAkE;gBACxE,WAAW,EAAE;oBACX;wBACE,IAAI,EAAE,iBAAiB;wBACvB,EAAE,EAAE,wOAAwO;wBAC5O,QAAQ,EACN,mFAAmF;wBACrF,OAAO,EACL,gHAAgH;wBAClH,OAAO,EAAE,UAAU;wBACnB,gBAAgB,EAAE,UAAU;wBAC5B,mBAAmB,EAAE;4BACnB,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;4BACxC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;4BACvC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;yBACzC;wBACD,YAAY,EAAE,0BAA0B;wBACxC,eAAe,EAAE,CAAC;wBAClB,UAAU,EAAE,EAAE;wBACd,iBAAiB,EAAE,EAAE;wBACrB,WAAW,EAAE,EAAE;qBAChB;iBACF;gBACD,WAAW,EAAE,EAAE;aAChB;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,eAAe,EAAE,CAAC,IAAI,CAAC;IACvB,UAAU,EAAE;QACV,KAAK;KACN;CACF,CAAC"}
|
|
@@ -2,4 +2,5 @@ import type { DeviceAction } from "@ledgerhq/coin-framework/bot/types";
|
|
|
2
2
|
import type { Transaction } from "../types";
|
|
3
3
|
import { State } from "@ledgerhq/coin-framework/bot/types";
|
|
4
4
|
export declare const acceptTransaction: DeviceAction<Transaction, State<Transaction>>;
|
|
5
|
+
export declare const acceptTokenTransaction: DeviceAction<Transaction, State<Transaction>>;
|
|
5
6
|
//# sourceMappingURL=speculos-deviceActions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speculos-deviceActions.d.ts","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAE3D,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"speculos-deviceActions.d.ts","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAE3D,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAmC1E,CAAC;AAEH,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAC/C,WAAW,EACX,KAAK,CAAC,WAAW,CAAC,CAoClB,CAAC"}
|
|
@@ -6,7 +6,7 @@ export const acceptTransaction = deviceActionFlow({
|
|
|
6
6
|
button: SpeculosButton.RIGHT,
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
|
-
title: "Transaction",
|
|
9
|
+
title: "Transaction Type",
|
|
10
10
|
button: SpeculosButton.RIGHT,
|
|
11
11
|
},
|
|
12
12
|
{
|
|
@@ -14,21 +14,53 @@ export const acceptTransaction = deviceActionFlow({
|
|
|
14
14
|
button: SpeculosButton.RIGHT,
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
title: "
|
|
17
|
+
title: "Amount",
|
|
18
|
+
button: SpeculosButton.RIGHT,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
title: "To (1/2)",
|
|
18
22
|
button: SpeculosButton.RIGHT,
|
|
19
23
|
},
|
|
20
24
|
{
|
|
21
|
-
title: "
|
|
25
|
+
title: "To (2/2)",
|
|
22
26
|
button: SpeculosButton.RIGHT,
|
|
23
27
|
},
|
|
24
28
|
{
|
|
25
|
-
title: "
|
|
29
|
+
title: "Gas Fee",
|
|
30
|
+
button: SpeculosButton.RIGHT,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title: "Approve",
|
|
34
|
+
button: SpeculosButton.BOTH,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
});
|
|
38
|
+
export const acceptTokenTransaction = deviceActionFlow({
|
|
39
|
+
steps: [
|
|
40
|
+
{
|
|
41
|
+
title: "Review",
|
|
42
|
+
button: SpeculosButton.RIGHT,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
title: "Transaction Type",
|
|
46
|
+
button: SpeculosButton.RIGHT,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: "Function",
|
|
26
50
|
button: SpeculosButton.RIGHT,
|
|
27
51
|
},
|
|
28
52
|
{
|
|
29
53
|
title: "Amount",
|
|
30
54
|
button: SpeculosButton.RIGHT,
|
|
31
55
|
},
|
|
56
|
+
{
|
|
57
|
+
title: "To (1/2)",
|
|
58
|
+
button: SpeculosButton.RIGHT,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
title: "To (2/2)",
|
|
62
|
+
button: SpeculosButton.RIGHT,
|
|
63
|
+
},
|
|
32
64
|
{
|
|
33
65
|
title: "Gas Fee",
|
|
34
66
|
button: SpeculosButton.RIGHT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speculos-deviceActions.js","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGtF,MAAM,CAAC,MAAM,iBAAiB,GAAkD,gBAAgB,CAAC;IAC/F,KAAK,EAAE;QACL;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"speculos-deviceActions.js","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGtF,MAAM,CAAC,MAAM,iBAAiB,GAAkD,gBAAgB,CAAC;IAC/F,KAAK,EAAE;QACL;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAG/B,gBAAgB,CAAC;IACnB,KAAK,EAAE;QACL;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;KACF;CACF,CAAC,CAAC"}
|
package/lib-es/types/index.d.ts
CHANGED
|
@@ -49,14 +49,25 @@ export type TransactionRaw = TransactionCommonRaw & {
|
|
|
49
49
|
options: string;
|
|
50
50
|
errors?: string;
|
|
51
51
|
};
|
|
52
|
-
export type
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
export type AptosFungibleStoreResourceData = {
|
|
53
|
+
balance: BigNumber;
|
|
54
|
+
frozen: boolean;
|
|
55
|
+
metadata: {
|
|
56
|
+
inner: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export type AptosFungibleoObjectCoreResourceData = {
|
|
60
|
+
owner: string;
|
|
61
|
+
};
|
|
62
|
+
export type AptosMoveResourceData = {
|
|
63
|
+
guid: {
|
|
64
|
+
id: {
|
|
65
|
+
addr: string;
|
|
66
|
+
creation_num: string;
|
|
59
67
|
};
|
|
60
68
|
};
|
|
61
69
|
};
|
|
70
|
+
export type AptosMoveResource = {
|
|
71
|
+
[key: string]: AptosMoveResourceData;
|
|
72
|
+
};
|
|
62
73
|
//# sourceMappingURL=index.d.ts.map
|