@ledgerhq/coin-aptos 3.5.0-nightly.4 → 3.5.0-nightly.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +18 -0
- package/lib/bridge/logic.d.ts +1 -1
- package/lib/bridge/logic.d.ts.map +1 -1
- package/lib/bridge/logic.js +14 -10
- package/lib/bridge/logic.js.map +1 -1
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +9 -9
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib-es/bridge/logic.d.ts +1 -1
- package/lib-es/bridge/logic.d.ts.map +1 -1
- package/lib-es/bridge/logic.js +15 -11
- package/lib-es/bridge/logic.js.map +1 -1
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +9 -9
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/package.json +5 -5
- package/src/__tests__/bridge/logic.test.ts +90 -83
- package/src/__tests__/bridge/synchronisation.test.ts +8 -8
- package/src/bridge/logic.ts +19 -13
- package/src/bridge/synchronisation.ts +11 -13
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/coin-aptos@3.5.0-nightly.
|
|
2
|
+
> @ledgerhq/coin-aptos@3.5.0-nightly.5 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-aptos
|
|
3
3
|
> tsc --outDir lib --module commonjs --moduleResolution node10 && tsc -m ES6 --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @ledgerhq/coin-aptos
|
|
2
2
|
|
|
3
|
+
## 3.5.0-nightly.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`607e4be`](https://github.com/LedgerHQ/ledger-live/commit/607e4be33145c102debce1606224b08579888aa8)]:
|
|
8
|
+
- @ledgerhq/cryptoassets@13.32.0-nightly.4
|
|
9
|
+
- @ledgerhq/coin-framework@6.8.0-nightly.6
|
|
10
|
+
|
|
11
|
+
## 3.5.0-nightly.5
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [[`77566c5`](https://github.com/LedgerHQ/ledger-live/commit/77566c5a3b5795f5938bd5daaa5f8d65934c56b8), [`c1a4bfd`](https://github.com/LedgerHQ/ledger-live/commit/c1a4bfd34b46c6b6587d247673cadb3c078deb1d), [`6ccabef`](https://github.com/LedgerHQ/ledger-live/commit/6ccabef8f3c4e8cc042299d531684595ebadcc55)]:
|
|
16
|
+
- @ledgerhq/types-live@6.88.0-nightly.3
|
|
17
|
+
- @ledgerhq/devices@8.7.0-nightly.1
|
|
18
|
+
- @ledgerhq/cryptoassets@13.32.0-nightly.3
|
|
19
|
+
- @ledgerhq/coin-framework@6.8.0-nightly.5
|
|
20
|
+
|
|
3
21
|
## 3.5.0-nightly.4
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/lib/bridge/logic.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export declare const getMaxSendBalance: (account: Account, transaction?: Transac
|
|
|
5
5
|
export declare const getBlankOperation: (tx: AptosTransaction, id: string) => Operation<Record<string, string>>;
|
|
6
6
|
export declare const txsToOps: (info: {
|
|
7
7
|
address: string;
|
|
8
|
-
}, id: string, txs: (AptosTransaction | null)[]) => [Operation[], Operation[], Operation[]]
|
|
8
|
+
}, id: string, txs: (AptosTransaction | null)[]) => Promise<[Operation[], Operation[], Operation[]]>;
|
|
9
9
|
export declare function getTokenAccount(account: Account, transaction: Transaction): TokenAccount | undefined;
|
|
10
10
|
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAS5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO9D,eAAO,MAAM,iBAAiB,YACnB,OAAO,gBACF,WAAW,QACnB,SAAS,aACJ,SAAS,KACnB,SAcF,CAAC;AAEF,eAAO,MAAM,iBAAiB,OACxB,gBAAgB,MAChB,MAAM,KACT,UAAU,OAAO,MAAM,EAAE,MAAM,CAAC,CAejC,CAAC;AAEH,eAAO,MAAM,QAAQ,SACb;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,MACrB,MAAM,OACL,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,KAC/B,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CA8EjD,CAAC;AAEF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACvB,YAAY,GAAG,SAAS,CAI1B"}
|
package/lib/bridge/logic.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.getTokenAccount = exports.txsToOps = exports.getBlankOperation = exports
|
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
const index_1 = require("@ledgerhq/coin-framework/account/index");
|
|
9
9
|
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
10
|
-
const
|
|
10
|
+
const index_2 = require("@ledgerhq/coin-framework/crypto-assets/index");
|
|
11
11
|
const constants_1 = require("../constants");
|
|
12
12
|
const transactionsToOperations_1 = require("../logic/transactionsToOperations");
|
|
13
13
|
const getCoinAndAmounts_1 = require("../logic/getCoinAndAmounts");
|
|
@@ -44,19 +44,19 @@ const getBlankOperation = (tx, id) => ({
|
|
|
44
44
|
hasFailed: false,
|
|
45
45
|
});
|
|
46
46
|
exports.getBlankOperation = getBlankOperation;
|
|
47
|
-
const txsToOps = (info, id, txs) => {
|
|
47
|
+
const txsToOps = async (info, id, txs) => {
|
|
48
48
|
const { address } = info;
|
|
49
49
|
const ops = [];
|
|
50
50
|
const opsTokens = [];
|
|
51
51
|
const opsStaking = [];
|
|
52
|
-
|
|
52
|
+
for (const tx of txs) {
|
|
53
53
|
if (tx !== null) {
|
|
54
54
|
const op = (0, exports.getBlankOperation)(tx, id);
|
|
55
55
|
op.fee = new bignumber_js_1.default(tx.gas_used).multipliedBy(new bignumber_js_1.default(tx.gas_unit_price));
|
|
56
56
|
const payload = (0, transactionsToOperations_1.convertFunctionPayloadResponseToInputEntryFunctionData)(tx.payload);
|
|
57
57
|
const function_address = (0, getFunctionAddress_1.getFunctionAddress)(payload);
|
|
58
58
|
if (!function_address) {
|
|
59
|
-
|
|
59
|
+
continue; // skip transaction without functions in payload
|
|
60
60
|
}
|
|
61
61
|
const { coin_id, amount_in, amount_out, type } = (0, getCoinAndAmounts_1.getCoinAndAmounts)(tx, address);
|
|
62
62
|
op.value = (0, calculateAmount_1.calculateAmount)(tx.sender, address, amount_in, amount_out);
|
|
@@ -85,23 +85,27 @@ const txsToOps = (info, id, txs) => {
|
|
|
85
85
|
ops.push(op);
|
|
86
86
|
}
|
|
87
87
|
else {
|
|
88
|
-
const token = (0,
|
|
88
|
+
const token = await (0, index_2.getCryptoAssetsStore)().findTokenByAddressInCurrency(coin_id.toLowerCase(), "aptos");
|
|
89
89
|
if (token !== undefined) {
|
|
90
|
-
|
|
90
|
+
const tokenAccountId = (0, index_1.encodeTokenAccountId)(id, token);
|
|
91
|
+
op.accountId = tokenAccountId;
|
|
91
92
|
opsTokens.push(op);
|
|
92
93
|
if (op.type === constants_1.OP_TYPE.OUT) {
|
|
93
|
-
|
|
94
|
+
const accountId = tokenAccountId.split("+")[0];
|
|
95
|
+
// Create FEES operation with decoded main account ID
|
|
96
|
+
const feesOp = {
|
|
94
97
|
...op,
|
|
95
|
-
accountId
|
|
98
|
+
accountId,
|
|
96
99
|
value: op.fee,
|
|
97
100
|
type: "FEES",
|
|
98
|
-
}
|
|
101
|
+
};
|
|
102
|
+
ops.push(feesOp);
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
|
-
}
|
|
108
|
+
}
|
|
105
109
|
return [ops, opsTokens, opsStaking];
|
|
106
110
|
};
|
|
107
111
|
exports.txsToOps = txsToOps;
|
package/lib/bridge/logic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAGrC,
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAGrC,kEAIgD;AAChD,kEAAuE;AACvE,wEAAoF;AACpF,4CAAuF;AAEvF,gFAA2G;AAC3G,kEAA+E;AAC/E,8DAA2D;AAC3D,kEAA+D;AAC/D,oEAAiE;AAE1D,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,WAAyB,EACzB,GAAe,EACf,QAAoB,EACT,EAAE;IACb,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,OAAO,EAAE,WAAW,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,YAAY,IAAI,IAAA,sBAAc,EAAC,YAAY,CAAC,CAAC;IAEtE,GAAG,GAAG,GAAG,IAAI,IAAA,sBAAS,EAAC,uBAAW,CAAC,CAAC;IACpC,QAAQ,GAAG,QAAQ,IAAI,IAAA,sBAAS,EAAC,6BAAiB,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAO,gBAAgB;QACrB,CAAC,CAAC,YAAY,CAAC,gBAAgB;QAC/B,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC1C,CAAC,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B;AAEK,MAAM,iBAAiB,GAAG,CAC/B,EAAoB,EACpB,EAAU,EACyB,EAAE,CAAC,CAAC;IACvC,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,EAAE,CAAC,IAAI;IACb,IAAI,EAAE,EAAmB;IACzB,KAAK,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;IACvB,GAAG,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;IACrB,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI;IACzB,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM;IAC7B,OAAO,EAAE,EAAc;IACvB,UAAU,EAAE,EAAc;IAC1B,SAAS,EAAE,EAAE;IACb,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC7C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;IAC9B,yBAAyB,EAAE,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC;IACvD,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAlBU,QAAA,iBAAiB,qBAkB3B;AAEI,MAAM,QAAQ,GAAG,KAAK,EAC3B,IAAyB,EACzB,EAAU,EACV,GAAgC,EACkB,EAAE;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,MAAM,EAAE,GAAc,IAAA,yBAAiB,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,EAAE,CAAC,GAAG,GAAG,IAAI,sBAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YAEnF,MAAM,OAAO,GAAG,IAAA,iFAAsD,EACpE,EAAE,CAAC,OAAuC,CAC3C,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC;YAErD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,SAAS,CAAC,gDAAgD;YAC5D,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAA,qCAAiB,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChF,EAAE,CAAC,KAAK,GAAG,IAAA,iCAAe,EAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACtE,EAAE,CAAC,IAAI;gBACL,IAAI,KAAK,mBAAO,CAAC,OAAO;oBACtB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAA,kCAAc,EAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;wBAClC,CAAC,CAAC,mBAAO,CAAC,GAAG;wBACb,CAAC,CAAC,mBAAO,CAAC,EAAE,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3B,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;YAC3B,EAAE,CAAC,EAAE,GAAG,IAAA,6BAAiB,EAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAE1D,IAAA,qCAAiB,EAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAE1D,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtB,+CAA+C;gBAC/C,EAAE,CAAC,IAAI,GAAG,mBAAO,CAAC,OAAO,CAAC;YAC5B,CAAC;YAED,IACE,EAAE,CAAC,IAAI,KAAK,mBAAO,CAAC,KAAK;gBACzB,EAAE,CAAC,IAAI,KAAK,mBAAO,CAAC,OAAO;gBAC3B,EAAE,CAAC,IAAI,KAAK,mBAAO,CAAC,QAAQ,EAC5B,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACb,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAO,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC3D,IAAI,OAAO,KAAK,0BAAc,EAAE,CAAC;oBAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAoB,GAAE,CAAC,4BAA4B,CACrE,OAAO,CAAC,WAAW,EAAE,EACrB,OAAO,CACR,CAAC;oBACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,cAAc,GAAG,IAAA,4BAAoB,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;wBACvD,EAAE,CAAC,SAAS,GAAG,cAAc,CAAC;wBAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAEnB,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAO,CAAC,GAAG,EAAE,CAAC;4BAC5B,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC/C,qDAAqD;4BACrD,MAAM,MAAM,GAAG;gCACb,GAAG,EAAE;gCACL,SAAS;gCACT,KAAK,EAAE,EAAE,CAAC,GAAG;gCACb,IAAI,EAAE,MAAe;6BACtB,CAAC;4BACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACnB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC;AAlFW,QAAA,QAAQ,YAkFnB;AAEF,SAAgB,eAAe,CAC7B,OAAgB,EAChB,WAAwB;IAExB,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,OAAO,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAG,YAAY,IAAI,IAAA,sBAAc,EAAC,YAAY,CAAC,CAAC;IACtE,OAAO,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAPD,0CAOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAIjF,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAc7E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,YAAY,GAAG,SAAS,kBACxB,YAAY,EAAE,KAC7B,MAAM,YAAY,CAwDpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aACnB,cAAc,WACf,MAAM,YACL,MAAM,SACT,aAAa,cACR,SAAS,EAAE,KACtB,QAAQ,YAAY,CAuBtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAClB,iBAAiB,YAAY,CAAC,WAC5B,MAAM,aACJ,MAAM,uBACI,SAAS,EAAE,KAC/B,QAAQ,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAIjF,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAc7E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,YAAY,GAAG,SAAS,kBACxB,YAAY,EAAE,KAC7B,MAAM,YAAY,CAwDpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aACnB,cAAc,WACf,MAAM,YACL,MAAM,SACT,aAAa,cACR,SAAS,EAAE,KACtB,QAAQ,YAAY,CAuBtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAClB,iBAAiB,YAAY,CAAC,WAC5B,MAAM,aACJ,MAAM,uBACI,SAAS,EAAE,KAC/B,QAAQ,YAAY,EAAE,CAuBxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,YAAY,CAmGzD,CAAC;AAEF,eAAO,MAAM,uBAAuB,sBAAuB,SAAS,EAAE,KAAG,MAAM,EAa9E,CAAC"}
|
|
@@ -106,16 +106,16 @@ exports.getSubAccountShape = getSubAccountShape;
|
|
|
106
106
|
const getSubAccounts = async (infos, address, accountId, lastTokenOperations) => {
|
|
107
107
|
const { currency } = infos;
|
|
108
108
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
109
|
-
const operationsByToken =
|
|
110
|
-
|
|
109
|
+
const operationsByToken = new Map();
|
|
110
|
+
for (const operation of lastTokenOperations) {
|
|
111
|
+
const { token } = await (0, index_2.decodeTokenAccountId)(operation.accountId);
|
|
111
112
|
if (!token)
|
|
112
|
-
|
|
113
|
-
if (!
|
|
114
|
-
|
|
113
|
+
continue; // TODO: do we need to check blacklistedTokenIds
|
|
114
|
+
if (!operationsByToken.has(token)) {
|
|
115
|
+
operationsByToken.set(token, []);
|
|
115
116
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}, new Map());
|
|
117
|
+
operationsByToken.get(token)?.push(operation);
|
|
118
|
+
}
|
|
119
119
|
// Fetching all TokenAccounts possible and providing already filtered operations
|
|
120
120
|
const subAccountsPromises = [];
|
|
121
121
|
for (const [token, ops] of operationsByToken.entries()) {
|
|
@@ -142,7 +142,7 @@ const getAccountShape = async (info) => {
|
|
|
142
142
|
const oldOperations = initialAccount?.operations || [];
|
|
143
143
|
const aptosClient = new network_1.AptosAPI(currency.id);
|
|
144
144
|
const { balance, transactions, blockHeight } = await aptosClient.getAccountInfo(address);
|
|
145
|
-
const [newOperations, tokenOperations, stakingOperations] = (0, logic_1.txsToOps)(info, accountId, transactions);
|
|
145
|
+
const [newOperations, tokenOperations, stakingOperations] = await (0, logic_1.txsToOps)(info, accountId, transactions);
|
|
146
146
|
const operations = (0, jsHelpers_1.mergeOps)(oldOperations, newOperations);
|
|
147
147
|
const newSubAccounts = await (0, exports.getSubAccounts)(info, address, accountId, tokenOperations);
|
|
148
148
|
const shouldSyncFromScratch = initialAccount === undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
|
package/lib-es/bridge/logic.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export declare const getMaxSendBalance: (account: Account, transaction?: Transac
|
|
|
5
5
|
export declare const getBlankOperation: (tx: AptosTransaction, id: string) => Operation<Record<string, string>>;
|
|
6
6
|
export declare const txsToOps: (info: {
|
|
7
7
|
address: string;
|
|
8
|
-
}, id: string, txs: (AptosTransaction | null)[]) => [Operation[], Operation[], Operation[]]
|
|
8
|
+
}, id: string, txs: (AptosTransaction | null)[]) => Promise<[Operation[], Operation[], Operation[]]>;
|
|
9
9
|
export declare function getTokenAccount(account: Account, transaction: Transaction): TokenAccount | undefined;
|
|
10
10
|
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAS5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO9D,eAAO,MAAM,iBAAiB,YACnB,OAAO,gBACF,WAAW,QACnB,SAAS,aACJ,SAAS,KACnB,SAcF,CAAC;AAEF,eAAO,MAAM,iBAAiB,OACxB,gBAAgB,MAChB,MAAM,KACT,UAAU,OAAO,MAAM,EAAE,MAAM,CAAC,CAejC,CAAC;AAEH,eAAO,MAAM,QAAQ,SACb;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,MACrB,MAAM,OACL,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,KAC/B,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CA8EjD,CAAC;AAEF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACvB,YAAY,GAAG,SAAS,CAI1B"}
|
package/lib-es/bridge/logic.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import {
|
|
2
|
+
import { encodeTokenAccountId, findSubAccountById, isTokenAccount, } from "@ledgerhq/coin-framework/account/index";
|
|
3
3
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
4
|
-
import {
|
|
4
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
5
5
|
import { APTOS_ASSET_ID, OP_TYPE, DEFAULT_GAS, DEFAULT_GAS_PRICE } from "../constants";
|
|
6
6
|
import { convertFunctionPayloadResponseToInputEntryFunctionData } from "../logic/transactionsToOperations";
|
|
7
7
|
import { compareAddress, getCoinAndAmounts } from "../logic/getCoinAndAmounts";
|
|
@@ -36,19 +36,19 @@ export const getBlankOperation = (tx, id) => ({
|
|
|
36
36
|
transactionSequenceNumber: parseInt(tx.sequence_number),
|
|
37
37
|
hasFailed: false,
|
|
38
38
|
});
|
|
39
|
-
export const txsToOps = (info, id, txs) => {
|
|
39
|
+
export const txsToOps = async (info, id, txs) => {
|
|
40
40
|
const { address } = info;
|
|
41
41
|
const ops = [];
|
|
42
42
|
const opsTokens = [];
|
|
43
43
|
const opsStaking = [];
|
|
44
|
-
|
|
44
|
+
for (const tx of txs) {
|
|
45
45
|
if (tx !== null) {
|
|
46
46
|
const op = getBlankOperation(tx, id);
|
|
47
47
|
op.fee = new BigNumber(tx.gas_used).multipliedBy(new BigNumber(tx.gas_unit_price));
|
|
48
48
|
const payload = convertFunctionPayloadResponseToInputEntryFunctionData(tx.payload);
|
|
49
49
|
const function_address = getFunctionAddress(payload);
|
|
50
50
|
if (!function_address) {
|
|
51
|
-
|
|
51
|
+
continue; // skip transaction without functions in payload
|
|
52
52
|
}
|
|
53
53
|
const { coin_id, amount_in, amount_out, type } = getCoinAndAmounts(tx, address);
|
|
54
54
|
op.value = calculateAmount(tx.sender, address, amount_in, amount_out);
|
|
@@ -77,23 +77,27 @@ export const txsToOps = (info, id, txs) => {
|
|
|
77
77
|
ops.push(op);
|
|
78
78
|
}
|
|
79
79
|
else {
|
|
80
|
-
const token = findTokenByAddressInCurrency(coin_id.toLowerCase(), "aptos");
|
|
80
|
+
const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(coin_id.toLowerCase(), "aptos");
|
|
81
81
|
if (token !== undefined) {
|
|
82
|
-
|
|
82
|
+
const tokenAccountId = encodeTokenAccountId(id, token);
|
|
83
|
+
op.accountId = tokenAccountId;
|
|
83
84
|
opsTokens.push(op);
|
|
84
85
|
if (op.type === OP_TYPE.OUT) {
|
|
85
|
-
|
|
86
|
+
const accountId = tokenAccountId.split("+")[0];
|
|
87
|
+
// Create FEES operation with decoded main account ID
|
|
88
|
+
const feesOp = {
|
|
86
89
|
...op,
|
|
87
|
-
accountId
|
|
90
|
+
accountId,
|
|
88
91
|
value: op.fee,
|
|
89
92
|
type: "FEES",
|
|
90
|
-
}
|
|
93
|
+
};
|
|
94
|
+
ops.push(feesOp);
|
|
91
95
|
}
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
}
|
|
96
|
-
}
|
|
100
|
+
}
|
|
97
101
|
return [ops, opsTokens, opsStaking];
|
|
98
102
|
};
|
|
99
103
|
export function getTokenAccount(account, transaction) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EACL,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../src/bridge/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAIjF,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAc7E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,YAAY,GAAG,SAAS,kBACxB,YAAY,EAAE,KAC7B,MAAM,YAAY,CAwDpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aACnB,cAAc,WACf,MAAM,YACL,MAAM,SACT,aAAa,cACR,SAAS,EAAE,KACtB,QAAQ,YAAY,CAuBtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAClB,iBAAiB,YAAY,CAAC,WAC5B,MAAM,aACJ,MAAM,uBACI,SAAS,EAAE,KAC/B,QAAQ,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAIjF,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAM7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAc7E;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,YAAY,GAAG,SAAS,kBACxB,YAAY,EAAE,KAC7B,MAAM,YAAY,CAwDpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,aACnB,cAAc,WACf,MAAM,YACL,MAAM,SACT,aAAa,cACR,SAAS,EAAE,KACtB,QAAQ,YAAY,CAuBtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAClB,iBAAiB,YAAY,CAAC,WAC5B,MAAM,aACJ,MAAM,uBACI,SAAS,EAAE,KAC/B,QAAQ,YAAY,EAAE,CAuBxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,YAAY,CAmGzD,CAAC;AAEF,eAAO,MAAM,uBAAuB,sBAAuB,SAAS,EAAE,KAAG,MAAM,EAa9E,CAAC"}
|
|
@@ -98,16 +98,16 @@ export const getSubAccountShape = async (currency, address, parentId, token, ope
|
|
|
98
98
|
export const getSubAccounts = async (infos, address, accountId, lastTokenOperations) => {
|
|
99
99
|
const { currency } = infos;
|
|
100
100
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
101
|
-
const operationsByToken =
|
|
102
|
-
|
|
101
|
+
const operationsByToken = new Map();
|
|
102
|
+
for (const operation of lastTokenOperations) {
|
|
103
|
+
const { token } = await decodeTokenAccountId(operation.accountId);
|
|
103
104
|
if (!token)
|
|
104
|
-
|
|
105
|
-
if (!
|
|
106
|
-
|
|
105
|
+
continue; // TODO: do we need to check blacklistedTokenIds
|
|
106
|
+
if (!operationsByToken.has(token)) {
|
|
107
|
+
operationsByToken.set(token, []);
|
|
107
108
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}, new Map());
|
|
109
|
+
operationsByToken.get(token)?.push(operation);
|
|
110
|
+
}
|
|
111
111
|
// Fetching all TokenAccounts possible and providing already filtered operations
|
|
112
112
|
const subAccountsPromises = [];
|
|
113
113
|
for (const [token, ops] of operationsByToken.entries()) {
|
|
@@ -133,7 +133,7 @@ export const getAccountShape = async (info) => {
|
|
|
133
133
|
const oldOperations = initialAccount?.operations || [];
|
|
134
134
|
const aptosClient = new AptosAPI(currency.id);
|
|
135
135
|
const { balance, transactions, blockHeight } = await aptosClient.getAccountInfo(address);
|
|
136
|
-
const [newOperations, tokenOperations, stakingOperations] = txsToOps(info, accountId, transactions);
|
|
136
|
+
const [newOperations, tokenOperations, stakingOperations] = await txsToOps(info, accountId, transactions);
|
|
137
137
|
const operations = mergeOps(oldOperations, newOperations);
|
|
138
138
|
const newSubAccounts = await getSubAccounts(info, address, accountId, tokenOperations);
|
|
139
139
|
const shouldSyncFromScratch = initialAccount === undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-aptos",
|
|
3
|
-
"version": "3.5.0-nightly.
|
|
3
|
+
"version": "3.5.0-nightly.6",
|
|
4
4
|
"description": "Ledger Aptos Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -95,15 +95,15 @@
|
|
|
95
95
|
"invariant": "^2.2.4",
|
|
96
96
|
"lodash": "^4.17.21",
|
|
97
97
|
"rxjs": "^7.8.1",
|
|
98
|
-
"@ledgerhq/coin-framework": "^6.8.0-nightly.
|
|
99
|
-
"@ledgerhq/cryptoassets": "^13.32.0-nightly.
|
|
100
|
-
"@ledgerhq/devices": "8.
|
|
98
|
+
"@ledgerhq/coin-framework": "^6.8.0-nightly.6",
|
|
99
|
+
"@ledgerhq/cryptoassets": "^13.32.0-nightly.4",
|
|
100
|
+
"@ledgerhq/devices": "8.7.0-nightly.1",
|
|
101
101
|
"@ledgerhq/errors": "^6.27.0-nightly.0",
|
|
102
102
|
"@ledgerhq/live-env": "^2.20.0-nightly.0",
|
|
103
103
|
"@ledgerhq/live-network": "^2.1.0-nightly.1",
|
|
104
104
|
"@ledgerhq/logs": "^6.13.0",
|
|
105
105
|
"@ledgerhq/types-cryptoassets": "^7.29.0",
|
|
106
|
-
"@ledgerhq/types-live": "^6.88.0-nightly.
|
|
106
|
+
"@ledgerhq/types-live": "^6.88.0-nightly.3"
|
|
107
107
|
},
|
|
108
108
|
"devDependencies": {
|
|
109
109
|
"@faker-js/faker": "^9.4.0",
|
|
@@ -4,12 +4,13 @@ import { APTOS_COIN_CHANGE, OP_TYPE } from "../../constants";
|
|
|
4
4
|
import { getMaxSendBalance, getBlankOperation, txsToOps } from "../../bridge/logic";
|
|
5
5
|
import type { AptosTransaction, TransactionOptions } from "../../types";
|
|
6
6
|
import { createFixtureAccount, createFixtureTransaction } from "../../bridge/bridge.fixture";
|
|
7
|
-
import {
|
|
7
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
8
8
|
import { decodeTokenAccountId, encodeTokenAccountId } from "@ledgerhq/coin-framework/account/index";
|
|
9
9
|
import { normalizeTransactionOptions } from "../../logic/normalizeTransactionOptions";
|
|
10
10
|
|
|
11
11
|
jest.mock("@ledgerhq/cryptoassets");
|
|
12
12
|
jest.mock("@ledgerhq/coin-framework/account/index");
|
|
13
|
+
jest.mock("@ledgerhq/coin-framework/crypto-assets/index");
|
|
13
14
|
|
|
14
15
|
describe("Aptos logic ", () => {
|
|
15
16
|
describe("getMaxSendBalance", () => {
|
|
@@ -149,7 +150,7 @@ describe("Aptos logic ", () => {
|
|
|
149
150
|
|
|
150
151
|
describe("Aptos sync logic ", () => {
|
|
151
152
|
describe("txsToOps", () => {
|
|
152
|
-
it("should convert Aptos transactions to operations correctly", () => {
|
|
153
|
+
it("should convert Aptos transactions to operations correctly", async () => {
|
|
153
154
|
const address = "0x11";
|
|
154
155
|
const id = "test_id";
|
|
155
156
|
const txs: AptosTransaction[] = [
|
|
@@ -219,7 +220,7 @@ describe("Aptos sync logic ", () => {
|
|
|
219
220
|
} as unknown as AptosTransaction,
|
|
220
221
|
];
|
|
221
222
|
|
|
222
|
-
const [result] = txsToOps({ address }, id, txs);
|
|
223
|
+
const [result] = await txsToOps({ address }, id, txs);
|
|
223
224
|
|
|
224
225
|
expect(result).toHaveLength(1);
|
|
225
226
|
expect(result[0]).toEqual({
|
|
@@ -240,7 +241,7 @@ describe("Aptos sync logic ", () => {
|
|
|
240
241
|
});
|
|
241
242
|
});
|
|
242
243
|
|
|
243
|
-
it("should skip transactions without functions in payload", () => {
|
|
244
|
+
it("should skip transactions without functions in payload", async () => {
|
|
244
245
|
const address = "0x11";
|
|
245
246
|
const id = "test_id";
|
|
246
247
|
const txs: AptosTransaction[] = [
|
|
@@ -259,12 +260,12 @@ describe("Aptos sync logic ", () => {
|
|
|
259
260
|
} as unknown as AptosTransaction,
|
|
260
261
|
];
|
|
261
262
|
|
|
262
|
-
const [result] = txsToOps({ address }, id, txs);
|
|
263
|
+
const [result] = await txsToOps({ address }, id, txs);
|
|
263
264
|
|
|
264
265
|
expect(result).toHaveLength(0);
|
|
265
266
|
});
|
|
266
267
|
|
|
267
|
-
it("should skip transactions that result in no Aptos change", () => {
|
|
268
|
+
it("should skip transactions that result in no Aptos change", async () => {
|
|
268
269
|
const address = "0x11";
|
|
269
270
|
const id = "test_id";
|
|
270
271
|
const txs: AptosTransaction[] = [
|
|
@@ -288,12 +289,12 @@ describe("Aptos sync logic ", () => {
|
|
|
288
289
|
} as unknown as AptosTransaction,
|
|
289
290
|
];
|
|
290
291
|
|
|
291
|
-
const [result] = txsToOps({ address }, id, txs);
|
|
292
|
+
const [result] = await txsToOps({ address }, id, txs);
|
|
292
293
|
|
|
293
294
|
expect(result).toHaveLength(0);
|
|
294
295
|
});
|
|
295
296
|
|
|
296
|
-
it("should handle failed transactions", () => {
|
|
297
|
+
it("should handle failed transactions", async () => {
|
|
297
298
|
const address = "0xa0d8";
|
|
298
299
|
const id = "test_id";
|
|
299
300
|
const txs: AptosTransaction[] = [
|
|
@@ -418,7 +419,7 @@ describe("Aptos sync logic ", () => {
|
|
|
418
419
|
} as unknown as AptosTransaction,
|
|
419
420
|
];
|
|
420
421
|
|
|
421
|
-
const [result] = txsToOps({ address }, id, txs);
|
|
422
|
+
const [result] = await txsToOps({ address }, id, txs);
|
|
422
423
|
|
|
423
424
|
expect(result).toHaveLength(1);
|
|
424
425
|
expect(result[0]).toEqual({
|
|
@@ -439,47 +440,50 @@ describe("Aptos sync logic ", () => {
|
|
|
439
440
|
});
|
|
440
441
|
});
|
|
441
442
|
|
|
442
|
-
it("should convert Aptos token transactions to operations correctly", () => {
|
|
443
|
-
(
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
443
|
+
it("should convert Aptos token transactions to operations correctly", async () => {
|
|
444
|
+
(encodeTokenAccountId as jest.Mock).mockReturnValue("token_account_id");
|
|
445
|
+
(getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
446
|
+
findTokenByAddressInCurrency: jest.fn().mockReturnValue({
|
|
447
|
+
type: "TokenCurrency",
|
|
448
|
+
id: "aptos/coin/dstapt::staked_coin::stakedaptos",
|
|
449
|
+
contractAddress: "0xd111::staked_coin::StakedAptos",
|
|
450
|
+
parentCurrency: {
|
|
451
|
+
type: "CryptoCurrency",
|
|
452
|
+
id: "aptos",
|
|
453
|
+
coinType: 637,
|
|
454
|
+
name: "Aptos",
|
|
455
|
+
managerAppName: "Aptos",
|
|
456
|
+
ticker: "APT",
|
|
457
|
+
scheme: "aptos",
|
|
458
|
+
color: "#231F20",
|
|
459
|
+
family: "aptos",
|
|
460
|
+
units: [
|
|
461
|
+
{
|
|
462
|
+
name: "APT",
|
|
463
|
+
code: "APT",
|
|
464
|
+
magnitude: 8,
|
|
465
|
+
},
|
|
466
|
+
],
|
|
467
|
+
explorerViews: [
|
|
468
|
+
{
|
|
469
|
+
address: "https://explorer.aptoslabs.com/account/$address?network=mainnet",
|
|
470
|
+
tx: "https://explorer.aptoslabs.com/txn/$hash?network=mainnet",
|
|
471
|
+
},
|
|
472
|
+
],
|
|
473
|
+
},
|
|
474
|
+
name: "dstAPT",
|
|
475
|
+
tokenType: "coin",
|
|
476
|
+
ticker: "dstAPT",
|
|
477
|
+
disableCountervalue: false,
|
|
478
|
+
delisted: false,
|
|
457
479
|
units: [
|
|
458
480
|
{
|
|
459
|
-
name: "
|
|
460
|
-
code: "
|
|
481
|
+
name: "dstAPT",
|
|
482
|
+
code: "dstAPT",
|
|
461
483
|
magnitude: 8,
|
|
462
484
|
},
|
|
463
485
|
],
|
|
464
|
-
|
|
465
|
-
{
|
|
466
|
-
address: "https://explorer.aptoslabs.com/account/$address?network=mainnet",
|
|
467
|
-
tx: "https://explorer.aptoslabs.com/txn/$hash?network=mainnet",
|
|
468
|
-
},
|
|
469
|
-
],
|
|
470
|
-
},
|
|
471
|
-
name: "dstAPT",
|
|
472
|
-
tokenType: "coin",
|
|
473
|
-
ticker: "dstAPT",
|
|
474
|
-
disableCountervalue: false,
|
|
475
|
-
delisted: false,
|
|
476
|
-
units: [
|
|
477
|
-
{
|
|
478
|
-
name: "dstAPT",
|
|
479
|
-
code: "dstAPT",
|
|
480
|
-
magnitude: 8,
|
|
481
|
-
},
|
|
482
|
-
],
|
|
486
|
+
}),
|
|
483
487
|
});
|
|
484
488
|
|
|
485
489
|
jest.mock("../../bridge/logic", () => ({
|
|
@@ -698,7 +702,7 @@ describe("Aptos sync logic ", () => {
|
|
|
698
702
|
} as unknown as AptosTransaction,
|
|
699
703
|
];
|
|
700
704
|
|
|
701
|
-
const [ops, tokenOps] = txsToOps({ address }, id, txs);
|
|
705
|
+
const [ops, tokenOps] = await txsToOps({ address }, id, txs);
|
|
702
706
|
|
|
703
707
|
expect(ops).toHaveLength(1);
|
|
704
708
|
expect(ops[0]).toEqual({
|
|
@@ -721,6 +725,7 @@ describe("Aptos sync logic ", () => {
|
|
|
721
725
|
expect(tokenOps).toHaveLength(1);
|
|
722
726
|
expect(tokenOps[0]).toEqual({
|
|
723
727
|
id: expect.any(String),
|
|
728
|
+
accountId: "token_account_id",
|
|
724
729
|
hash: "0x123",
|
|
725
730
|
type: OP_TYPE.OUT,
|
|
726
731
|
value: new BigNumber(1500000),
|
|
@@ -736,47 +741,49 @@ describe("Aptos sync logic ", () => {
|
|
|
736
741
|
});
|
|
737
742
|
});
|
|
738
743
|
|
|
739
|
-
it("should convert Aptos token transactions to operations correctly", () => {
|
|
740
|
-
(
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
744
|
+
it("should convert Aptos token transactions to operations correctly", async () => {
|
|
745
|
+
(getCryptoAssetsStore as jest.Mock).mockReturnValue({
|
|
746
|
+
findTokenByAddressInCurrency: jest.fn().mockReturnValue({
|
|
747
|
+
type: "TokenCurrency",
|
|
748
|
+
id: "aptos/fungible_asset/cellana_0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12",
|
|
749
|
+
contractAddress: "0x2ebb",
|
|
750
|
+
parentCurrency: {
|
|
751
|
+
type: "CryptoCurrency",
|
|
752
|
+
id: "aptos",
|
|
753
|
+
coinType: 637,
|
|
754
|
+
name: "Aptos",
|
|
755
|
+
managerAppName: "Aptos",
|
|
756
|
+
ticker: "APT",
|
|
757
|
+
scheme: "aptos",
|
|
758
|
+
color: "#231F20",
|
|
759
|
+
family: "aptos",
|
|
760
|
+
units: [
|
|
761
|
+
{
|
|
762
|
+
name: "APT",
|
|
763
|
+
code: "APT",
|
|
764
|
+
magnitude: 8,
|
|
765
|
+
},
|
|
766
|
+
],
|
|
767
|
+
explorerViews: [
|
|
768
|
+
{
|
|
769
|
+
address: "https://explorer.aptoslabs.com/account/$address?network=mainnet",
|
|
770
|
+
tx: "https://explorer.aptoslabs.com/txn/$hash?network=mainnet",
|
|
771
|
+
},
|
|
772
|
+
],
|
|
773
|
+
},
|
|
774
|
+
name: "CELLANA",
|
|
775
|
+
tokenType: "fungible_asset",
|
|
776
|
+
ticker: "CELL",
|
|
777
|
+
disableCountervalue: false,
|
|
778
|
+
delisted: false,
|
|
754
779
|
units: [
|
|
755
780
|
{
|
|
756
|
-
name: "
|
|
757
|
-
code: "
|
|
781
|
+
name: "CELLANA",
|
|
782
|
+
code: "CELL",
|
|
758
783
|
magnitude: 8,
|
|
759
784
|
},
|
|
760
785
|
],
|
|
761
|
-
|
|
762
|
-
{
|
|
763
|
-
address: "https://explorer.aptoslabs.com/account/$address?network=mainnet",
|
|
764
|
-
tx: "https://explorer.aptoslabs.com/txn/$hash?network=mainnet",
|
|
765
|
-
},
|
|
766
|
-
],
|
|
767
|
-
},
|
|
768
|
-
name: "CELLANA",
|
|
769
|
-
tokenType: "fungible_asset",
|
|
770
|
-
ticker: "CELL",
|
|
771
|
-
disableCountervalue: false,
|
|
772
|
-
delisted: false,
|
|
773
|
-
units: [
|
|
774
|
-
{
|
|
775
|
-
name: "CELLANA",
|
|
776
|
-
code: "CELL",
|
|
777
|
-
magnitude: 8,
|
|
778
|
-
},
|
|
779
|
-
],
|
|
786
|
+
}),
|
|
780
787
|
});
|
|
781
788
|
|
|
782
789
|
jest.mock("../../bridge/logic", () => ({
|
|
@@ -1009,7 +1016,7 @@ describe("Aptos sync logic ", () => {
|
|
|
1009
1016
|
} as unknown as AptosTransaction,
|
|
1010
1017
|
];
|
|
1011
1018
|
|
|
1012
|
-
const [ops, tokenOps] = txsToOps({ address: "0x6b8c" }, "test_id", txs);
|
|
1019
|
+
const [ops, tokenOps] = await txsToOps({ address: "0x6b8c" }, "test_id", txs);
|
|
1013
1020
|
|
|
1014
1021
|
expect(ops).toHaveLength(0);
|
|
1015
1022
|
|
|
@@ -66,7 +66,7 @@ describe("getAccountShape", () => {
|
|
|
66
66
|
const mockGetAccountSpy = jest.spyOn({ getAccount: mockGetAccountInfo }, "getAccount");
|
|
67
67
|
|
|
68
68
|
jest.mocked(mergeOps).mockReturnValue([]);
|
|
69
|
-
jest.mocked(txsToOps).
|
|
69
|
+
jest.mocked(txsToOps).mockResolvedValue([[], [], []]);
|
|
70
70
|
|
|
71
71
|
const account = await getAccountShape(
|
|
72
72
|
{
|
|
@@ -120,7 +120,7 @@ describe("getAccountShape", () => {
|
|
|
120
120
|
const mockGetAccountSpy = jest.spyOn({ getAccount: mockGetAccountInfo }, "getAccount");
|
|
121
121
|
|
|
122
122
|
jest.mocked(mergeOps).mockReturnValue([]);
|
|
123
|
-
jest.mocked(txsToOps).
|
|
123
|
+
jest.mocked(txsToOps).mockResolvedValue([[], [], []]);
|
|
124
124
|
|
|
125
125
|
const account = await getAccountShape(
|
|
126
126
|
{
|
|
@@ -173,7 +173,7 @@ describe("getAccountShape", () => {
|
|
|
173
173
|
const mockGetAccountSpy = jest.spyOn({ getAccount: mockGetAccountInfo }, "getAccount");
|
|
174
174
|
|
|
175
175
|
jest.mocked(mergeOps).mockReturnValue([]);
|
|
176
|
-
jest.mocked(txsToOps).
|
|
176
|
+
jest.mocked(txsToOps).mockResolvedValue([[], [], []]);
|
|
177
177
|
|
|
178
178
|
const account = await getAccountShape(
|
|
179
179
|
{
|
|
@@ -206,7 +206,7 @@ describe("getAccountShape", () => {
|
|
|
206
206
|
const mockGetAccountSpy = jest.spyOn({ getAccount: mockGetAccountInfo }, "getAccount");
|
|
207
207
|
|
|
208
208
|
jest.mocked(mergeOps).mockReturnValue([]);
|
|
209
|
-
jest.mocked(txsToOps).
|
|
209
|
+
jest.mocked(txsToOps).mockResolvedValue([[], [], []]);
|
|
210
210
|
|
|
211
211
|
const account = await getAccountShape(
|
|
212
212
|
{
|
|
@@ -259,7 +259,7 @@ describe("getAccountShape", () => {
|
|
|
259
259
|
const mockGetAccountSpy = jest.spyOn({ getAccount: mockGetAccountInfo }, "getAccount");
|
|
260
260
|
|
|
261
261
|
jest.mocked(mergeOps).mockReturnValue([]);
|
|
262
|
-
jest.mocked(txsToOps).
|
|
262
|
+
jest.mocked(txsToOps).mockResolvedValue([[], [], []]);
|
|
263
263
|
|
|
264
264
|
const account = await getAccountShape(
|
|
265
265
|
{
|
|
@@ -312,7 +312,7 @@ describe("getAccountShape", () => {
|
|
|
312
312
|
const mockGetAccountSpy = jest.spyOn({ getAccount: mockGetAccountInfo }, "getAccount");
|
|
313
313
|
|
|
314
314
|
jest.mocked(mergeOps).mockReturnValue([]);
|
|
315
|
-
jest.mocked(txsToOps).
|
|
315
|
+
jest.mocked(txsToOps).mockResolvedValue([[], [], []]);
|
|
316
316
|
|
|
317
317
|
const account = await getAccountShape(
|
|
318
318
|
{
|
|
@@ -941,7 +941,7 @@ describe("getAccountShape", () => {
|
|
|
941
941
|
const stakingOperations = [] as Operation[];
|
|
942
942
|
|
|
943
943
|
jest.mocked(mergeOps).mockReturnValue(operations);
|
|
944
|
-
jest.mocked(txsToOps).
|
|
944
|
+
jest.mocked(txsToOps).mockResolvedValue([operations, tokenOperations, stakingOperations]);
|
|
945
945
|
|
|
946
946
|
const info = {
|
|
947
947
|
currency: {
|
|
@@ -2207,7 +2207,7 @@ describe("getStake", () => {
|
|
|
2207
2207
|
}));
|
|
2208
2208
|
|
|
2209
2209
|
jest.mocked(mergeOps).mockReturnValue(operations);
|
|
2210
|
-
jest.mocked(txsToOps).
|
|
2210
|
+
jest.mocked(txsToOps).mockResolvedValue([operations, tokenOperations, stakingOperations]);
|
|
2211
2211
|
|
|
2212
2212
|
const info = {
|
|
2213
2213
|
currency: {
|
package/src/bridge/logic.ts
CHANGED
|
@@ -2,13 +2,12 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import { EntryFunctionPayloadResponse } from "@aptos-labs/ts-sdk";
|
|
3
3
|
import type { Account, Operation, OperationType, TokenAccount } from "@ledgerhq/types-live";
|
|
4
4
|
import {
|
|
5
|
-
decodeTokenAccountId,
|
|
6
5
|
encodeTokenAccountId,
|
|
7
6
|
findSubAccountById,
|
|
8
7
|
isTokenAccount,
|
|
9
8
|
} from "@ledgerhq/coin-framework/account/index";
|
|
10
9
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
11
|
-
import {
|
|
10
|
+
import { getCryptoAssetsStore } from "@ledgerhq/coin-framework/crypto-assets/index";
|
|
12
11
|
import { APTOS_ASSET_ID, OP_TYPE, DEFAULT_GAS, DEFAULT_GAS_PRICE } from "../constants";
|
|
13
12
|
import type { AptosTransaction, Transaction } from "../types";
|
|
14
13
|
import { convertFunctionPayloadResponseToInputEntryFunctionData } from "../logic/transactionsToOperations";
|
|
@@ -58,17 +57,17 @@ export const getBlankOperation = (
|
|
|
58
57
|
hasFailed: false,
|
|
59
58
|
});
|
|
60
59
|
|
|
61
|
-
export const txsToOps = (
|
|
60
|
+
export const txsToOps = async (
|
|
62
61
|
info: { address: string },
|
|
63
62
|
id: string,
|
|
64
63
|
txs: (AptosTransaction | null)[],
|
|
65
|
-
): [Operation[], Operation[], Operation[]] => {
|
|
64
|
+
): Promise<[Operation[], Operation[], Operation[]]> => {
|
|
66
65
|
const { address } = info;
|
|
67
66
|
const ops: Operation[] = [];
|
|
68
67
|
const opsTokens: Operation[] = [];
|
|
69
68
|
const opsStaking: Operation[] = [];
|
|
70
69
|
|
|
71
|
-
|
|
70
|
+
for (const tx of txs) {
|
|
72
71
|
if (tx !== null) {
|
|
73
72
|
const op: Operation = getBlankOperation(tx, id);
|
|
74
73
|
op.fee = new BigNumber(tx.gas_used).multipliedBy(new BigNumber(tx.gas_unit_price));
|
|
@@ -80,7 +79,7 @@ export const txsToOps = (
|
|
|
80
79
|
const function_address = getFunctionAddress(payload);
|
|
81
80
|
|
|
82
81
|
if (!function_address) {
|
|
83
|
-
|
|
82
|
+
continue; // skip transaction without functions in payload
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
const { coin_id, amount_in, amount_out, type } = getCoinAndAmounts(tx, address);
|
|
@@ -113,24 +112,31 @@ export const txsToOps = (
|
|
|
113
112
|
if (coin_id === APTOS_ASSET_ID) {
|
|
114
113
|
ops.push(op);
|
|
115
114
|
} else {
|
|
116
|
-
const token =
|
|
115
|
+
const token = await getCryptoAssetsStore().findTokenByAddressInCurrency(
|
|
116
|
+
coin_id.toLowerCase(),
|
|
117
|
+
"aptos",
|
|
118
|
+
);
|
|
117
119
|
if (token !== undefined) {
|
|
118
|
-
|
|
120
|
+
const tokenAccountId = encodeTokenAccountId(id, token);
|
|
121
|
+
op.accountId = tokenAccountId;
|
|
119
122
|
opsTokens.push(op);
|
|
120
123
|
|
|
121
124
|
if (op.type === OP_TYPE.OUT) {
|
|
122
|
-
|
|
125
|
+
const accountId = tokenAccountId.split("+")[0];
|
|
126
|
+
// Create FEES operation with decoded main account ID
|
|
127
|
+
const feesOp = {
|
|
123
128
|
...op,
|
|
124
|
-
accountId
|
|
129
|
+
accountId,
|
|
125
130
|
value: op.fee,
|
|
126
|
-
type: "FEES",
|
|
127
|
-
}
|
|
131
|
+
type: "FEES" as const,
|
|
132
|
+
};
|
|
133
|
+
ops.push(feesOp);
|
|
128
134
|
}
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
137
|
}
|
|
132
138
|
}
|
|
133
|
-
}
|
|
139
|
+
}
|
|
134
140
|
|
|
135
141
|
return [ops, opsTokens, opsStaking];
|
|
136
142
|
};
|
|
@@ -136,19 +136,17 @@ export const getSubAccounts = async (
|
|
|
136
136
|
const { currency } = infos;
|
|
137
137
|
|
|
138
138
|
// Creating a Map of Operations by TokenCurrencies in order to know which TokenAccounts should be synced as well
|
|
139
|
-
const operationsByToken =
|
|
140
|
-
(acc, operation) => {
|
|
141
|
-
const { token } = decodeTokenAccountId(operation.accountId);
|
|
142
|
-
if (!token) return acc; // TODO: do we need to check blacklistedTokenIds
|
|
139
|
+
const operationsByToken = new Map<TokenCurrency, Operation[]>();
|
|
143
140
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
141
|
+
for (const operation of lastTokenOperations) {
|
|
142
|
+
const { token } = await decodeTokenAccountId(operation.accountId);
|
|
143
|
+
if (!token) continue; // TODO: do we need to check blacklistedTokenIds
|
|
144
|
+
|
|
145
|
+
if (!operationsByToken.has(token)) {
|
|
146
|
+
operationsByToken.set(token, []);
|
|
147
|
+
}
|
|
148
|
+
operationsByToken.get(token)?.push(operation);
|
|
149
|
+
}
|
|
152
150
|
|
|
153
151
|
// Fetching all TokenAccounts possible and providing already filtered operations
|
|
154
152
|
const subAccountsPromises: Promise<TokenAccount>[] = [];
|
|
@@ -190,7 +188,7 @@ export const getAccountShape: GetAccountShape<AptosAccount> = async (
|
|
|
190
188
|
Operation[],
|
|
191
189
|
Operation[],
|
|
192
190
|
Operation[],
|
|
193
|
-
] = txsToOps(info, accountId, transactions);
|
|
191
|
+
] = await txsToOps(info, accountId, transactions);
|
|
194
192
|
const operations = mergeOps(oldOperations, newOperations);
|
|
195
193
|
|
|
196
194
|
const newSubAccounts = await getSubAccounts(info, address, accountId, tokenOperations);
|