@ledgerhq/coin-tron 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +20 -0
- package/.turbo/turbo-build.log +4 -0
- package/.unimportedrc.json +25 -0
- package/LICENSE.txt +21 -0
- package/jest.config.js +8 -0
- package/jest.integ.config.js +7 -0
- package/lib/bridge/broadcast.d.ts +7 -0
- package/lib/bridge/broadcast.d.ts.map +1 -0
- package/lib/bridge/broadcast.js +26 -0
- package/lib/bridge/broadcast.js.map +1 -0
- package/lib/bridge/buildOptimisticOperation.d.ts +5 -0
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -0
- package/lib/bridge/buildOptimisticOperation.js +101 -0
- package/lib/bridge/buildOptimisticOperation.js.map +1 -0
- package/lib/bridge/createTransaction.d.ts +4 -0
- package/lib/bridge/createTransaction.d.ts.map +1 -0
- package/lib/bridge/createTransaction.js +19 -0
- package/lib/bridge/createTransaction.js.map +1 -0
- package/lib/bridge/deviceTransactionConfig.d.ts +20 -0
- package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -0
- package/lib/bridge/deviceTransactionConfig.js +65 -0
- package/lib/bridge/deviceTransactionConfig.js.map +1 -0
- package/lib/bridge/estimateMaxSpendable.d.ts +5 -0
- package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
- package/lib/bridge/estimateMaxSpendable.js +30 -0
- package/lib/bridge/estimateMaxSpendable.js.map +1 -0
- package/lib/bridge/getEstimateFees.d.ts +6 -0
- package/lib/bridge/getEstimateFees.d.ts.map +1 -0
- package/lib/bridge/getEstimateFees.js +52 -0
- package/lib/bridge/getEstimateFees.js.map +1 -0
- package/lib/bridge/getTransactionStatus.d.ts +4 -0
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
- package/lib/bridge/getTransactionStatus.js +218 -0
- package/lib/bridge/getTransactionStatus.js.map +1 -0
- package/lib/bridge/index.d.ts +10 -0
- package/lib/bridge/index.d.ts.map +1 -0
- package/lib/bridge/index.js +60 -0
- package/lib/bridge/index.js.map +1 -0
- package/lib/bridge/preload.d.ts +8 -0
- package/lib/bridge/preload.d.ts.map +1 -0
- package/lib/bridge/preload.js +32 -0
- package/lib/bridge/preload.js.map +1 -0
- package/lib/bridge/prepareTransaction.d.ts +4 -0
- package/lib/bridge/prepareTransaction.d.ts.map +1 -0
- package/lib/bridge/prepareTransaction.js +19 -0
- package/lib/bridge/prepareTransaction.js.map +1 -0
- package/lib/bridge/serialization.d.ts +9 -0
- package/lib/bridge/serialization.d.ts.map +1 -0
- package/lib/bridge/serialization.js +238 -0
- package/lib/bridge/serialization.js.map +1 -0
- package/lib/bridge/signOperation.d.ts +5 -0
- package/lib/bridge/signOperation.d.ts.map +1 -0
- package/lib/bridge/signOperation.js +92 -0
- package/lib/bridge/signOperation.js.map +1 -0
- package/lib/bridge/synchronization.d.ts +5 -0
- package/lib/bridge/synchronization.d.ts.map +1 -0
- package/lib/bridge/synchronization.integ.test.d.ts +3 -0
- package/lib/bridge/synchronization.integ.test.d.ts.map +1 -0
- package/lib/bridge/synchronization.integ.test.js +96 -0
- package/lib/bridge/synchronization.integ.test.js.map +1 -0
- package/lib/bridge/synchronization.js +216 -0
- package/lib/bridge/synchronization.js.map +1 -0
- package/lib/bridge/transaction.d.ts +15 -0
- package/lib/bridge/transaction.d.ts.map +1 -0
- package/lib/bridge/transaction.js +61 -0
- package/lib/bridge/transaction.js.map +1 -0
- package/lib/config.d.ts +10 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +17 -0
- package/lib/config.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +21 -0
- package/lib/index.js.map +1 -0
- package/lib/logic/constants.d.ts +4 -0
- package/lib/logic/constants.d.ts.map +1 -0
- package/lib/logic/constants.js +7 -0
- package/lib/logic/constants.js.map +1 -0
- package/lib/logic/pagination.d.ts +3 -0
- package/lib/logic/pagination.d.ts.map +1 -0
- package/lib/logic/pagination.js +19 -0
- package/lib/logic/pagination.js.map +1 -0
- package/lib/logic/utils.d.ts +12 -0
- package/lib/logic/utils.d.ts.map +1 -0
- package/lib/logic/utils.js +177 -0
- package/lib/logic/utils.js.map +1 -0
- package/lib/network/format.d.ts +9 -0
- package/lib/network/format.d.ts.map +1 -0
- package/lib/network/format.js +127 -0
- package/lib/network/format.js.map +1 -0
- package/lib/network/index.d.ts +30 -0
- package/lib/network/index.d.ts.map +1 -0
- package/lib/network/index.integ.test.d.ts +2 -0
- package/lib/network/index.integ.test.d.ts.map +1 -0
- package/lib/network/index.integ.test.js +38 -0
- package/lib/network/index.integ.test.js.map +1 -0
- package/lib/network/index.js +555 -0
- package/lib/network/index.js.map +1 -0
- package/lib/network/index.test.d.ts +2 -0
- package/lib/network/index.test.d.ts.map +1 -0
- package/lib/network/index.test.js +66 -0
- package/lib/network/index.test.js.map +1 -0
- package/lib/network/superRepresentativesData.mock.d.ts +69 -0
- package/lib/network/superRepresentativesData.mock.d.ts.map +1 -0
- package/lib/network/superRepresentativesData.mock.js +2208 -0
- package/lib/network/superRepresentativesData.mock.js.map +1 -0
- package/lib/network/types.d.ts +122 -0
- package/lib/network/types.d.ts.map +1 -0
- package/lib/network/types.fixture.d.ts +498 -0
- package/lib/network/types.fixture.d.ts.map +1 -0
- package/lib/network/types.fixture.js +4375 -0
- package/lib/network/types.fixture.js.map +1 -0
- package/lib/network/types.js +13 -0
- package/lib/network/types.js.map +1 -0
- package/lib/signer/getAddress.d.ts +6 -0
- package/lib/signer/getAddress.d.ts.map +1 -0
- package/lib/signer/getAddress.js +19 -0
- package/lib/signer/getAddress.js.map +1 -0
- package/lib/signer/index.d.ts +6 -0
- package/lib/signer/index.d.ts.map +1 -0
- package/lib/signer/index.js +11 -0
- package/lib/signer/index.js.map +1 -0
- package/lib/test/bot-deviceActions.d.ts +4 -0
- package/lib/test/bot-deviceActions.d.ts.map +1 -0
- package/lib/test/bot-deviceActions.js +103 -0
- package/lib/test/bot-deviceActions.js.map +1 -0
- package/lib/test/bot-specs.d.ts +7 -0
- package/lib/test/bot-specs.d.ts.map +1 -0
- package/lib/test/bot-specs.js +433 -0
- package/lib/test/bot-specs.js.map +1 -0
- package/lib/test/bridgeDatasetTest.d.ts +4 -0
- package/lib/test/bridgeDatasetTest.d.ts.map +1 -0
- package/lib/test/bridgeDatasetTest.js +1284 -0
- package/lib/test/bridgeDatasetTest.js.map +1 -0
- package/lib/test/cli.d.ts +52 -0
- package/lib/test/cli.d.ts.map +1 -0
- package/lib/test/cli.js +155 -0
- package/lib/test/cli.js.map +1 -0
- package/lib/test/index.d.ts +6 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +26 -0
- package/lib/test/index.js.map +1 -0
- package/lib/types/bridge.d.ts +245 -0
- package/lib/types/bridge.d.ts.map +1 -0
- package/lib/types/bridge.js +16 -0
- package/lib/types/bridge.js.map +1 -0
- package/lib/types/errors.d.ts +49 -0
- package/lib/types/errors.d.ts.map +1 -0
- package/lib/types/errors.js +21 -0
- package/lib/types/errors.js.map +1 -0
- package/lib/types/index.d.ts +4 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +21 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/signer.d.ts +10 -0
- package/lib/types/signer.d.ts.map +1 -0
- package/lib/types/signer.js +3 -0
- package/lib/types/signer.js.map +1 -0
- package/lib-es/bridge/broadcast.d.ts +7 -0
- package/lib-es/bridge/broadcast.d.ts.map +1 -0
- package/lib-es/bridge/broadcast.js +24 -0
- package/lib-es/bridge/broadcast.js.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.d.ts +5 -0
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.js +94 -0
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -0
- package/lib-es/bridge/createTransaction.d.ts +4 -0
- package/lib-es/bridge/createTransaction.d.ts.map +1 -0
- package/lib-es/bridge/createTransaction.js +14 -0
- package/lib-es/bridge/createTransaction.js.map +1 -0
- package/lib-es/bridge/deviceTransactionConfig.d.ts +20 -0
- package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -0
- package/lib-es/bridge/deviceTransactionConfig.js +63 -0
- package/lib-es/bridge/deviceTransactionConfig.js.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.d.ts +5 -0
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.js +25 -0
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
- package/lib-es/bridge/getEstimateFees.d.ts +6 -0
- package/lib-es/bridge/getEstimateFees.d.ts.map +1 -0
- package/lib-es/bridge/getEstimateFees.js +47 -0
- package/lib-es/bridge/getEstimateFees.js.map +1 -0
- package/lib-es/bridge/getTransactionStatus.d.ts +4 -0
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
- package/lib-es/bridge/getTransactionStatus.js +213 -0
- package/lib-es/bridge/getTransactionStatus.js.map +1 -0
- package/lib-es/bridge/index.d.ts +10 -0
- package/lib-es/bridge/index.d.ts.map +1 -0
- package/lib-es/bridge/index.js +53 -0
- package/lib-es/bridge/index.js.map +1 -0
- package/lib-es/bridge/preload.d.ts +8 -0
- package/lib-es/bridge/preload.d.ts.map +1 -0
- package/lib-es/bridge/preload.js +27 -0
- package/lib-es/bridge/preload.js.map +1 -0
- package/lib-es/bridge/prepareTransaction.d.ts +4 -0
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
- package/lib-es/bridge/prepareTransaction.js +15 -0
- package/lib-es/bridge/prepareTransaction.js.map +1 -0
- package/lib-es/bridge/serialization.d.ts +9 -0
- package/lib-es/bridge/serialization.d.ts.map +1 -0
- package/lib-es/bridge/serialization.js +229 -0
- package/lib-es/bridge/serialization.js.map +1 -0
- package/lib-es/bridge/signOperation.d.ts +5 -0
- package/lib-es/bridge/signOperation.d.ts.map +1 -0
- package/lib-es/bridge/signOperation.js +85 -0
- package/lib-es/bridge/signOperation.js.map +1 -0
- package/lib-es/bridge/synchronization.d.ts +5 -0
- package/lib-es/bridge/synchronization.d.ts.map +1 -0
- package/lib-es/bridge/synchronization.integ.test.d.ts +3 -0
- package/lib-es/bridge/synchronization.integ.test.d.ts.map +1 -0
- package/lib-es/bridge/synchronization.integ.test.js +89 -0
- package/lib-es/bridge/synchronization.integ.test.js.map +1 -0
- package/lib-es/bridge/synchronization.js +209 -0
- package/lib-es/bridge/synchronization.js.map +1 -0
- package/lib-es/bridge/transaction.d.ts +15 -0
- package/lib-es/bridge/transaction.d.ts.map +1 -0
- package/lib-es/bridge/transaction.js +55 -0
- package/lib-es/bridge/transaction.js.map +1 -0
- package/lib-es/config.d.ts +10 -0
- package/lib-es/config.d.ts.map +1 -0
- package/lib-es/config.js +12 -0
- package/lib-es/config.js.map +1 -0
- package/lib-es/index.d.ts +3 -0
- package/lib-es/index.d.ts.map +1 -0
- package/lib-es/index.js +3 -0
- package/lib-es/index.js.map +1 -0
- package/lib-es/logic/constants.d.ts +4 -0
- package/lib-es/logic/constants.d.ts.map +1 -0
- package/lib-es/logic/constants.js +4 -0
- package/lib-es/logic/constants.js.map +1 -0
- package/lib-es/logic/pagination.d.ts +3 -0
- package/lib-es/logic/pagination.d.ts.map +1 -0
- package/lib-es/logic/pagination.js +15 -0
- package/lib-es/logic/pagination.js.map +1 -0
- package/lib-es/logic/utils.d.ts +12 -0
- package/lib-es/logic/utils.d.ts.map +1 -0
- package/lib-es/logic/utils.js +167 -0
- package/lib-es/logic/utils.js.map +1 -0
- package/lib-es/network/format.d.ts +9 -0
- package/lib-es/network/format.d.ts.map +1 -0
- package/lib-es/network/format.js +117 -0
- package/lib-es/network/format.js.map +1 -0
- package/lib-es/network/index.d.ts +30 -0
- package/lib-es/network/index.d.ts.map +1 -0
- package/lib-es/network/index.integ.test.d.ts +2 -0
- package/lib-es/network/index.integ.test.d.ts.map +1 -0
- package/lib-es/network/index.integ.test.js +36 -0
- package/lib-es/network/index.integ.test.js.map +1 -0
- package/lib-es/network/index.js +524 -0
- package/lib-es/network/index.js.map +1 -0
- package/lib-es/network/index.test.d.ts +2 -0
- package/lib-es/network/index.test.d.ts.map +1 -0
- package/lib-es/network/index.test.js +63 -0
- package/lib-es/network/index.test.js.map +1 -0
- package/lib-es/network/superRepresentativesData.mock.d.ts +69 -0
- package/lib-es/network/superRepresentativesData.mock.d.ts.map +1 -0
- package/lib-es/network/superRepresentativesData.mock.js +2206 -0
- package/lib-es/network/superRepresentativesData.mock.js.map +1 -0
- package/lib-es/network/types.d.ts +122 -0
- package/lib-es/network/types.d.ts.map +1 -0
- package/lib-es/network/types.fixture.d.ts +498 -0
- package/lib-es/network/types.fixture.d.ts.map +1 -0
- package/lib-es/network/types.fixture.js +4371 -0
- package/lib-es/network/types.fixture.js.map +1 -0
- package/lib-es/network/types.js +8 -0
- package/lib-es/network/types.js.map +1 -0
- package/lib-es/signer/getAddress.d.ts +6 -0
- package/lib-es/signer/getAddress.d.ts.map +1 -0
- package/lib-es/signer/getAddress.js +17 -0
- package/lib-es/signer/getAddress.js.map +1 -0
- package/lib-es/signer/index.d.ts +6 -0
- package/lib-es/signer/index.d.ts.map +1 -0
- package/lib-es/signer/index.js +6 -0
- package/lib-es/signer/index.js.map +1 -0
- package/lib-es/test/bot-deviceActions.d.ts +4 -0
- package/lib-es/test/bot-deviceActions.d.ts.map +1 -0
- package/lib-es/test/bot-deviceActions.js +100 -0
- package/lib-es/test/bot-deviceActions.js.map +1 -0
- package/lib-es/test/bot-specs.d.ts +7 -0
- package/lib-es/test/bot-specs.d.ts.map +1 -0
- package/lib-es/test/bot-specs.js +428 -0
- package/lib-es/test/bot-specs.js.map +1 -0
- package/lib-es/test/bridgeDatasetTest.d.ts +4 -0
- package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -0
- package/lib-es/test/bridgeDatasetTest.js +1278 -0
- package/lib-es/test/bridgeDatasetTest.js.map +1 -0
- package/lib-es/test/cli.d.ts +52 -0
- package/lib-es/test/cli.d.ts.map +1 -0
- package/lib-es/test/cli.js +149 -0
- package/lib-es/test/cli.js.map +1 -0
- package/lib-es/test/index.d.ts +6 -0
- package/lib-es/test/index.d.ts.map +1 -0
- package/lib-es/test/index.js +6 -0
- package/lib-es/test/index.js.map +1 -0
- package/lib-es/types/bridge.d.ts +245 -0
- package/lib-es/types/bridge.d.ts.map +1 -0
- package/lib-es/types/bridge.js +11 -0
- package/lib-es/types/bridge.js.map +1 -0
- package/lib-es/types/errors.d.ts +49 -0
- package/lib-es/types/errors.d.ts.map +1 -0
- package/lib-es/types/errors.js +18 -0
- package/lib-es/types/errors.js.map +1 -0
- package/lib-es/types/index.d.ts +4 -0
- package/lib-es/types/index.d.ts.map +1 -0
- package/lib-es/types/index.js +5 -0
- package/lib-es/types/index.js.map +1 -0
- package/lib-es/types/signer.d.ts +10 -0
- package/lib-es/types/signer.d.ts.map +1 -0
- package/lib-es/types/signer.js +2 -0
- package/lib-es/types/signer.js.map +1 -0
- package/package.json +133 -0
- package/src/bridge/broadcast.ts +24 -0
- package/src/bridge/buildOptimisticOperation.ts +133 -0
- package/src/bridge/createTransaction.ts +16 -0
- package/src/bridge/deviceTransactionConfig.ts +99 -0
- package/src/bridge/estimateMaxSpendable.ts +32 -0
- package/src/bridge/getEstimateFees.ts +52 -0
- package/src/bridge/getTransactionStatus.ts +263 -0
- package/src/bridge/index.ts +78 -0
- package/src/bridge/preload.ts +24 -0
- package/src/bridge/prepareTransaction.ts +12 -0
- package/src/bridge/serialization.ts +288 -0
- package/src/bridge/signOperation.ts +123 -0
- package/src/bridge/synchronization.integ.test.ts +105 -0
- package/src/bridge/synchronization.ts +284 -0
- package/src/bridge/transaction.ts +84 -0
- package/src/config.ts +24 -0
- package/src/index.ts +3 -0
- package/src/logic/constants.ts +4 -0
- package/src/logic/pagination.ts +21 -0
- package/src/logic/utils.ts +231 -0
- package/src/network/format.ts +148 -0
- package/src/network/index.integ.test.ts +33 -0
- package/src/network/index.test.ts +61 -0
- package/src/network/index.ts +747 -0
- package/src/network/superRepresentativesData.mock.ts +2205 -0
- package/src/network/types.fixture.ts +4476 -0
- package/src/network/types.ts +147 -0
- package/src/signer/getAddress.ts +13 -0
- package/src/signer/index.ts +7 -0
- package/src/test/bot-deviceActions.ts +121 -0
- package/src/test/bot-specs.ts +457 -0
- package/src/test/bridgeDatasetTest.ts +1343 -0
- package/src/test/cli.ts +219 -0
- package/src/test/index.ts +6 -0
- package/src/types/bridge.ts +304 -0
- package/src/types/errors.ts +22 -0
- package/src/types/index.ts +4 -0
- package/src/types/signer.ts +9 -0
- package/tsconfig.json +14 -0
- package/types/tronweb/index.d.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/bridge/serialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
2
|
+
import { SignOperationFnSignature } from "@ledgerhq/types-live";
|
|
3
|
+
import { Transaction, TronAccount, TronSigner } from "../types";
|
|
4
|
+
export declare const buildSignOperation: (signerContext: SignerContext<TronSigner>) => SignOperationFnSignature<Transaction, TronAccount>;
|
|
5
|
+
//# sourceMappingURL=signOperation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAsB,wBAAwB,EAAgB,MAAM,sBAAsB,CAAC;AAclG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIhE,eAAO,MAAM,kBAAkB,kBACb,cAAc,UAAU,CAAC,KAAG,yBAAyB,WAAW,EAAE,WAAW,CAsEzF,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.buildSignOperation = void 0;
|
|
16
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
17
|
+
const rxjs_1 = require("rxjs");
|
|
18
|
+
const network_1 = require("../network");
|
|
19
|
+
const buildOptimisticOperation_1 = require("./buildOptimisticOperation");
|
|
20
|
+
const getEstimateFees_1 = __importDefault(require("./getEstimateFees"));
|
|
21
|
+
const buildSignOperation = (signerContext) => ({ account, transaction, deviceId }) => new rxjs_1.Observable(o => {
|
|
22
|
+
function main() {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const subAccount = transaction.subAccountId && account.subAccounts
|
|
25
|
+
? account.subAccounts.find(sa => sa.id === transaction.subAccountId)
|
|
26
|
+
: undefined;
|
|
27
|
+
const isContractAddressRecipient = (yield (0, network_1.fetchTronContract)(transaction.recipient)) !== undefined;
|
|
28
|
+
const fee = yield (0, getEstimateFees_1.default)(account, transaction, isContractAddressRecipient);
|
|
29
|
+
const balance = subAccount
|
|
30
|
+
? subAccount.balance
|
|
31
|
+
: bignumber_js_1.default.max(0, account.spendableBalance.minus(fee));
|
|
32
|
+
if (transaction.useAllAmount) {
|
|
33
|
+
transaction = Object.assign({}, transaction); // transaction object must not be mutated
|
|
34
|
+
transaction.amount = balance; // force the amount to be the max
|
|
35
|
+
}
|
|
36
|
+
const { raw_data_hex: rawDataHex, raw_data: rawData, txID: hash, } = yield prepareTransactionForSignature(account, subAccount, transaction);
|
|
37
|
+
o.next({
|
|
38
|
+
type: "device-signature-requested",
|
|
39
|
+
});
|
|
40
|
+
const txArg = {
|
|
41
|
+
rawDataHex,
|
|
42
|
+
// only for trc10, we need to put the token ledger signature
|
|
43
|
+
tokenSignature: subAccount &&
|
|
44
|
+
subAccount.type === "TokenAccount" &&
|
|
45
|
+
subAccount.token.id.includes("trc10")
|
|
46
|
+
? subAccount.token.ledgerSignature
|
|
47
|
+
: undefined,
|
|
48
|
+
};
|
|
49
|
+
// Sign by device
|
|
50
|
+
const signature = yield signerContext(deviceId, signer => {
|
|
51
|
+
var _a;
|
|
52
|
+
return signer.sign(account.freshAddressPath, (_a = txArg.rawDataHex) !== null && _a !== void 0 ? _a : "", //FIXME: why rawDataHex could be undefined? This shouldn't be the case.
|
|
53
|
+
txArg.tokenSignature ? [txArg.tokenSignature] : []);
|
|
54
|
+
});
|
|
55
|
+
o.next({
|
|
56
|
+
type: "device-signature-granted",
|
|
57
|
+
});
|
|
58
|
+
const operation = (0, buildOptimisticOperation_1.buildOptimisticOperation)(account, subAccount, transaction, fee, hash);
|
|
59
|
+
o.next({
|
|
60
|
+
type: "signed",
|
|
61
|
+
signedOperation: {
|
|
62
|
+
operation,
|
|
63
|
+
signature,
|
|
64
|
+
rawData,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
main().then(() => o.complete(), e => o.error(e));
|
|
70
|
+
});
|
|
71
|
+
exports.buildSignOperation = buildSignOperation;
|
|
72
|
+
const prepareTransactionForSignature = (account, subAccount, transaction) => {
|
|
73
|
+
switch (transaction.mode) {
|
|
74
|
+
case "freeze":
|
|
75
|
+
return (0, network_1.freezeTronTransaction)(account, transaction);
|
|
76
|
+
case "unfreeze":
|
|
77
|
+
return (0, network_1.unfreezeTronTransaction)(account, transaction);
|
|
78
|
+
case "vote":
|
|
79
|
+
return (0, network_1.voteTronSuperRepresentatives)(account, transaction);
|
|
80
|
+
case "claimReward":
|
|
81
|
+
return (0, network_1.claimRewardTronTransaction)(account);
|
|
82
|
+
case "withdrawExpireUnfreeze":
|
|
83
|
+
return (0, network_1.withdrawExpireUnfreezeTronTransaction)(account, transaction);
|
|
84
|
+
case "unDelegateResource":
|
|
85
|
+
return (0, network_1.unDelegateResourceTransaction)(account, transaction);
|
|
86
|
+
case "legacyUnfreeze":
|
|
87
|
+
return (0, network_1.legacyUnfreezeTronTransaction)(account, transaction);
|
|
88
|
+
default:
|
|
89
|
+
return (0, network_1.createTronTransaction)(account, transaction, subAccount);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=signOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GetAccountShape } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
2
|
+
import { TronAccount } from "../types";
|
|
3
|
+
export declare const getAccountShape: GetAccountShape<TronAccount>;
|
|
4
|
+
export declare const sync: (initialAccount: TronAccount, syncConfig: import("@ledgerhq/types-live").SyncConfig) => import("rxjs").Observable<(arg0: TronAccount) => TronAccount>;
|
|
5
|
+
//# sourceMappingURL=synchronization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synchronization.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAetF,OAAO,EAAE,WAAW,EAAsC,MAAM,UAAU,CAAC;AAY3E,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,CAmMxD,CAAC;AAqDF,eAAO,MAAM,IAAI,uJAGf,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Account, AccountBridge, SyncConfig, TransactionCommon } from "@ledgerhq/types-live";
|
|
2
|
+
export declare function syncAccount<T extends TransactionCommon, A extends Account = Account>(bridge: AccountBridge<T, A>, account: A, syncConfig?: SyncConfig): Promise<A>;
|
|
3
|
+
//# sourceMappingURL=synchronization.integ.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synchronization.integ.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronization.integ.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAa7F,wBAAgB,WAAW,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAClF,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,EAAE,CAAC,EACV,UAAU,GAAE,UAA8B,GACzC,OAAO,CAAC,CAAC,CAAC,CAIZ"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.syncAccount = void 0;
|
|
16
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
17
|
+
const rxjs_1 = require("rxjs");
|
|
18
|
+
const index_1 = require("@ledgerhq/cryptoassets/index");
|
|
19
|
+
const utils_1 = require("../logic/utils");
|
|
20
|
+
const index_2 = require("./index");
|
|
21
|
+
jest.setTimeout(30000);
|
|
22
|
+
const tron = (0, index_1.getCryptoCurrencyById)("tron");
|
|
23
|
+
const defaultSyncConfig = {
|
|
24
|
+
paginationConfig: {},
|
|
25
|
+
blacklistedTokenIds: [],
|
|
26
|
+
};
|
|
27
|
+
function syncAccount(bridge, account, syncConfig = defaultSyncConfig) {
|
|
28
|
+
return (0, rxjs_1.firstValueFrom)(bridge.sync(account, syncConfig).pipe((0, rxjs_1.reduce)((a, f) => f(a), account)));
|
|
29
|
+
}
|
|
30
|
+
exports.syncAccount = syncAccount;
|
|
31
|
+
const dummyAccount = {
|
|
32
|
+
type: "Account",
|
|
33
|
+
id: "",
|
|
34
|
+
derivationMode: "",
|
|
35
|
+
seedIdentifier: "",
|
|
36
|
+
used: false,
|
|
37
|
+
currency: tron,
|
|
38
|
+
index: 0,
|
|
39
|
+
freshAddress: "",
|
|
40
|
+
freshAddressPath: "",
|
|
41
|
+
swapHistory: [],
|
|
42
|
+
blockHeight: 0,
|
|
43
|
+
balance: new bignumber_js_1.default(0),
|
|
44
|
+
spendableBalance: new bignumber_js_1.default(0),
|
|
45
|
+
operationsCount: 0,
|
|
46
|
+
operations: [],
|
|
47
|
+
pendingOperations: [],
|
|
48
|
+
lastSyncDate: new Date(0),
|
|
49
|
+
creationDate: new Date(),
|
|
50
|
+
balanceHistoryCache: {
|
|
51
|
+
HOUR: {
|
|
52
|
+
balances: [],
|
|
53
|
+
latestDate: undefined,
|
|
54
|
+
},
|
|
55
|
+
DAY: {
|
|
56
|
+
balances: [],
|
|
57
|
+
latestDate: undefined,
|
|
58
|
+
},
|
|
59
|
+
WEEK: {
|
|
60
|
+
balances: [],
|
|
61
|
+
latestDate: undefined,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
tronResources: {},
|
|
65
|
+
};
|
|
66
|
+
describe("Tron Accounts", () => {
|
|
67
|
+
let bridge;
|
|
68
|
+
beforeAll(() => {
|
|
69
|
+
const signer = jest.fn();
|
|
70
|
+
const coinConfig = () => ({
|
|
71
|
+
status: {
|
|
72
|
+
type: "active",
|
|
73
|
+
},
|
|
74
|
+
explorer: {
|
|
75
|
+
url: "https://tron.coin.ledger.com",
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
bridge = (0, index_2.createBridges)(signer, coinConfig);
|
|
79
|
+
});
|
|
80
|
+
test("should always have tronResources", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
81
|
+
const account = yield syncAccount(bridge.accountBridge, dummyAccount, defaultSyncConfig);
|
|
82
|
+
expect(account.tronResources).toEqual(utils_1.defaultTronResources);
|
|
83
|
+
}));
|
|
84
|
+
test.each([
|
|
85
|
+
"TL24LCps5FKwp3PoU1MvrYrwhi5LU1tHre",
|
|
86
|
+
"TAVrrARNdnjHgCGMQYeQV7hv4PSu7mVsMj",
|
|
87
|
+
"THAe4BNVxp293qgyQEqXEkHMpPcqtG73bi",
|
|
88
|
+
"TRqkRnAj6ceJFYAn2p1eE7aWrgBBwtdhS9",
|
|
89
|
+
"TUxd6v64YTWkfpFpNDdtgc5Ps4SfGxwizT",
|
|
90
|
+
"TY2ksFgpvb82TgGPwUSa7iseqPW5weYQyh",
|
|
91
|
+
])("should always be sync wihtout error for address %s", (accountId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
+
const account = yield syncAccount(bridge.accountBridge, Object.assign(Object.assign({}, dummyAccount), { id: `js:2:tron:${accountId}:`, freshAddress: accountId }), defaultSyncConfig);
|
|
93
|
+
expect(account.id).toEqual(`js:2:tron:${accountId}:`);
|
|
94
|
+
}));
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=synchronization.integ.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synchronization.integ.test.js","sourceRoot":"","sources":["../../src/bridge/synchronization.integ.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.sync = exports.getAccountShape = void 0;
|
|
16
|
+
const account_1 = require("@ledgerhq/coin-framework/account");
|
|
17
|
+
const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
|
|
18
|
+
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
19
|
+
const index_1 = require("@ledgerhq/cryptoassets/index");
|
|
20
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
21
|
+
const compact_1 = __importDefault(require("lodash/compact"));
|
|
22
|
+
const get_1 = __importDefault(require("lodash/get"));
|
|
23
|
+
const pagination_1 = require("../logic/pagination");
|
|
24
|
+
const utils_1 = require("../logic/utils");
|
|
25
|
+
const network_1 = require("../network");
|
|
26
|
+
// the balance does not update straightaway so we should ignore recent operations if they are in pending for a bit
|
|
27
|
+
const PREFER_PENDING_OPERATIONS_UNTIL_BLOCK_VALIDATION = 35;
|
|
28
|
+
const getAccountShape = (_a, syncConfig_1) => __awaiter(void 0, [_a, syncConfig_1], void 0, function* ({ initialAccount, currency, address, derivationMode }, syncConfig) {
|
|
29
|
+
var _b;
|
|
30
|
+
const blockHeight = yield (0, network_1.fetchCurrentBlockHeight)();
|
|
31
|
+
const tronAcc = yield (0, network_1.fetchTronAccount)(address);
|
|
32
|
+
const accountId = (0, account_1.encodeAccountId)({
|
|
33
|
+
type: "js",
|
|
34
|
+
version: "2",
|
|
35
|
+
currencyId: currency.id,
|
|
36
|
+
xpubOrAddress: address,
|
|
37
|
+
derivationMode: derivationMode,
|
|
38
|
+
});
|
|
39
|
+
if (tronAcc.length === 0) {
|
|
40
|
+
const defaultTronResources = yield (0, network_1.getTronResources)();
|
|
41
|
+
return {
|
|
42
|
+
id: accountId,
|
|
43
|
+
blockHeight,
|
|
44
|
+
balance: new bignumber_js_1.default(0),
|
|
45
|
+
tronResources: defaultTronResources,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const acc = tronAcc[0];
|
|
49
|
+
const spendableBalance = acc.balance ? new bignumber_js_1.default(acc.balance) : new bignumber_js_1.default(0);
|
|
50
|
+
const cacheTransactionInfoById = initialAccount
|
|
51
|
+
? Object.assign({}, (((_b = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.tronResources) === null || _b === void 0 ? void 0 : _b.cacheTransactionInfoById) || {})) : {};
|
|
52
|
+
const operationsPageSize = Math.min(1000, (0, pagination_1.getOperationsPageSize)(initialAccount && initialAccount.id, syncConfig));
|
|
53
|
+
// FIXME: this is not optional especially that we might already have initialAccount
|
|
54
|
+
// use minimalOperationsBuilderSync to reconciliate and KEEP REF
|
|
55
|
+
const txs = yield (0, network_1.fetchTronAccountTxs)(address, txs => txs.length < operationsPageSize, cacheTransactionInfoById);
|
|
56
|
+
const tronResources = yield (0, network_1.getTronResources)(acc, txs, cacheTransactionInfoById);
|
|
57
|
+
const balance = spendableBalance
|
|
58
|
+
.plus(tronResources.frozen.bandwidth ? tronResources.frozen.bandwidth.amount : new bignumber_js_1.default(0))
|
|
59
|
+
.plus(tronResources.frozen.energy ? tronResources.frozen.energy.amount : new bignumber_js_1.default(0))
|
|
60
|
+
.plus(tronResources.delegatedFrozen.bandwidth
|
|
61
|
+
? tronResources.delegatedFrozen.bandwidth.amount
|
|
62
|
+
: new bignumber_js_1.default(0))
|
|
63
|
+
.plus(tronResources.delegatedFrozen.energy
|
|
64
|
+
? tronResources.delegatedFrozen.energy.amount
|
|
65
|
+
: new bignumber_js_1.default(0))
|
|
66
|
+
.plus(tronResources.unFrozen.energy
|
|
67
|
+
? tronResources.unFrozen.energy.reduce((accum, cur) => {
|
|
68
|
+
return accum.plus(cur.amount);
|
|
69
|
+
}, new bignumber_js_1.default(0))
|
|
70
|
+
: new bignumber_js_1.default(0))
|
|
71
|
+
.plus(tronResources.unFrozen.bandwidth
|
|
72
|
+
? tronResources.unFrozen.bandwidth.reduce((accum, cur) => {
|
|
73
|
+
return accum.plus(cur.amount);
|
|
74
|
+
}, new bignumber_js_1.default(0))
|
|
75
|
+
: new bignumber_js_1.default(0))
|
|
76
|
+
.plus(tronResources.legacyFrozen.bandwidth
|
|
77
|
+
? tronResources.legacyFrozen.bandwidth.amount
|
|
78
|
+
: new bignumber_js_1.default(0))
|
|
79
|
+
.plus(tronResources.legacyFrozen.energy
|
|
80
|
+
? tronResources.legacyFrozen.energy.amount
|
|
81
|
+
: new bignumber_js_1.default(0));
|
|
82
|
+
const parentTxs = txs.filter(utils_1.isParentTx);
|
|
83
|
+
const parentOperations = (0, compact_1.default)(parentTxs.map(tx => (0, utils_1.txInfoToOperation)(accountId, address, tx)));
|
|
84
|
+
const trc10Tokens = (0, get_1.default)(acc, "assetV2", []).reduce((accumulator, { key, value }) => {
|
|
85
|
+
const tokenInfo = (0, index_1.findTokenById)(`tron/trc10/${key}`);
|
|
86
|
+
if (tokenInfo) {
|
|
87
|
+
accumulator.push({
|
|
88
|
+
key,
|
|
89
|
+
type: "trc10",
|
|
90
|
+
tokenId: tokenInfo.id,
|
|
91
|
+
balance: value,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return accumulator;
|
|
95
|
+
}, []);
|
|
96
|
+
const trc20Tokens = (0, get_1.default)(acc, "trc20", []).reduce((accumulator, trc20) => {
|
|
97
|
+
const [[contractAddress, balance]] = Object.entries(trc20);
|
|
98
|
+
const tokenInfo = (0, index_1.findTokenByAddressInCurrency)(contractAddress, currency.id);
|
|
99
|
+
if (tokenInfo) {
|
|
100
|
+
accumulator.push({
|
|
101
|
+
key: contractAddress,
|
|
102
|
+
type: "trc20",
|
|
103
|
+
tokenId: tokenInfo.id,
|
|
104
|
+
balance,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return accumulator;
|
|
108
|
+
}, []);
|
|
109
|
+
const { blacklistedTokenIds = [] } = syncConfig;
|
|
110
|
+
const subAccounts = (0, compact_1.default)(trc10Tokens.concat(trc20Tokens).map(({ key, tokenId, balance }) => {
|
|
111
|
+
var _a;
|
|
112
|
+
const { blacklistedTokenIds = [] } = syncConfig;
|
|
113
|
+
const token = (0, index_1.findTokenById)(tokenId);
|
|
114
|
+
if (!token || blacklistedTokenIds.includes(tokenId))
|
|
115
|
+
return;
|
|
116
|
+
const id = (0, account_1.encodeTokenAccountId)(accountId, token);
|
|
117
|
+
const tokenTxs = txs.filter(tx => tx.tokenId === key);
|
|
118
|
+
const operations = (0, compact_1.default)(tokenTxs.map(tx => (0, utils_1.txInfoToOperation)(id, address, tx)));
|
|
119
|
+
const maybeExistingSubAccount = (_a = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.subAccounts) === null || _a === void 0 ? void 0 : _a.find(a => a.id === id);
|
|
120
|
+
const bnBalance = new bignumber_js_1.default(balance);
|
|
121
|
+
const sub = {
|
|
122
|
+
type: "TokenAccount",
|
|
123
|
+
id,
|
|
124
|
+
parentId: accountId,
|
|
125
|
+
token,
|
|
126
|
+
balance: bnBalance,
|
|
127
|
+
spendableBalance: bnBalance,
|
|
128
|
+
operationsCount: operations.length,
|
|
129
|
+
operations,
|
|
130
|
+
pendingOperations: maybeExistingSubAccount ? maybeExistingSubAccount.pendingOperations : [],
|
|
131
|
+
creationDate: operations.length > 0 ? operations[operations.length - 1].date : new Date(),
|
|
132
|
+
swapHistory: maybeExistingSubAccount ? maybeExistingSubAccount.swapHistory : [],
|
|
133
|
+
balanceHistoryCache: account_1.emptyHistoryCache, // calculated in the jsHelpers
|
|
134
|
+
};
|
|
135
|
+
return sub;
|
|
136
|
+
}));
|
|
137
|
+
// Filter blacklisted tokens from the initial account's subAccounts
|
|
138
|
+
// Could be use to filter out tokens that got their CAL id changed
|
|
139
|
+
const filteredInitialSubAccounts = ((initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.subAccounts) || []).filter(subAccount => !blacklistedTokenIds.includes(subAccount.token.id));
|
|
140
|
+
// keep old account with emptyBalance and a history not returned by the BE fixes LIVE-12797
|
|
141
|
+
const mergedSubAccounts = mergeSubAccounts(subAccounts, filteredInitialSubAccounts);
|
|
142
|
+
// get 'OUT' token operations with fee
|
|
143
|
+
const subOutOperationsWithFee = subAccounts
|
|
144
|
+
.flatMap(s => s.operations)
|
|
145
|
+
.filter(o => o.type === "OUT" && o.fee.isGreaterThan(0))
|
|
146
|
+
.map((o) => (Object.assign(Object.assign({}, o), { accountId, value: o.fee, id: (0, operation_1.encodeOperationId)(accountId, o.hash, "OUT"), extra: o.extra })));
|
|
147
|
+
// add them to the parent operations and sort by date desc
|
|
148
|
+
/**
|
|
149
|
+
* FIXME
|
|
150
|
+
*
|
|
151
|
+
* We have a problem here as we're just concatenating ops without ever really linking them.
|
|
152
|
+
* It means no operation can be "FEES" of a subOp by example. It leads to our issues with TRC10/TRC20
|
|
153
|
+
* optimistic operation never really existing in the end.
|
|
154
|
+
*/
|
|
155
|
+
const parentOpsAndSubOutOpsWithFee = parentOperations
|
|
156
|
+
.concat(subOutOperationsWithFee)
|
|
157
|
+
.sort((a, b) => b.date.valueOf() - a.date.valueOf());
|
|
158
|
+
return {
|
|
159
|
+
id: accountId,
|
|
160
|
+
balance,
|
|
161
|
+
spendableBalance,
|
|
162
|
+
operationsCount: parentOpsAndSubOutOpsWithFee.length,
|
|
163
|
+
operations: parentOpsAndSubOutOpsWithFee,
|
|
164
|
+
subAccounts: mergedSubAccounts,
|
|
165
|
+
tronResources,
|
|
166
|
+
blockHeight,
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
exports.getAccountShape = getAccountShape;
|
|
170
|
+
const postSync = (initial, parent) => {
|
|
171
|
+
function evictRecentOpsIfPending(a) {
|
|
172
|
+
a.pendingOperations.forEach(pending => {
|
|
173
|
+
const i = a.operations.findIndex(o => o.id === pending.id);
|
|
174
|
+
if (i !== -1) {
|
|
175
|
+
const diff = parent.blockHeight - (a.operations[i].blockHeight || 0);
|
|
176
|
+
if (diff < PREFER_PENDING_OPERATIONS_UNTIL_BLOCK_VALIDATION) {
|
|
177
|
+
a.operations.splice(i, 1);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
evictRecentOpsIfPending(parent);
|
|
183
|
+
parent.subAccounts && parent.subAccounts.forEach(evictRecentOpsIfPending);
|
|
184
|
+
return parent;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Merges two arrays of subAccounts according to specific rules:
|
|
188
|
+
* - The first array (subAccounts1) is up-to-date and should not be modified.
|
|
189
|
+
* - Old duplicates from the second array (subAccounts2) should be filtered out.
|
|
190
|
+
* - Only new subAccounts with a unique ID from the second array should be included.
|
|
191
|
+
* - The balance and spendableBalance fields of the second array's subAccounts should be set to 0.
|
|
192
|
+
*
|
|
193
|
+
* @param {Array} subAccounts1 - The first array of subAccounts, which is up-to-date and should not be modified.
|
|
194
|
+
* @param {Array} subAccounts2 - The second array of subAccounts, from which only new unique subAccounts should be included.
|
|
195
|
+
* @returns {Array} - The merged array of subAccounts.
|
|
196
|
+
*/
|
|
197
|
+
const mergeSubAccounts = (subAccounts1, subAccounts2) => {
|
|
198
|
+
const existingIds = new Set(subAccounts1.map(subAccount => subAccount.id));
|
|
199
|
+
const filteredSubAccounts2 = subAccounts2
|
|
200
|
+
.map(subAccount => {
|
|
201
|
+
if (existingIds.has(subAccount.id)) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
// Set balance and spendableBalance to 0 has if they are not here it means balance is 0
|
|
206
|
+
return Object.assign(Object.assign({}, subAccount), { balance: new bignumber_js_1.default(0), spendableBalance: new bignumber_js_1.default(0) });
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
.filter((elt) => elt !== null);
|
|
210
|
+
return subAccounts1.concat(filteredSubAccounts2);
|
|
211
|
+
};
|
|
212
|
+
exports.sync = (0, jsHelpers_1.makeSync)({
|
|
213
|
+
getAccountShape: exports.getAccountShape,
|
|
214
|
+
postSync,
|
|
215
|
+
});
|
|
216
|
+
//# sourceMappingURL=synchronization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synchronization.js","sourceRoot":"","sources":["../../src/bridge/synchronization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Transaction, TransactionRaw } from "../types";
|
|
2
|
+
import type { Account } from "@ledgerhq/types-live";
|
|
3
|
+
export declare const fromTransactionRaw: (tr: TransactionRaw) => Transaction;
|
|
4
|
+
export declare const toTransactionRaw: (t: Transaction) => TransactionRaw;
|
|
5
|
+
export declare const formatTransaction: (t: Transaction, mainAccount: Account) => string;
|
|
6
|
+
declare const _default: {
|
|
7
|
+
formatTransaction: (t: Transaction, mainAccount: Account) => string;
|
|
8
|
+
fromTransactionRaw: (tr: TransactionRaw) => Transaction;
|
|
9
|
+
toTransactionRaw: (t: Transaction) => TransactionRaw;
|
|
10
|
+
fromTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommonRaw) => import("@ledgerhq/types-live").TransactionStatusCommon;
|
|
11
|
+
toTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommon) => import("@ledgerhq/types-live").TransactionStatusCommonRaw;
|
|
12
|
+
formatTransactionStatus: (t: import("@ledgerhq/types-live").TransactionCommon, { errors, warnings, estimatedFees, amount, totalSpent }: import("@ledgerhq/types-live").TransactionStatusCommon, mainAccount: Account) => string;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
15
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,WAoBvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAO,WAAW,KAAG,cAoBjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,WAAW,eAAe,OAAO,KAAG,MAiBxE,CAAC;;;;;;;;;AAEF,wBAOE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatTransaction = exports.toTransactionRaw = exports.fromTransactionRaw = void 0;
|
|
4
|
+
const bignumber_js_1 = require("bignumber.js");
|
|
5
|
+
const formatters_1 = require("@ledgerhq/coin-framework/formatters");
|
|
6
|
+
const serialization_1 = require("@ledgerhq/coin-framework/serialization");
|
|
7
|
+
const account_1 = require("@ledgerhq/coin-framework/account");
|
|
8
|
+
const currencies_1 = require("@ledgerhq/coin-framework/currencies");
|
|
9
|
+
const fromTransactionRaw = (tr) => {
|
|
10
|
+
const common = (0, serialization_1.fromTransactionCommonRaw)(tr);
|
|
11
|
+
const { networkInfo } = tr;
|
|
12
|
+
return Object.assign(Object.assign({}, common), { networkInfo: networkInfo && {
|
|
13
|
+
family: "tron",
|
|
14
|
+
freeNetUsed: new bignumber_js_1.BigNumber(networkInfo.freeNetUsed),
|
|
15
|
+
freeNetLimit: new bignumber_js_1.BigNumber(networkInfo.freeNetLimit),
|
|
16
|
+
netUsed: new bignumber_js_1.BigNumber(networkInfo.netUsed),
|
|
17
|
+
netLimit: new bignumber_js_1.BigNumber(networkInfo.netLimit),
|
|
18
|
+
energyUsed: new bignumber_js_1.BigNumber(networkInfo.energyUsed),
|
|
19
|
+
energyLimit: new bignumber_js_1.BigNumber(networkInfo.energyLimit),
|
|
20
|
+
}, family: tr.family, mode: tr.mode, resource: tr.resource || null, duration: tr.duration || 3, votes: tr.votes });
|
|
21
|
+
};
|
|
22
|
+
exports.fromTransactionRaw = fromTransactionRaw;
|
|
23
|
+
const toTransactionRaw = (t) => {
|
|
24
|
+
const common = (0, serialization_1.toTransactionCommonRaw)(t);
|
|
25
|
+
const { networkInfo } = t;
|
|
26
|
+
return Object.assign(Object.assign({}, common), { networkInfo: networkInfo && {
|
|
27
|
+
family: "tron",
|
|
28
|
+
freeNetUsed: networkInfo.freeNetUsed.toString(),
|
|
29
|
+
freeNetLimit: networkInfo.freeNetLimit.toString(),
|
|
30
|
+
netUsed: networkInfo.netUsed.toString(),
|
|
31
|
+
netLimit: networkInfo.netLimit.toString(),
|
|
32
|
+
energyUsed: networkInfo.energyUsed.toString(),
|
|
33
|
+
energyLimit: networkInfo.energyLimit.toString(),
|
|
34
|
+
}, family: t.family, mode: t.mode, resource: t.resource || null, duration: t.duration || 3, votes: t.votes });
|
|
35
|
+
};
|
|
36
|
+
exports.toTransactionRaw = toTransactionRaw;
|
|
37
|
+
const formatTransaction = (t, mainAccount) => {
|
|
38
|
+
const account = (t.subAccountId && (mainAccount.subAccounts || []).find(a => a.id === t.subAccountId)) ||
|
|
39
|
+
mainAccount;
|
|
40
|
+
return `
|
|
41
|
+
${t.mode.toUpperCase()}${t.resource ? " " + t.resource : ""} ${t.useAllAmount
|
|
42
|
+
? "MAX"
|
|
43
|
+
: t.amount.isZero()
|
|
44
|
+
? ""
|
|
45
|
+
: " " +
|
|
46
|
+
(0, currencies_1.formatCurrencyUnit)((0, account_1.getAccountCurrency)(account).units[0], t.amount, {
|
|
47
|
+
showCode: true,
|
|
48
|
+
disableRounding: true,
|
|
49
|
+
})}${!t.votes ? "" : " " + t.votes.map(v => v.voteCount + "->" + v.address).join(" ")}
|
|
50
|
+
TO ${t.recipient}`;
|
|
51
|
+
};
|
|
52
|
+
exports.formatTransaction = formatTransaction;
|
|
53
|
+
exports.default = {
|
|
54
|
+
formatTransaction: exports.formatTransaction,
|
|
55
|
+
fromTransactionRaw: exports.fromTransactionRaw,
|
|
56
|
+
toTransactionRaw: exports.toTransactionRaw,
|
|
57
|
+
fromTransactionStatusRaw: serialization_1.fromTransactionStatusRawCommon,
|
|
58
|
+
toTransactionStatusRaw: serialization_1.toTransactionStatusRawCommon,
|
|
59
|
+
formatTransactionStatus: formatters_1.formatTransactionStatus,
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"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"}
|
package/lib/config.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CurrencyConfig, CoinConfig } from "@ledgerhq/coin-framework/config";
|
|
2
|
+
export type TronConfig = {
|
|
3
|
+
explorer: {
|
|
4
|
+
url: string;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export type TronCoinConfig = CurrencyConfig & TronConfig;
|
|
8
|
+
export declare const setCoinConfig: (config: CoinConfig<TronCoinConfig>) => void;
|
|
9
|
+
export declare const getCoinConfig: () => TronCoinConfig;
|
|
10
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7E,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,UAAU,CAAC;AAIzD,eAAO,MAAM,aAAa,WAAY,WAAW,cAAc,CAAC,KAAG,IAElE,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,cAMhC,CAAC"}
|
package/lib/config.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCoinConfig = exports.setCoinConfig = void 0;
|
|
4
|
+
const errors_1 = require("@ledgerhq/coin-framework/errors");
|
|
5
|
+
let coinConfig;
|
|
6
|
+
const setCoinConfig = (config) => {
|
|
7
|
+
coinConfig = config;
|
|
8
|
+
};
|
|
9
|
+
exports.setCoinConfig = setCoinConfig;
|
|
10
|
+
const getCoinConfig = () => {
|
|
11
|
+
if (!coinConfig) {
|
|
12
|
+
throw new errors_1.MissingCoinConfig();
|
|
13
|
+
}
|
|
14
|
+
return coinConfig();
|
|
15
|
+
};
|
|
16
|
+
exports.getCoinConfig = getCoinConfig;
|
|
17
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AACA,4DAAoE;AAUpE,IAAI,UAAkD,CAAC;AAEhD,MAAM,aAAa,GAAG,CAAC,MAAkC,EAAQ,EAAE;IACxE,UAAU,GAAG,MAAM,CAAC;AACtB,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,aAAa,GAAG,GAAmB,EAAE;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,0BAAiB,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|