@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,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,85 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import BigNumber from "bignumber.js";
|
|
11
|
+
import { Observable } from "rxjs";
|
|
12
|
+
import { claimRewardTronTransaction, createTronTransaction, fetchTronContract, freezeTronTransaction, legacyUnfreezeTronTransaction, unDelegateResourceTransaction, unfreezeTronTransaction, voteTronSuperRepresentatives, withdrawExpireUnfreezeTronTransaction, } from "../network";
|
|
13
|
+
import { buildOptimisticOperation } from "./buildOptimisticOperation";
|
|
14
|
+
import getEstimatedFees from "./getEstimateFees";
|
|
15
|
+
export const buildSignOperation = (signerContext) => ({ account, transaction, deviceId }) => new Observable(o => {
|
|
16
|
+
function main() {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const subAccount = transaction.subAccountId && account.subAccounts
|
|
19
|
+
? account.subAccounts.find(sa => sa.id === transaction.subAccountId)
|
|
20
|
+
: undefined;
|
|
21
|
+
const isContractAddressRecipient = (yield fetchTronContract(transaction.recipient)) !== undefined;
|
|
22
|
+
const fee = yield getEstimatedFees(account, transaction, isContractAddressRecipient);
|
|
23
|
+
const balance = subAccount
|
|
24
|
+
? subAccount.balance
|
|
25
|
+
: BigNumber.max(0, account.spendableBalance.minus(fee));
|
|
26
|
+
if (transaction.useAllAmount) {
|
|
27
|
+
transaction = Object.assign({}, transaction); // transaction object must not be mutated
|
|
28
|
+
transaction.amount = balance; // force the amount to be the max
|
|
29
|
+
}
|
|
30
|
+
const { raw_data_hex: rawDataHex, raw_data: rawData, txID: hash, } = yield prepareTransactionForSignature(account, subAccount, transaction);
|
|
31
|
+
o.next({
|
|
32
|
+
type: "device-signature-requested",
|
|
33
|
+
});
|
|
34
|
+
const txArg = {
|
|
35
|
+
rawDataHex,
|
|
36
|
+
// only for trc10, we need to put the token ledger signature
|
|
37
|
+
tokenSignature: subAccount &&
|
|
38
|
+
subAccount.type === "TokenAccount" &&
|
|
39
|
+
subAccount.token.id.includes("trc10")
|
|
40
|
+
? subAccount.token.ledgerSignature
|
|
41
|
+
: undefined,
|
|
42
|
+
};
|
|
43
|
+
// Sign by device
|
|
44
|
+
const signature = yield signerContext(deviceId, signer => {
|
|
45
|
+
var _a;
|
|
46
|
+
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.
|
|
47
|
+
txArg.tokenSignature ? [txArg.tokenSignature] : []);
|
|
48
|
+
});
|
|
49
|
+
o.next({
|
|
50
|
+
type: "device-signature-granted",
|
|
51
|
+
});
|
|
52
|
+
const operation = buildOptimisticOperation(account, subAccount, transaction, fee, hash);
|
|
53
|
+
o.next({
|
|
54
|
+
type: "signed",
|
|
55
|
+
signedOperation: {
|
|
56
|
+
operation,
|
|
57
|
+
signature,
|
|
58
|
+
rawData,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
main().then(() => o.complete(), e => o.error(e));
|
|
64
|
+
});
|
|
65
|
+
const prepareTransactionForSignature = (account, subAccount, transaction) => {
|
|
66
|
+
switch (transaction.mode) {
|
|
67
|
+
case "freeze":
|
|
68
|
+
return freezeTronTransaction(account, transaction);
|
|
69
|
+
case "unfreeze":
|
|
70
|
+
return unfreezeTronTransaction(account, transaction);
|
|
71
|
+
case "vote":
|
|
72
|
+
return voteTronSuperRepresentatives(account, transaction);
|
|
73
|
+
case "claimReward":
|
|
74
|
+
return claimRewardTronTransaction(account);
|
|
75
|
+
case "withdrawExpireUnfreeze":
|
|
76
|
+
return withdrawExpireUnfreezeTronTransaction(account, transaction);
|
|
77
|
+
case "unDelegateResource":
|
|
78
|
+
return unDelegateResourceTransaction(account, transaction);
|
|
79
|
+
case "legacyUnfreeze":
|
|
80
|
+
return legacyUnfreezeTronTransaction(account, transaction);
|
|
81
|
+
default:
|
|
82
|
+
return createTronTransaction(account, transaction, subAccount);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
//# 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,89 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import BigNumber from "bignumber.js";
|
|
11
|
+
import { firstValueFrom, reduce } from "rxjs";
|
|
12
|
+
import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/index";
|
|
13
|
+
import { defaultTronResources } from "../logic/utils";
|
|
14
|
+
import { createBridges } from "./index";
|
|
15
|
+
jest.setTimeout(30000);
|
|
16
|
+
const tron = getCryptoCurrencyById("tron");
|
|
17
|
+
const defaultSyncConfig = {
|
|
18
|
+
paginationConfig: {},
|
|
19
|
+
blacklistedTokenIds: [],
|
|
20
|
+
};
|
|
21
|
+
export function syncAccount(bridge, account, syncConfig = defaultSyncConfig) {
|
|
22
|
+
return firstValueFrom(bridge.sync(account, syncConfig).pipe(reduce((a, f) => f(a), account)));
|
|
23
|
+
}
|
|
24
|
+
const dummyAccount = {
|
|
25
|
+
type: "Account",
|
|
26
|
+
id: "",
|
|
27
|
+
derivationMode: "",
|
|
28
|
+
seedIdentifier: "",
|
|
29
|
+
used: false,
|
|
30
|
+
currency: tron,
|
|
31
|
+
index: 0,
|
|
32
|
+
freshAddress: "",
|
|
33
|
+
freshAddressPath: "",
|
|
34
|
+
swapHistory: [],
|
|
35
|
+
blockHeight: 0,
|
|
36
|
+
balance: new BigNumber(0),
|
|
37
|
+
spendableBalance: new BigNumber(0),
|
|
38
|
+
operationsCount: 0,
|
|
39
|
+
operations: [],
|
|
40
|
+
pendingOperations: [],
|
|
41
|
+
lastSyncDate: new Date(0),
|
|
42
|
+
creationDate: new Date(),
|
|
43
|
+
balanceHistoryCache: {
|
|
44
|
+
HOUR: {
|
|
45
|
+
balances: [],
|
|
46
|
+
latestDate: undefined,
|
|
47
|
+
},
|
|
48
|
+
DAY: {
|
|
49
|
+
balances: [],
|
|
50
|
+
latestDate: undefined,
|
|
51
|
+
},
|
|
52
|
+
WEEK: {
|
|
53
|
+
balances: [],
|
|
54
|
+
latestDate: undefined,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
tronResources: {},
|
|
58
|
+
};
|
|
59
|
+
describe("Tron Accounts", () => {
|
|
60
|
+
let bridge;
|
|
61
|
+
beforeAll(() => {
|
|
62
|
+
const signer = jest.fn();
|
|
63
|
+
const coinConfig = () => ({
|
|
64
|
+
status: {
|
|
65
|
+
type: "active",
|
|
66
|
+
},
|
|
67
|
+
explorer: {
|
|
68
|
+
url: "https://tron.coin.ledger.com",
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
bridge = createBridges(signer, coinConfig);
|
|
72
|
+
});
|
|
73
|
+
test("should always have tronResources", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
+
const account = yield syncAccount(bridge.accountBridge, dummyAccount, defaultSyncConfig);
|
|
75
|
+
expect(account.tronResources).toEqual(defaultTronResources);
|
|
76
|
+
}));
|
|
77
|
+
test.each([
|
|
78
|
+
"TL24LCps5FKwp3PoU1MvrYrwhi5LU1tHre",
|
|
79
|
+
"TAVrrARNdnjHgCGMQYeQV7hv4PSu7mVsMj",
|
|
80
|
+
"THAe4BNVxp293qgyQEqXEkHMpPcqtG73bi",
|
|
81
|
+
"TRqkRnAj6ceJFYAn2p1eE7aWrgBBwtdhS9",
|
|
82
|
+
"TUxd6v64YTWkfpFpNDdtgc5Ps4SfGxwizT",
|
|
83
|
+
"TY2ksFgpvb82TgGPwUSa7iseqPW5weYQyh",
|
|
84
|
+
])("should always be sync wihtout error for address %s", (accountId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
85
|
+
const account = yield syncAccount(bridge.accountBridge, Object.assign(Object.assign({}, dummyAccount), { id: `js:2:tron:${accountId}:`, freshAddress: accountId }), defaultSyncConfig);
|
|
86
|
+
expect(account.id).toEqual(`js:2:tron:${accountId}:`);
|
|
87
|
+
}));
|
|
88
|
+
});
|
|
89
|
+
//# 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,209 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { emptyHistoryCache, encodeAccountId, encodeTokenAccountId, } from "@ledgerhq/coin-framework/account";
|
|
11
|
+
import { makeSync } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
12
|
+
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
13
|
+
import { findTokenByAddressInCurrency, findTokenById } from "@ledgerhq/cryptoassets/index";
|
|
14
|
+
import BigNumber from "bignumber.js";
|
|
15
|
+
import compact from "lodash/compact";
|
|
16
|
+
import get from "lodash/get";
|
|
17
|
+
import { getOperationsPageSize } from "../logic/pagination";
|
|
18
|
+
import { isParentTx, txInfoToOperation } from "../logic/utils";
|
|
19
|
+
import { fetchCurrentBlockHeight, fetchTronAccount, fetchTronAccountTxs, getTronResources, } from "../network";
|
|
20
|
+
// the balance does not update straightaway so we should ignore recent operations if they are in pending for a bit
|
|
21
|
+
const PREFER_PENDING_OPERATIONS_UNTIL_BLOCK_VALIDATION = 35;
|
|
22
|
+
export const getAccountShape = (_a, syncConfig_1) => __awaiter(void 0, [_a, syncConfig_1], void 0, function* ({ initialAccount, currency, address, derivationMode }, syncConfig) {
|
|
23
|
+
var _b;
|
|
24
|
+
const blockHeight = yield fetchCurrentBlockHeight();
|
|
25
|
+
const tronAcc = yield fetchTronAccount(address);
|
|
26
|
+
const accountId = encodeAccountId({
|
|
27
|
+
type: "js",
|
|
28
|
+
version: "2",
|
|
29
|
+
currencyId: currency.id,
|
|
30
|
+
xpubOrAddress: address,
|
|
31
|
+
derivationMode: derivationMode,
|
|
32
|
+
});
|
|
33
|
+
if (tronAcc.length === 0) {
|
|
34
|
+
const defaultTronResources = yield getTronResources();
|
|
35
|
+
return {
|
|
36
|
+
id: accountId,
|
|
37
|
+
blockHeight,
|
|
38
|
+
balance: new BigNumber(0),
|
|
39
|
+
tronResources: defaultTronResources,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const acc = tronAcc[0];
|
|
43
|
+
const spendableBalance = acc.balance ? new BigNumber(acc.balance) : new BigNumber(0);
|
|
44
|
+
const cacheTransactionInfoById = initialAccount
|
|
45
|
+
? Object.assign({}, (((_b = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.tronResources) === null || _b === void 0 ? void 0 : _b.cacheTransactionInfoById) || {})) : {};
|
|
46
|
+
const operationsPageSize = Math.min(1000, getOperationsPageSize(initialAccount && initialAccount.id, syncConfig));
|
|
47
|
+
// FIXME: this is not optional especially that we might already have initialAccount
|
|
48
|
+
// use minimalOperationsBuilderSync to reconciliate and KEEP REF
|
|
49
|
+
const txs = yield fetchTronAccountTxs(address, txs => txs.length < operationsPageSize, cacheTransactionInfoById);
|
|
50
|
+
const tronResources = yield getTronResources(acc, txs, cacheTransactionInfoById);
|
|
51
|
+
const balance = spendableBalance
|
|
52
|
+
.plus(tronResources.frozen.bandwidth ? tronResources.frozen.bandwidth.amount : new BigNumber(0))
|
|
53
|
+
.plus(tronResources.frozen.energy ? tronResources.frozen.energy.amount : new BigNumber(0))
|
|
54
|
+
.plus(tronResources.delegatedFrozen.bandwidth
|
|
55
|
+
? tronResources.delegatedFrozen.bandwidth.amount
|
|
56
|
+
: new BigNumber(0))
|
|
57
|
+
.plus(tronResources.delegatedFrozen.energy
|
|
58
|
+
? tronResources.delegatedFrozen.energy.amount
|
|
59
|
+
: new BigNumber(0))
|
|
60
|
+
.plus(tronResources.unFrozen.energy
|
|
61
|
+
? tronResources.unFrozen.energy.reduce((accum, cur) => {
|
|
62
|
+
return accum.plus(cur.amount);
|
|
63
|
+
}, new BigNumber(0))
|
|
64
|
+
: new BigNumber(0))
|
|
65
|
+
.plus(tronResources.unFrozen.bandwidth
|
|
66
|
+
? tronResources.unFrozen.bandwidth.reduce((accum, cur) => {
|
|
67
|
+
return accum.plus(cur.amount);
|
|
68
|
+
}, new BigNumber(0))
|
|
69
|
+
: new BigNumber(0))
|
|
70
|
+
.plus(tronResources.legacyFrozen.bandwidth
|
|
71
|
+
? tronResources.legacyFrozen.bandwidth.amount
|
|
72
|
+
: new BigNumber(0))
|
|
73
|
+
.plus(tronResources.legacyFrozen.energy
|
|
74
|
+
? tronResources.legacyFrozen.energy.amount
|
|
75
|
+
: new BigNumber(0));
|
|
76
|
+
const parentTxs = txs.filter(isParentTx);
|
|
77
|
+
const parentOperations = compact(parentTxs.map(tx => txInfoToOperation(accountId, address, tx)));
|
|
78
|
+
const trc10Tokens = get(acc, "assetV2", []).reduce((accumulator, { key, value }) => {
|
|
79
|
+
const tokenInfo = findTokenById(`tron/trc10/${key}`);
|
|
80
|
+
if (tokenInfo) {
|
|
81
|
+
accumulator.push({
|
|
82
|
+
key,
|
|
83
|
+
type: "trc10",
|
|
84
|
+
tokenId: tokenInfo.id,
|
|
85
|
+
balance: value,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return accumulator;
|
|
89
|
+
}, []);
|
|
90
|
+
const trc20Tokens = get(acc, "trc20", []).reduce((accumulator, trc20) => {
|
|
91
|
+
const [[contractAddress, balance]] = Object.entries(trc20);
|
|
92
|
+
const tokenInfo = findTokenByAddressInCurrency(contractAddress, currency.id);
|
|
93
|
+
if (tokenInfo) {
|
|
94
|
+
accumulator.push({
|
|
95
|
+
key: contractAddress,
|
|
96
|
+
type: "trc20",
|
|
97
|
+
tokenId: tokenInfo.id,
|
|
98
|
+
balance,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return accumulator;
|
|
102
|
+
}, []);
|
|
103
|
+
const { blacklistedTokenIds = [] } = syncConfig;
|
|
104
|
+
const subAccounts = compact(trc10Tokens.concat(trc20Tokens).map(({ key, tokenId, balance }) => {
|
|
105
|
+
var _a;
|
|
106
|
+
const { blacklistedTokenIds = [] } = syncConfig;
|
|
107
|
+
const token = findTokenById(tokenId);
|
|
108
|
+
if (!token || blacklistedTokenIds.includes(tokenId))
|
|
109
|
+
return;
|
|
110
|
+
const id = encodeTokenAccountId(accountId, token);
|
|
111
|
+
const tokenTxs = txs.filter(tx => tx.tokenId === key);
|
|
112
|
+
const operations = compact(tokenTxs.map(tx => txInfoToOperation(id, address, tx)));
|
|
113
|
+
const maybeExistingSubAccount = (_a = initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.subAccounts) === null || _a === void 0 ? void 0 : _a.find(a => a.id === id);
|
|
114
|
+
const bnBalance = new BigNumber(balance);
|
|
115
|
+
const sub = {
|
|
116
|
+
type: "TokenAccount",
|
|
117
|
+
id,
|
|
118
|
+
parentId: accountId,
|
|
119
|
+
token,
|
|
120
|
+
balance: bnBalance,
|
|
121
|
+
spendableBalance: bnBalance,
|
|
122
|
+
operationsCount: operations.length,
|
|
123
|
+
operations,
|
|
124
|
+
pendingOperations: maybeExistingSubAccount ? maybeExistingSubAccount.pendingOperations : [],
|
|
125
|
+
creationDate: operations.length > 0 ? operations[operations.length - 1].date : new Date(),
|
|
126
|
+
swapHistory: maybeExistingSubAccount ? maybeExistingSubAccount.swapHistory : [],
|
|
127
|
+
balanceHistoryCache: emptyHistoryCache, // calculated in the jsHelpers
|
|
128
|
+
};
|
|
129
|
+
return sub;
|
|
130
|
+
}));
|
|
131
|
+
// Filter blacklisted tokens from the initial account's subAccounts
|
|
132
|
+
// Could be use to filter out tokens that got their CAL id changed
|
|
133
|
+
const filteredInitialSubAccounts = ((initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.subAccounts) || []).filter(subAccount => !blacklistedTokenIds.includes(subAccount.token.id));
|
|
134
|
+
// keep old account with emptyBalance and a history not returned by the BE fixes LIVE-12797
|
|
135
|
+
const mergedSubAccounts = mergeSubAccounts(subAccounts, filteredInitialSubAccounts);
|
|
136
|
+
// get 'OUT' token operations with fee
|
|
137
|
+
const subOutOperationsWithFee = subAccounts
|
|
138
|
+
.flatMap(s => s.operations)
|
|
139
|
+
.filter(o => o.type === "OUT" && o.fee.isGreaterThan(0))
|
|
140
|
+
.map((o) => (Object.assign(Object.assign({}, o), { accountId, value: o.fee, id: encodeOperationId(accountId, o.hash, "OUT"), extra: o.extra })));
|
|
141
|
+
// add them to the parent operations and sort by date desc
|
|
142
|
+
/**
|
|
143
|
+
* FIXME
|
|
144
|
+
*
|
|
145
|
+
* We have a problem here as we're just concatenating ops without ever really linking them.
|
|
146
|
+
* It means no operation can be "FEES" of a subOp by example. It leads to our issues with TRC10/TRC20
|
|
147
|
+
* optimistic operation never really existing in the end.
|
|
148
|
+
*/
|
|
149
|
+
const parentOpsAndSubOutOpsWithFee = parentOperations
|
|
150
|
+
.concat(subOutOperationsWithFee)
|
|
151
|
+
.sort((a, b) => b.date.valueOf() - a.date.valueOf());
|
|
152
|
+
return {
|
|
153
|
+
id: accountId,
|
|
154
|
+
balance,
|
|
155
|
+
spendableBalance,
|
|
156
|
+
operationsCount: parentOpsAndSubOutOpsWithFee.length,
|
|
157
|
+
operations: parentOpsAndSubOutOpsWithFee,
|
|
158
|
+
subAccounts: mergedSubAccounts,
|
|
159
|
+
tronResources,
|
|
160
|
+
blockHeight,
|
|
161
|
+
};
|
|
162
|
+
});
|
|
163
|
+
const postSync = (initial, parent) => {
|
|
164
|
+
function evictRecentOpsIfPending(a) {
|
|
165
|
+
a.pendingOperations.forEach(pending => {
|
|
166
|
+
const i = a.operations.findIndex(o => o.id === pending.id);
|
|
167
|
+
if (i !== -1) {
|
|
168
|
+
const diff = parent.blockHeight - (a.operations[i].blockHeight || 0);
|
|
169
|
+
if (diff < PREFER_PENDING_OPERATIONS_UNTIL_BLOCK_VALIDATION) {
|
|
170
|
+
a.operations.splice(i, 1);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
evictRecentOpsIfPending(parent);
|
|
176
|
+
parent.subAccounts && parent.subAccounts.forEach(evictRecentOpsIfPending);
|
|
177
|
+
return parent;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Merges two arrays of subAccounts according to specific rules:
|
|
181
|
+
* - The first array (subAccounts1) is up-to-date and should not be modified.
|
|
182
|
+
* - Old duplicates from the second array (subAccounts2) should be filtered out.
|
|
183
|
+
* - Only new subAccounts with a unique ID from the second array should be included.
|
|
184
|
+
* - The balance and spendableBalance fields of the second array's subAccounts should be set to 0.
|
|
185
|
+
*
|
|
186
|
+
* @param {Array} subAccounts1 - The first array of subAccounts, which is up-to-date and should not be modified.
|
|
187
|
+
* @param {Array} subAccounts2 - The second array of subAccounts, from which only new unique subAccounts should be included.
|
|
188
|
+
* @returns {Array} - The merged array of subAccounts.
|
|
189
|
+
*/
|
|
190
|
+
const mergeSubAccounts = (subAccounts1, subAccounts2) => {
|
|
191
|
+
const existingIds = new Set(subAccounts1.map(subAccount => subAccount.id));
|
|
192
|
+
const filteredSubAccounts2 = subAccounts2
|
|
193
|
+
.map(subAccount => {
|
|
194
|
+
if (existingIds.has(subAccount.id)) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
// Set balance and spendableBalance to 0 has if they are not here it means balance is 0
|
|
199
|
+
return Object.assign(Object.assign({}, subAccount), { balance: new BigNumber(0), spendableBalance: new BigNumber(0) });
|
|
200
|
+
}
|
|
201
|
+
})
|
|
202
|
+
.filter((elt) => elt !== null);
|
|
203
|
+
return subAccounts1.concat(filteredSubAccounts2);
|
|
204
|
+
};
|
|
205
|
+
export const sync = makeSync({
|
|
206
|
+
getAccountShape,
|
|
207
|
+
postSync,
|
|
208
|
+
});
|
|
209
|
+
//# 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,55 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
import { formatTransactionStatus } from "@ledgerhq/coin-framework/formatters";
|
|
3
|
+
import { fromTransactionCommonRaw, fromTransactionStatusRawCommon as fromTransactionStatusRaw, toTransactionCommonRaw, toTransactionStatusRawCommon as toTransactionStatusRaw, } from "@ledgerhq/coin-framework/serialization";
|
|
4
|
+
import { getAccountCurrency } from "@ledgerhq/coin-framework/account";
|
|
5
|
+
import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies";
|
|
6
|
+
export const fromTransactionRaw = (tr) => {
|
|
7
|
+
const common = fromTransactionCommonRaw(tr);
|
|
8
|
+
const { networkInfo } = tr;
|
|
9
|
+
return Object.assign(Object.assign({}, common), { networkInfo: networkInfo && {
|
|
10
|
+
family: "tron",
|
|
11
|
+
freeNetUsed: new BigNumber(networkInfo.freeNetUsed),
|
|
12
|
+
freeNetLimit: new BigNumber(networkInfo.freeNetLimit),
|
|
13
|
+
netUsed: new BigNumber(networkInfo.netUsed),
|
|
14
|
+
netLimit: new BigNumber(networkInfo.netLimit),
|
|
15
|
+
energyUsed: new BigNumber(networkInfo.energyUsed),
|
|
16
|
+
energyLimit: new BigNumber(networkInfo.energyLimit),
|
|
17
|
+
}, family: tr.family, mode: tr.mode, resource: tr.resource || null, duration: tr.duration || 3, votes: tr.votes });
|
|
18
|
+
};
|
|
19
|
+
export const toTransactionRaw = (t) => {
|
|
20
|
+
const common = toTransactionCommonRaw(t);
|
|
21
|
+
const { networkInfo } = t;
|
|
22
|
+
return Object.assign(Object.assign({}, common), { networkInfo: networkInfo && {
|
|
23
|
+
family: "tron",
|
|
24
|
+
freeNetUsed: networkInfo.freeNetUsed.toString(),
|
|
25
|
+
freeNetLimit: networkInfo.freeNetLimit.toString(),
|
|
26
|
+
netUsed: networkInfo.netUsed.toString(),
|
|
27
|
+
netLimit: networkInfo.netLimit.toString(),
|
|
28
|
+
energyUsed: networkInfo.energyUsed.toString(),
|
|
29
|
+
energyLimit: networkInfo.energyLimit.toString(),
|
|
30
|
+
}, family: t.family, mode: t.mode, resource: t.resource || null, duration: t.duration || 3, votes: t.votes });
|
|
31
|
+
};
|
|
32
|
+
export const formatTransaction = (t, mainAccount) => {
|
|
33
|
+
const account = (t.subAccountId && (mainAccount.subAccounts || []).find(a => a.id === t.subAccountId)) ||
|
|
34
|
+
mainAccount;
|
|
35
|
+
return `
|
|
36
|
+
${t.mode.toUpperCase()}${t.resource ? " " + t.resource : ""} ${t.useAllAmount
|
|
37
|
+
? "MAX"
|
|
38
|
+
: t.amount.isZero()
|
|
39
|
+
? ""
|
|
40
|
+
: " " +
|
|
41
|
+
formatCurrencyUnit(getAccountCurrency(account).units[0], t.amount, {
|
|
42
|
+
showCode: true,
|
|
43
|
+
disableRounding: true,
|
|
44
|
+
})}${!t.votes ? "" : " " + t.votes.map(v => v.voteCount + "->" + v.address).join(" ")}
|
|
45
|
+
TO ${t.recipient}`;
|
|
46
|
+
};
|
|
47
|
+
export default {
|
|
48
|
+
formatTransaction,
|
|
49
|
+
fromTransactionRaw,
|
|
50
|
+
toTransactionRaw,
|
|
51
|
+
fromTransactionStatusRaw,
|
|
52
|
+
toTransactionStatusRaw,
|
|
53
|
+
formatTransactionStatus,
|
|
54
|
+
};
|
|
55
|
+
//# 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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"}
|
|
@@ -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-es/config.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MissingCoinConfig } from "@ledgerhq/coin-framework/errors";
|
|
2
|
+
let coinConfig;
|
|
3
|
+
export const setCoinConfig = (config) => {
|
|
4
|
+
coinConfig = config;
|
|
5
|
+
};
|
|
6
|
+
export const getCoinConfig = () => {
|
|
7
|
+
if (!coinConfig) {
|
|
8
|
+
throw new MissingCoinConfig();
|
|
9
|
+
}
|
|
10
|
+
return coinConfig();
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAUpE,IAAI,UAAkD,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAkC,EAAQ,EAAE;IACxE,UAAU,GAAG,MAAM,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAmB,EAAE;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,iBAAiB,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -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"}
|
package/lib-es/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/logic/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,OAAO,WAAyB,CAAC;AAC9C,eAAO,MAAM,eAAe,WAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/logic/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,wCAAwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/logic/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,UAAU,EAAE,UAAU,GACrB,MAAM,CAeR"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function getOperationsPageSize(accountId, syncConfig) {
|
|
2
|
+
const { paginationConfig } = syncConfig;
|
|
3
|
+
const { operationsPerAccountId, operations } = paginationConfig;
|
|
4
|
+
const numbers = [];
|
|
5
|
+
if (operationsPerAccountId && accountId && accountId in operationsPerAccountId) {
|
|
6
|
+
numbers.push(operationsPerAccountId[accountId]);
|
|
7
|
+
}
|
|
8
|
+
if (typeof operations === "number") {
|
|
9
|
+
numbers.push(operations);
|
|
10
|
+
}
|
|
11
|
+
if (numbers.length === 0)
|
|
12
|
+
return Infinity;
|
|
13
|
+
return Math.max(...numbers);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=pagination.js.map
|