@ledgerhq/live-common 21.30.0 → 21.32.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/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js +0 -10
- package/lib/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.js.map +1 -1
- package/lib/__tests__/test-helpers/setup.js +1 -0
- package/lib/__tests__/test-helpers/setup.js.map +1 -1
- package/lib/account/support.d.ts.map +1 -1
- package/lib/account/support.js.map +1 -1
- package/lib/api/Ethereum.d.ts.map +1 -1
- package/lib/api/Ethereum.js +1 -0
- package/lib/api/Ethereum.js.map +1 -1
- package/lib/apps/polyfill.d.ts.map +1 -1
- package/lib/apps/polyfill.js +1 -0
- package/lib/apps/polyfill.js.map +1 -1
- package/lib/bot/engine.js +1 -1
- package/lib/bot/engine.js.map +1 -1
- package/lib/bridge/jsHelpers.js +1 -1
- package/lib/data/icons/react/celo.d.ts +8 -0
- package/lib/data/icons/react/celo.d.ts.map +1 -0
- package/lib/data/icons/react/celo.js +32 -0
- package/lib/data/icons/react/celo.js.map +1 -0
- package/lib/data/icons/react/index.d.ts +1 -0
- package/lib/data/icons/react/index.d.ts.map +1 -1
- package/lib/data/icons/react/index.js +11 -8
- package/lib/data/icons/react/index.js.map +1 -1
- package/lib/data/icons/reactNative/celo.d.ts +8 -0
- package/lib/data/icons/reactNative/celo.d.ts.map +1 -0
- package/lib/data/icons/reactNative/celo.js +33 -0
- package/lib/data/icons/reactNative/celo.js.map +1 -0
- package/lib/data/icons/reactNative/index.d.ts +1 -0
- package/lib/data/icons/reactNative/index.d.ts.map +1 -1
- package/lib/data/icons/reactNative/index.js +11 -8
- package/lib/data/icons/reactNative/index.js.map +1 -1
- package/lib/env.d.ts +15 -5
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +10 -0
- package/lib/env.js.map +1 -1
- package/lib/env.react.d.ts +1 -1
- package/lib/env.react.d.ts.map +1 -1
- package/lib/families/bitcoin/js-synchronisation.js +4 -4
- package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/explorer/index.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/explorer/index.js +20 -0
- package/lib/families/bitcoin/wallet-btc/explorer/index.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/storage/types.d.ts +0 -1
- package/lib/families/bitcoin/wallet-btc/storage/types.d.ts.map +1 -1
- package/lib/families/celo/api/hubble.d.ts +8 -0
- package/lib/families/celo/api/hubble.d.ts.map +1 -0
- package/lib/families/celo/api/hubble.js +144 -0
- package/lib/families/celo/api/hubble.js.map +1 -0
- package/lib/families/celo/api/index.d.ts +2 -0
- package/lib/families/celo/api/index.d.ts.map +1 -0
- package/lib/families/celo/api/index.js +13 -0
- package/lib/families/celo/api/index.js.map +1 -0
- package/lib/families/celo/api/sdk.d.ts +3 -0
- package/lib/families/celo/api/sdk.d.ts.map +1 -0
- package/lib/families/celo/api/sdk.js +13 -0
- package/lib/families/celo/api/sdk.js.map +1 -0
- package/lib/families/celo/bridge/js.d.ts +8 -0
- package/lib/families/celo/bridge/js.d.ts.map +1 -0
- package/lib/families/celo/bridge/js.js +87 -0
- package/lib/families/celo/bridge/js.js.map +1 -0
- package/lib/families/celo/cli-transaction.d.ts +14 -0
- package/lib/families/celo/cli-transaction.d.ts.map +1 -0
- package/lib/families/celo/cli-transaction.js +37 -0
- package/lib/families/celo/cli-transaction.js.map +1 -0
- package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts +5 -0
- package/lib/families/celo/datasets/celo.scanAccounts.1.d.ts.map +1 -0
- package/lib/families/celo/datasets/celo.scanAccounts.1.js +12 -0
- package/lib/families/celo/datasets/celo.scanAccounts.1.js.map +1 -0
- package/lib/families/celo/deviceTransactionConfig.d.ts +4 -0
- package/lib/families/celo/deviceTransactionConfig.d.ts.map +1 -0
- package/lib/families/celo/deviceTransactionConfig.js +16 -0
- package/lib/families/celo/deviceTransactionConfig.js.map +1 -0
- package/lib/families/celo/hw-app-celo.d.ts +19 -0
- package/lib/families/celo/hw-app-celo.d.ts.map +1 -0
- package/lib/families/celo/hw-app-celo.js +147 -0
- package/lib/families/celo/hw-app-celo.js.map +1 -0
- package/lib/families/celo/hw-getAddress.d.ts +2 -0
- package/lib/families/celo/hw-getAddress.d.ts.map +1 -0
- package/lib/families/celo/hw-getAddress.js +13 -0
- package/lib/families/celo/hw-getAddress.js.map +1 -0
- package/lib/families/celo/js-broadcast.d.ts +8 -0
- package/lib/families/celo/js-broadcast.d.ts.map +1 -0
- package/lib/families/celo/js-broadcast.js +58 -0
- package/lib/families/celo/js-broadcast.js.map +1 -0
- package/lib/families/celo/js-buildTransaction.d.ts +6 -0
- package/lib/families/celo/js-buildTransaction.d.ts.map +1 -0
- package/lib/families/celo/js-buildTransaction.js +89 -0
- package/lib/families/celo/js-buildTransaction.js.map +1 -0
- package/lib/families/celo/js-createTransaction.d.ts +4 -0
- package/lib/families/celo/js-createTransaction.d.ts.map +1 -0
- package/lib/families/celo/js-createTransaction.js +12 -0
- package/lib/families/celo/js-createTransaction.js.map +1 -0
- package/lib/families/celo/js-estimateMaxSpendable.d.ts +10 -0
- package/lib/families/celo/js-estimateMaxSpendable.d.ts.map +1 -0
- package/lib/families/celo/js-estimateMaxSpendable.js +77 -0
- package/lib/families/celo/js-estimateMaxSpendable.js.map +1 -0
- package/lib/families/celo/js-getFeesForTransaction.d.ts +8 -0
- package/lib/families/celo/js-getFeesForTransaction.d.ts.map +1 -0
- package/lib/families/celo/js-getFeesForTransaction.js +76 -0
- package/lib/families/celo/js-getFeesForTransaction.js.map +1 -0
- package/lib/families/celo/js-getTransactionStatus.d.ts +5 -0
- package/lib/families/celo/js-getTransactionStatus.d.ts.map +1 -0
- package/lib/families/celo/js-getTransactionStatus.js +86 -0
- package/lib/families/celo/js-getTransactionStatus.js.map +1 -0
- package/lib/families/celo/js-prepareTransaction.d.ts +5 -0
- package/lib/families/celo/js-prepareTransaction.d.ts.map +1 -0
- package/lib/families/celo/js-prepareTransaction.js +76 -0
- package/lib/families/celo/js-prepareTransaction.js.map +1 -0
- package/lib/families/celo/js-signOperation.d.ts +13 -0
- package/lib/families/celo/js-signOperation.d.ts.map +1 -0
- package/lib/families/celo/js-signOperation.js +150 -0
- package/lib/families/celo/js-signOperation.js.map +1 -0
- package/lib/families/celo/js-synchronisation.d.ts +10 -0
- package/lib/families/celo/js-synchronisation.d.ts.map +1 -0
- package/lib/families/celo/js-synchronisation.js +88 -0
- package/lib/families/celo/js-synchronisation.js.map +1 -0
- package/lib/families/celo/specs.d.ts +7 -0
- package/lib/families/celo/specs.d.ts.map +1 -0
- package/lib/families/celo/specs.js +56 -0
- package/lib/families/celo/specs.js.map +1 -0
- package/lib/families/celo/speculos-deviceActions.d.ts +7 -0
- package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -0
- package/lib/families/celo/speculos-deviceActions.js +53 -0
- package/lib/families/celo/speculos-deviceActions.js.map +1 -0
- package/lib/families/celo/transaction.d.ts +11 -0
- package/lib/families/celo/transaction.d.ts.map +1 -0
- package/lib/families/celo/transaction.js +39 -0
- package/lib/families/celo/transaction.js.map +1 -0
- package/lib/families/celo/types.d.ts +16 -0
- package/lib/families/celo/types.d.ts.map +1 -0
- package/lib/families/celo/types.js +6 -0
- package/lib/families/celo/types.js.map +1 -0
- package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.d.ts +1 -0
- package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.d.ts.map +1 -1
- package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js +1 -0
- package/lib/families/ethereum/datasets/ethereum.scanAccounts.1.js.map +1 -1
- package/lib/families/ethereum/modules/erc1155.d.ts.map +1 -1
- package/lib/families/ethereum/modules/erc1155.js +8 -2
- package/lib/families/ethereum/modules/erc1155.js.map +1 -1
- package/lib/families/polkadot/cache.d.ts +1 -1
- package/lib/families/polkadot/cache.js +1 -1
- package/lib/families/solana/specs.js +1 -1
- package/lib/families/solana/specs.js.map +1 -1
- package/lib/families/solana/test-dataset.d.ts.map +1 -1
- package/lib/families/solana/test-dataset.js +211 -209
- package/lib/families/solana/test-dataset.js.map +1 -1
- package/lib/families/tezos/bakers.whitelist-default.d.ts.map +1 -1
- package/lib/families/tezos/bakers.whitelist-default.js +1 -1
- package/lib/families/tezos/bakers.whitelist-default.js.map +1 -1
- package/lib/families/tezos/test-specifics.d.ts.map +1 -1
- package/lib/families/tezos/test-specifics.js +1 -0
- package/lib/families/tezos/test-specifics.js.map +1 -1
- package/lib/featureFlags/FeatureToggle.d.ts +10 -0
- package/lib/featureFlags/FeatureToggle.d.ts.map +1 -0
- package/lib/featureFlags/FeatureToggle.js +17 -0
- package/lib/featureFlags/FeatureToggle.js.map +1 -0
- package/lib/featureFlags/defaultFeatures.d.ts +3 -0
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -0
- package/lib/featureFlags/defaultFeatures.js +9 -0
- package/lib/featureFlags/defaultFeatures.js.map +1 -0
- package/lib/featureFlags/index.d.ts +5 -0
- package/lib/featureFlags/index.d.ts.map +1 -0
- package/lib/featureFlags/index.js +17 -0
- package/lib/featureFlags/index.js.map +1 -0
- package/lib/featureFlags/provider.d.ts +13 -0
- package/lib/featureFlags/provider.d.ts.map +1 -0
- package/lib/featureFlags/provider.js +68 -0
- package/lib/featureFlags/provider.js.map +1 -0
- package/lib/featureFlags/types.d.ts +8 -0
- package/lib/featureFlags/types.d.ts.map +1 -0
- package/lib/featureFlags/types.js +3 -0
- package/lib/featureFlags/types.js.map +1 -0
- package/lib/featureFlags/useFeature.d.ts +3 -0
- package/lib/featureFlags/useFeature.d.ts.map +1 -0
- package/lib/featureFlags/useFeature.js +9 -0
- package/lib/featureFlags/useFeature.js.map +1 -0
- package/lib/generated/bridge/js.d.ts +4 -0
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +24 -22
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/generated/cli-transaction.d.ts +9 -0
- package/lib/generated/cli-transaction.d.ts.map +1 -1
- package/lib/generated/cli-transaction.js +24 -22
- package/lib/generated/cli-transaction.js.map +1 -1
- package/lib/generated/deviceTransactionConfig.d.ts +2 -0
- package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
- package/lib/generated/deviceTransactionConfig.js +22 -20
- package/lib/generated/deviceTransactionConfig.js.map +1 -1
- package/lib/generated/hw-getAddress.d.ts +1 -0
- package/lib/generated/hw-getAddress.d.ts.map +1 -1
- package/lib/generated/hw-getAddress.js +26 -24
- package/lib/generated/hw-getAddress.js.map +1 -1
- package/lib/generated/specs.d.ts +3 -0
- package/lib/generated/specs.d.ts.map +1 -1
- package/lib/generated/specs.js +24 -22
- package/lib/generated/specs.js.map +1 -1
- package/lib/generated/speculos-deviceActions.d.ts +3 -0
- package/lib/generated/speculos-deviceActions.d.ts.map +1 -1
- package/lib/generated/speculos-deviceActions.js +24 -22
- package/lib/generated/speculos-deviceActions.js.map +1 -1
- package/lib/generated/transaction.d.ts +5 -0
- package/lib/generated/transaction.d.ts.map +1 -1
- package/lib/generated/transaction.js +26 -24
- package/lib/generated/transaction.js.map +1 -1
- package/lib/generated/types.d.ts +12 -6
- package/lib/generated/types.d.ts.map +1 -1
- package/lib/generated/types.js +14 -12
- package/lib/generated/types.js.map +1 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1 -0
- package/lib/types/index.js.map +1 -1
- package/package.json +9 -6
- package/src/.DS_Store +0 -0
- package/src/{data/flags → __tests__}/.DS_Store +0 -0
- package/src/__tests__/__snapshots__/all.libcore.ts.snap +0 -33226
- package/src/__tests__/families/bitcoin/wallet-btc/xpub.pickingStrategies.integration.test.ts +0 -11
- package/src/__tests__/test-helpers/setup.ts +1 -0
- package/src/account/support.ts +1 -0
- package/src/api/Ethereum.ts +1 -0
- package/src/apps/polyfill.ts +1 -0
- package/src/bot/engine.ts +1 -1
- package/src/bridge/jsHelpers.ts +1 -1
- package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +6195 -0
- package/src/data/icons/react/celo.tsx +12 -0
- package/src/data/icons/react/index.tsx +1 -0
- package/src/data/icons/reactNative/celo.tsx +13 -0
- package/src/data/icons/reactNative/index.tsx +1 -0
- package/src/data/icons/svg/CELO.svg +5 -0
- package/src/env.ts +10 -0
- package/src/families/bitcoin/js-synchronisation.ts +4 -4
- package/src/families/bitcoin/wallet-btc/explorer/index.ts +20 -0
- package/src/families/bitcoin/wallet-btc/storage/types.ts +0 -1
- package/src/families/celo/api/hubble.ts +93 -0
- package/src/families/celo/api/index.ts +1 -0
- package/src/families/celo/api/sdk.ts +8 -0
- package/src/families/celo/bridge/js.ts +38 -0
- package/src/families/celo/cli-transaction.ts +41 -0
- package/src/families/celo/datasets/celo.scanAccounts.1.ts +20 -0
- package/src/families/celo/deviceTransactionConfig.ts +19 -0
- package/src/families/celo/hw-app-celo.ts +108 -0
- package/src/families/celo/hw-getAddress.ts +1 -0
- package/src/families/celo/js-broadcast.ts +12 -0
- package/src/families/celo/js-buildTransaction.ts +32 -0
- package/src/families/celo/js-createTransaction.ts +12 -0
- package/src/families/celo/js-estimateMaxSpendable.ts +28 -0
- package/src/families/celo/js-getFeesForTransaction.ts +38 -0
- package/src/families/celo/js-getTransactionStatus.ts +67 -0
- package/src/families/celo/js-prepareTransaction.ts +28 -0
- package/src/families/celo/js-signOperation.ts +149 -0
- package/src/families/celo/js-synchronisation.ts +40 -0
- package/src/families/celo/specs.ts +53 -0
- package/src/families/celo/speculos-deviceActions.ts +51 -0
- package/src/families/celo/transaction.ts +39 -0
- package/src/families/celo/types.ts +20 -0
- package/src/families/ethereum/datasets/ethereum.scanAccounts.1.ts +1 -0
- package/src/families/ethereum/modules/erc1155.ts +9 -0
- package/src/families/polkadot/cache.ts +1 -1
- package/src/families/solana/specs.ts +1 -1
- package/src/families/solana/test-dataset.ts +340 -337
- package/src/families/tezos/bakers.whitelist-default.ts +0 -2
- package/src/families/tezos/test-specifics.ts +1 -0
- package/src/featureFlags/FeatureToggle.tsx +24 -0
- package/src/featureFlags/defaultFeatures.ts +7 -0
- package/src/featureFlags/index.ts +4 -0
- package/src/featureFlags/provider.tsx +48 -0
- package/src/featureFlags/types.ts +9 -0
- package/src/featureFlags/useFeature.ts +8 -0
- package/src/generated/bridge/js.ts +3 -0
- package/src/generated/cli-transaction.ts +3 -0
- package/src/generated/deviceTransactionConfig.ts +3 -0
- package/src/generated/hw-getAddress.ts +3 -0
- package/src/generated/specs.ts +3 -0
- package/src/generated/speculos-deviceActions.ts +3 -0
- package/src/generated/transaction.ts +3 -0
- package/src/generated/types.ts +14 -0
- package/src/types/index.ts +1 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Account, TransactionStatus } from "../../types";
|
|
2
|
+
import { Transaction } from "./types";
|
|
3
|
+
declare const getTransactionStatus: (account: Account, transaction: Transaction) => Promise<TransactionStatus>;
|
|
4
|
+
export default getTransactionStatus;
|
|
5
|
+
//# sourceMappingURL=js-getTransactionStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-getTransactionStatus.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAYtC,QAAA,MAAM,oBAAoB,YACf,OAAO,eACH,WAAW,KACvB,QAAQ,iBAAiB,CAgD3B,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.__esModule = true;
|
|
39
|
+
var errors_1 = require("@ledgerhq/errors");
|
|
40
|
+
var bignumber_js_1 = require("bignumber.js");
|
|
41
|
+
var address_1 = require("@celo/utils/lib/address");
|
|
42
|
+
var getTransactionStatus = function (account, transaction) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var errors, warnings, useAllAmount, estimatedFees, amount, totalSpent;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
errors = {};
|
|
46
|
+
warnings = {};
|
|
47
|
+
useAllAmount = !!transaction.useAllAmount;
|
|
48
|
+
if (account.freshAddress === transaction.recipient) {
|
|
49
|
+
errors.recipient = new errors_1.InvalidAddressBecauseDestinationIsAlsoSource();
|
|
50
|
+
}
|
|
51
|
+
if (!transaction.fees || !transaction.fees.gt(0)) {
|
|
52
|
+
errors.fees = new errors_1.FeeNotLoaded();
|
|
53
|
+
}
|
|
54
|
+
estimatedFees = transaction.fees || new bignumber_js_1.BigNumber(0);
|
|
55
|
+
amount = useAllAmount
|
|
56
|
+
? account.spendableBalance.minus(estimatedFees)
|
|
57
|
+
: new bignumber_js_1.BigNumber(transaction.amount);
|
|
58
|
+
if (amount.lte(0) && !transaction.useAllAmount) {
|
|
59
|
+
errors.amount = new errors_1.AmountRequired();
|
|
60
|
+
}
|
|
61
|
+
totalSpent = amount.plus(estimatedFees);
|
|
62
|
+
if (totalSpent.gt(account.spendableBalance)) {
|
|
63
|
+
errors.amount = new errors_1.NotEnoughBalance();
|
|
64
|
+
}
|
|
65
|
+
if (!errors.amount && account.spendableBalance.lt(estimatedFees)) {
|
|
66
|
+
errors.amount = new errors_1.NotEnoughBalance();
|
|
67
|
+
}
|
|
68
|
+
if (!transaction.recipient) {
|
|
69
|
+
errors.recipient = new errors_1.RecipientRequired();
|
|
70
|
+
}
|
|
71
|
+
else if (!(0, address_1.isValidAddress)(transaction.recipient)) {
|
|
72
|
+
errors.recipient = new errors_1.InvalidAddress("", {
|
|
73
|
+
currencyName: account.currency.name
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return [2 /*return*/, Promise.resolve({
|
|
77
|
+
errors: errors,
|
|
78
|
+
warnings: warnings,
|
|
79
|
+
estimatedFees: estimatedFees,
|
|
80
|
+
amount: amount,
|
|
81
|
+
totalSpent: totalSpent
|
|
82
|
+
})];
|
|
83
|
+
});
|
|
84
|
+
}); };
|
|
85
|
+
exports["default"] = getTransactionStatus;
|
|
86
|
+
//# sourceMappingURL=js-getTransactionStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-getTransactionStatus.js","sourceRoot":"","sources":["../../../src/families/celo/js-getTransactionStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2CAO0B;AAC1B,6CAAyC;AACzC,mDAAyD;AAEzD,IAAM,oBAAoB,GAAG,UAC3B,OAAgB,EAChB,WAAwB;;;QAElB,MAAM,GAAQ,EAAE,CAAC;QACjB,QAAQ,GAAQ,EAAE,CAAC;QACnB,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;QAEhD,IAAI,OAAO,CAAC,YAAY,KAAK,WAAW,CAAC,SAAS,EAAE;YAClD,MAAM,CAAC,SAAS,GAAG,IAAI,qDAA4C,EAAE,CAAC;SACvE;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAChD,MAAM,CAAC,IAAI,GAAG,IAAI,qBAAY,EAAE,CAAC;SAClC;QAEK,aAAa,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC;QAErD,MAAM,GAAG,YAAY;YACzB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,CAAC,CAAC,IAAI,wBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,uBAAc,EAAE,CAAC;SACtC;QAEK,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YAC3C,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;SACxC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE;YAChE,MAAM,CAAC,MAAM,GAAG,IAAI,yBAAgB,EAAE,CAAC;SACxC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,0BAAiB,EAAE,CAAC;SAC5C;aAAM,IAAI,CAAC,IAAA,wBAAc,EAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YACjD,MAAM,CAAC,SAAS,GAAG,IAAI,uBAAc,CAAC,EAAE,EAAE;gBACxC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;aACpC,CAAC,CAAC;SACJ;QAED,sBAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,MAAM,QAAA;gBACN,QAAQ,UAAA;gBACR,aAAa,eAAA;gBACb,MAAM,QAAA;gBACN,UAAU,YAAA;aACX,CAAC,EAAC;;KACJ,CAAC;AAEF,qBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Account } from "../../types";
|
|
2
|
+
import { Transaction } from "./types";
|
|
3
|
+
declare const prepareTransaction: (account: Account, transaction: Transaction) => Promise<Transaction>;
|
|
4
|
+
export default prepareTransaction;
|
|
5
|
+
//# sourceMappingURL=js-prepareTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAMtC,QAAA,MAAM,kBAAkB,YACb,OAAO,eACH,WAAW,yBAgBzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
exports.__esModule = true;
|
|
53
|
+
var js_getFeesForTransaction_1 = __importDefault(require("./js-getFeesForTransaction"));
|
|
54
|
+
var address_1 = require("@celo/utils/lib/address");
|
|
55
|
+
var sameFees = function (a, b) { return (!a || !b ? a === b : a.eq(b)); };
|
|
56
|
+
var prepareTransaction = function (account, transaction) { return __awaiter(void 0, void 0, void 0, function () {
|
|
57
|
+
var fees;
|
|
58
|
+
return __generator(this, function (_a) {
|
|
59
|
+
switch (_a.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
if (!transaction.recipient ||
|
|
62
|
+
(transaction.recipient && !(0, address_1.isValidAddress)(transaction.recipient))) {
|
|
63
|
+
return [2 /*return*/, transaction];
|
|
64
|
+
}
|
|
65
|
+
return [4 /*yield*/, (0, js_getFeesForTransaction_1["default"])({ account: account, transaction: transaction })];
|
|
66
|
+
case 1:
|
|
67
|
+
fees = _a.sent();
|
|
68
|
+
if (!sameFees(transaction.fees, fees)) {
|
|
69
|
+
return [2 /*return*/, __assign(__assign({}, transaction), { fees: fees })];
|
|
70
|
+
}
|
|
71
|
+
return [2 /*return*/, transaction];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}); };
|
|
75
|
+
exports["default"] = prepareTransaction;
|
|
76
|
+
//# sourceMappingURL=js-prepareTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-prepareTransaction.js","sourceRoot":"","sources":["../../../src/families/celo/js-prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wFAA+D;AAC/D,mDAAyD;AAEzD,IAAM,QAAQ,GAAG,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAA9B,CAA8B,CAAC;AAE1D,IAAM,kBAAkB,GAAG,UACzB,OAAgB,EAChB,WAAwB;;;;;gBAExB,IACE,CAAC,WAAW,CAAC,SAAS;oBACtB,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,IAAA,wBAAc,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EACjE;oBACA,sBAAO,WAAW,EAAC;iBACpB;gBAEY,qBAAM,IAAA,qCAAqB,EAAC,EAAE,OAAO,SAAA,EAAE,WAAW,aAAA,EAAE,CAAC,EAAA;;gBAA5D,IAAI,GAAG,SAAqD;gBAElE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBACrC,4CAAY,WAAW,KAAE,IAAI,MAAA,KAAG;iBACjC;gBAED,sBAAO,WAAW,EAAC;;;KACpB,CAAC;AAEF,qBAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import type { Transaction } from "./types";
|
|
3
|
+
import type { Account, SignOperationEvent } from "../../types";
|
|
4
|
+
/**
|
|
5
|
+
* Sign Transaction with Ledger hardware
|
|
6
|
+
*/
|
|
7
|
+
declare const signOperation: ({ account, deviceId, transaction, }: {
|
|
8
|
+
account: Account;
|
|
9
|
+
deviceId: any;
|
|
10
|
+
transaction: Transaction;
|
|
11
|
+
}) => Observable<SignOperationEvent>;
|
|
12
|
+
export default signOperation;
|
|
13
|
+
//# sourceMappingURL=js-signOperation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-signOperation.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAa,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgE1E;;GAEG;AACH,QAAA,MAAM,aAAa;aAKR,OAAO;cACN,GAAG;iBACA,WAAW;MACtB,WAAW,kBAAkB,CAmE9B,CAAC;AAEJ,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
exports.__esModule = true;
|
|
42
|
+
var bignumber_js_1 = require("bignumber.js");
|
|
43
|
+
var rxjs_1 = require("rxjs");
|
|
44
|
+
var errors_1 = require("@ledgerhq/errors");
|
|
45
|
+
var operation_1 = require("../../operation");
|
|
46
|
+
var hw_app_celo_1 = require("./hw-app-celo");
|
|
47
|
+
var js_buildTransaction_1 = __importDefault(require("./js-buildTransaction"));
|
|
48
|
+
var wallet_base_1 = require("@celo/wallet-base");
|
|
49
|
+
var tokens_1 = require("@celo/wallet-ledger/lib/tokens");
|
|
50
|
+
var deviceAccess_1 = require("../../hw/deviceAccess");
|
|
51
|
+
var buildOptimisticOperation = function (account, transaction, fee) {
|
|
52
|
+
var type = "OUT";
|
|
53
|
+
var value = new bignumber_js_1.BigNumber(transaction.amount).plus(fee);
|
|
54
|
+
var operation = {
|
|
55
|
+
id: (0, operation_1.encodeOperationId)(account.id, "", type),
|
|
56
|
+
hash: "",
|
|
57
|
+
type: type,
|
|
58
|
+
value: value,
|
|
59
|
+
fee: fee,
|
|
60
|
+
blockHash: null,
|
|
61
|
+
blockHeight: null,
|
|
62
|
+
senders: [account.freshAddress],
|
|
63
|
+
recipients: [transaction.recipient].filter(Boolean),
|
|
64
|
+
accountId: account.id,
|
|
65
|
+
date: new Date(),
|
|
66
|
+
extra: { additionalField: transaction.amount }
|
|
67
|
+
};
|
|
68
|
+
return operation;
|
|
69
|
+
};
|
|
70
|
+
var trimLeading0x = function (input) {
|
|
71
|
+
return input.startsWith("0x") ? input.slice(2) : input;
|
|
72
|
+
};
|
|
73
|
+
var parseSigningResponse = function (response, chainId) {
|
|
74
|
+
// EIP155
|
|
75
|
+
var sigV = parseInt(response.v, 16);
|
|
76
|
+
var eip155V = chainId * 2 + 35;
|
|
77
|
+
if (sigV !== eip155V && (sigV & eip155V) !== sigV) {
|
|
78
|
+
eip155V += 1;
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
s: Buffer.from(response.s, "hex"),
|
|
82
|
+
v: eip155V,
|
|
83
|
+
r: Buffer.from(response.r, "hex")
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Sign Transaction with Ledger hardware
|
|
88
|
+
*/
|
|
89
|
+
var signOperation = function (_a) {
|
|
90
|
+
var account = _a.account, deviceId = _a.deviceId, transaction = _a.transaction;
|
|
91
|
+
return (0, deviceAccess_1.withDevice)(deviceId)(function (transport) {
|
|
92
|
+
return new rxjs_1.Observable(function (o) {
|
|
93
|
+
var cancelled;
|
|
94
|
+
function main() {
|
|
95
|
+
var _a;
|
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
+
var celo, unsignedTransaction, chainId, to, rlpEncodedTransaction, tokenInfo, response, signature, encodedTransaction, operation;
|
|
98
|
+
return __generator(this, function (_b) {
|
|
99
|
+
switch (_b.label) {
|
|
100
|
+
case 0:
|
|
101
|
+
if (!transaction.fees) {
|
|
102
|
+
throw new errors_1.FeeNotLoaded();
|
|
103
|
+
}
|
|
104
|
+
celo = new hw_app_celo_1.CeloApp(transport);
|
|
105
|
+
return [4 /*yield*/, (0, js_buildTransaction_1["default"])(account, transaction)];
|
|
106
|
+
case 1:
|
|
107
|
+
unsignedTransaction = _b.sent();
|
|
108
|
+
chainId = unsignedTransaction.chainId, to = unsignedTransaction.to;
|
|
109
|
+
rlpEncodedTransaction = (0, wallet_base_1.rlpEncodedTx)(unsignedTransaction);
|
|
110
|
+
tokenInfo = (0, tokens_1.tokenInfoByAddressAndChainId)(to, chainId);
|
|
111
|
+
if (!tokenInfo) return [3 /*break*/, 3];
|
|
112
|
+
return [4 /*yield*/, celo.provideERC20TokenInformation(tokenInfo)];
|
|
113
|
+
case 2:
|
|
114
|
+
_b.sent();
|
|
115
|
+
_b.label = 3;
|
|
116
|
+
case 3:
|
|
117
|
+
o.next({ type: "device-signature-requested" });
|
|
118
|
+
return [4 /*yield*/, celo.signTransaction(account.freshAddressPath, trimLeading0x(rlpEncodedTransaction.rlpEncode))];
|
|
119
|
+
case 4:
|
|
120
|
+
response = _b.sent();
|
|
121
|
+
if (cancelled)
|
|
122
|
+
return [2 /*return*/];
|
|
123
|
+
signature = parseSigningResponse(response, chainId);
|
|
124
|
+
o.next({ type: "device-signature-granted" });
|
|
125
|
+
return [4 /*yield*/, (0, wallet_base_1.encodeTransaction)(rlpEncodedTransaction, signature)];
|
|
126
|
+
case 5:
|
|
127
|
+
encodedTransaction = _b.sent();
|
|
128
|
+
operation = buildOptimisticOperation(account, transaction, (_a = transaction.fees) !== null && _a !== void 0 ? _a : new bignumber_js_1.BigNumber(0));
|
|
129
|
+
o.next({
|
|
130
|
+
type: "signed",
|
|
131
|
+
signedOperation: {
|
|
132
|
+
operation: operation,
|
|
133
|
+
signature: encodedTransaction.raw,
|
|
134
|
+
expirationDate: null
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
return [2 /*return*/];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
main().then(function () { return o.complete(); }, function (e) { return o.error(e); });
|
|
143
|
+
return function () {
|
|
144
|
+
cancelled = true;
|
|
145
|
+
};
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
exports["default"] = signOperation;
|
|
150
|
+
//# sourceMappingURL=js-signOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-signOperation.js","sourceRoot":"","sources":["../../../src/families/celo/js-signOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Account } from "../../types";
|
|
2
|
+
export declare const scanAccounts: (arg0: {
|
|
3
|
+
currency: import("@ledgerhq/cryptoassets/lib/types").CryptoCurrency;
|
|
4
|
+
deviceId: string;
|
|
5
|
+
scheme?: "" | "ethM" | "ethMM" | "bch_on_bitcoin_segwit" | "legacy_on_bch" | "vertcoin_128" | "vertcoin_128_segwit" | "etcM" | "aeternity" | "tezbox" | "tezosbip44h" | "galleonL" | "tezboxL" | "taproot" | "native_segwit" | "segwit" | "segwit_on_legacy" | "legacy_on_segwit" | "legacy_on_native_segwit" | "segwit_unsplit" | "sep5" | "unsplit" | "polkadotbip44" | "filecoin" | "solanaMain" | "solanaSub" | null | undefined;
|
|
6
|
+
syncConfig: import("../../types").SyncConfig;
|
|
7
|
+
preferredNewAccountScheme?: "" | "ethM" | "ethMM" | "bch_on_bitcoin_segwit" | "legacy_on_bch" | "vertcoin_128" | "vertcoin_128_segwit" | "etcM" | "aeternity" | "tezbox" | "tezosbip44h" | "galleonL" | "tezboxL" | "taproot" | "native_segwit" | "segwit" | "segwit_on_legacy" | "legacy_on_segwit" | "legacy_on_native_segwit" | "segwit_unsplit" | "sep5" | "unsplit" | "polkadotbip44" | "filecoin" | "solanaMain" | "solanaSub" | undefined;
|
|
8
|
+
}) => import("rxjs").Observable<import("../../types").ScanAccountEvent>;
|
|
9
|
+
export declare const sync: (initialAccount: Account, syncConfig: import("../../types").SyncConfig) => import("rxjs").Observable<(arg0: Account) => Account>;
|
|
10
|
+
//# sourceMappingURL=js-synchronisation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-synchronisation.d.ts","sourceRoot":"","sources":["../../../src/families/celo/js-synchronisation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAsC3C,eAAO,MAAM,YAAY;;;;;;uEAAoC,CAAC;AAC9D,eAAO,MAAM,IAAI,kIAAsC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.__esModule = true;
|
|
50
|
+
exports.sync = exports.scanAccounts = void 0;
|
|
51
|
+
var account_1 = require("../../account");
|
|
52
|
+
var jsHelpers_1 = require("../../bridge/jsHelpers");
|
|
53
|
+
var api_1 = require("./api");
|
|
54
|
+
var getAccountShape = function (info) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
+
var address, currency, initialAccount, derivationMode, oldOperations, accountId, _a, blockHeight, balance, spendableBalance, newOperations, operations, shape;
|
|
56
|
+
return __generator(this, function (_b) {
|
|
57
|
+
switch (_b.label) {
|
|
58
|
+
case 0:
|
|
59
|
+
address = info.address, currency = info.currency, initialAccount = info.initialAccount, derivationMode = info.derivationMode;
|
|
60
|
+
oldOperations = (initialAccount === null || initialAccount === void 0 ? void 0 : initialAccount.operations) || [];
|
|
61
|
+
accountId = (0, account_1.encodeAccountId)({
|
|
62
|
+
type: "js",
|
|
63
|
+
version: "2",
|
|
64
|
+
currencyId: currency.id,
|
|
65
|
+
xpubOrAddress: address,
|
|
66
|
+
derivationMode: derivationMode
|
|
67
|
+
});
|
|
68
|
+
return [4 /*yield*/, (0, api_1.getAccountDetails)(address, accountId)];
|
|
69
|
+
case 1:
|
|
70
|
+
_a = _b.sent(), blockHeight = _a.blockHeight, balance = _a.balance, spendableBalance = _a.spendableBalance, newOperations = _a.operations;
|
|
71
|
+
operations = (0, jsHelpers_1.mergeOps)(oldOperations, newOperations);
|
|
72
|
+
shape = {
|
|
73
|
+
id: accountId,
|
|
74
|
+
balance: balance,
|
|
75
|
+
spendableBalance: spendableBalance,
|
|
76
|
+
operationsCount: operations.length,
|
|
77
|
+
blockHeight: blockHeight
|
|
78
|
+
};
|
|
79
|
+
return [2 /*return*/, __assign(__assign({}, shape), { operations: operations })];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}); };
|
|
83
|
+
var postSync = function (_initial, parent) {
|
|
84
|
+
return parent;
|
|
85
|
+
};
|
|
86
|
+
exports.scanAccounts = (0, jsHelpers_1.makeScanAccounts)(getAccountShape);
|
|
87
|
+
exports.sync = (0, jsHelpers_1.makeSync)(getAccountShape, postSync);
|
|
88
|
+
//# sourceMappingURL=js-synchronisation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-synchronisation.js","sourceRoot":"","sources":["../../../src/families/celo/js-synchronisation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAgD;AAEhD,oDAA8E;AAC9E,6BAA0C;AAE1C,IAAM,eAAe,GAAoB,UAAO,IAAI;;;;;gBAC1C,OAAO,GAA+C,IAAI,QAAnD,EAAE,QAAQ,GAAqC,IAAI,SAAzC,EAAE,cAAc,GAAqB,IAAI,eAAzB,EAAE,cAAc,GAAK,IAAI,eAAT,CAAU;gBAC7D,aAAa,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,KAAI,EAAE,CAAC;gBAEjD,SAAS,GAAG,IAAA,yBAAe,EAAC;oBAChC,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,GAAG;oBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,aAAa,EAAE,OAAO;oBACtB,cAAc,gBAAA;iBACf,CAAC,CAAC;gBAMC,qBAAM,IAAA,uBAAiB,EAAC,OAAO,EAAE,SAAS,CAAC,EAAA;;gBALzC,KAKF,SAA2C,EAJ7C,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,gBAAgB,sBAAA,EACJ,aAAa,gBAAA;gBAErB,UAAU,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBACpD,KAAK,GAAG;oBACZ,EAAE,EAAE,SAAS;oBACb,OAAO,SAAA;oBACP,gBAAgB,kBAAA;oBAChB,eAAe,EAAE,UAAU,CAAC,MAAM;oBAClC,WAAW,aAAA;iBACZ,CAAC;gBACF,4CAAY,KAAK,KAAE,UAAU,YAAA,KAAG;;;KACjC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAAC,QAAiB,EAAE,MAAe;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,4BAAgB,EAAC,eAAe,CAAC,CAAC;AACjD,QAAA,IAAI,GAAG,IAAA,oBAAQ,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../../src/families/celo/specs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;;;;AA8C/C,wBAEE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
var invariant_1 = __importDefault(require("invariant"));
|
|
7
|
+
var currencies_1 = require("../../currencies");
|
|
8
|
+
var specs_1 = require("../../bot/specs");
|
|
9
|
+
var devices_1 = require("@ledgerhq/devices");
|
|
10
|
+
var currency = (0, currencies_1.getCryptoCurrencyById)("celo");
|
|
11
|
+
var minimalAmount = (0, currencies_1.parseCurrencyUnit)(currency.units[0], "0.001");
|
|
12
|
+
var maxAccount = 3;
|
|
13
|
+
var celo = {
|
|
14
|
+
name: "Celo",
|
|
15
|
+
currency: currency,
|
|
16
|
+
appQuery: {
|
|
17
|
+
model: devices_1.DeviceModelId.nanoS,
|
|
18
|
+
appName: "Celo"
|
|
19
|
+
},
|
|
20
|
+
testTimeout: 2 * 60 * 1000,
|
|
21
|
+
mutations: [
|
|
22
|
+
{
|
|
23
|
+
name: "move 50% to another account",
|
|
24
|
+
maxRun: 2,
|
|
25
|
+
transaction: function (_a) {
|
|
26
|
+
var account = _a.account, siblings = _a.siblings, bridge = _a.bridge, maxSpendable = _a.maxSpendable;
|
|
27
|
+
(0, invariant_1["default"])(maxSpendable.gt(minimalAmount), "balance is too low");
|
|
28
|
+
var sibling = (0, specs_1.pickSiblings)(siblings, maxAccount);
|
|
29
|
+
var recipient = sibling.freshAddress;
|
|
30
|
+
var amount = maxSpendable.div(2).integerValue();
|
|
31
|
+
return {
|
|
32
|
+
transaction: bridge.createTransaction(account),
|
|
33
|
+
updates: [{ recipient: recipient }, { amount: amount }]
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "send max to another account",
|
|
39
|
+
maxRun: 1,
|
|
40
|
+
transaction: function (_a) {
|
|
41
|
+
var account = _a.account, siblings = _a.siblings, bridge = _a.bridge, maxSpendable = _a.maxSpendable;
|
|
42
|
+
(0, invariant_1["default"])(maxSpendable.gt(minimalAmount), "balance is too low");
|
|
43
|
+
var sibling = (0, specs_1.pickSiblings)(siblings, maxAccount);
|
|
44
|
+
var recipient = sibling.freshAddress;
|
|
45
|
+
return {
|
|
46
|
+
transaction: bridge.createTransaction(account),
|
|
47
|
+
updates: [{ recipient: recipient }, { useAllAmount: true }]
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
]
|
|
52
|
+
};
|
|
53
|
+
exports["default"] = {
|
|
54
|
+
celo: celo
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../../src/families/celo/specs.ts"],"names":[],"mappings":";;;;;AAAA,wDAAkC;AAElC,+CAA4E;AAC5E,yCAA+C;AAE/C,6CAAkD;AAElD,IAAM,QAAQ,GAAG,IAAA,kCAAqB,EAAC,MAAM,CAAC,CAAC;AAC/C,IAAM,aAAa,GAAG,IAAA,8BAAiB,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,IAAM,UAAU,GAAG,CAAC,CAAC;AAErB,IAAM,IAAI,GAAyB;IACjC,IAAI,EAAE,MAAM;IACZ,QAAQ,UAAA;IACR,QAAQ,EAAE;QACR,KAAK,EAAE,uBAAa,CAAC,KAAK;QAC1B,OAAO,EAAE,MAAM;KAChB;IACD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,SAAS,EAAE;QACT;YACE,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,UAAC,EAA2C;oBAAzC,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA;gBACrD,IAAA,sBAAS,EAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAChE,IAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACnD,IAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;gBACvC,IAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;gBAClD,OAAO;oBACL,WAAW,EAAE,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC;oBAC9C,OAAO,EAAE,CAAC,EAAE,SAAS,WAAA,EAAE,EAAE,EAAE,MAAM,QAAA,EAAE,CAAC;iBACrC,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,UAAC,EAA2C;oBAAzC,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA;gBACrD,IAAA,sBAAS,EAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAChE,IAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACnD,IAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;gBACvC,OAAO;oBACL,WAAW,EAAE,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC;oBAC9C,OAAO,EAAE,CAAC,EAAE,SAAS,WAAA,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;iBACjD,CAAC;YACJ,CAAC;SACF;KACF;CACF,CAAC;AAEF,qBAAe;IACb,IAAI,MAAA;CACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speculos-deviceActions.d.ts","sourceRoot":"","sources":["../../../src/families/celo/speculos-deviceActions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;;;;AA+C3C,wBAEE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var specs_1 = require("../../bot/specs");
|
|
4
|
+
var currencies_1 = require("../../currencies");
|
|
5
|
+
var acceptTransaction = (0, specs_1.deviceActionFlow)({
|
|
6
|
+
steps: [
|
|
7
|
+
{
|
|
8
|
+
title: "Review",
|
|
9
|
+
button: "Rr"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
title: "Amount",
|
|
13
|
+
button: "Rr",
|
|
14
|
+
expectedValue: function (_a) {
|
|
15
|
+
var account = _a.account, status = _a.status;
|
|
16
|
+
var formattedValue = "CELO " +
|
|
17
|
+
(0, currencies_1.formatCurrencyUnit)(account.unit, status.amount, {
|
|
18
|
+
disableRounding: true
|
|
19
|
+
});
|
|
20
|
+
if (!formattedValue.includes(".")) {
|
|
21
|
+
// if the value is pure integer, in the app it will automatically add an .0
|
|
22
|
+
return formattedValue + ".0";
|
|
23
|
+
}
|
|
24
|
+
return formattedValue;
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
title: "Address",
|
|
29
|
+
button: "Rr",
|
|
30
|
+
expectedValue: function (_a) {
|
|
31
|
+
var transaction = _a.transaction;
|
|
32
|
+
return transaction.recipient;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: "Max Fees",
|
|
37
|
+
button: "Rr",
|
|
38
|
+
expectedValue: function () { return "CELO"; }
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
title: "No Gateway Fee",
|
|
42
|
+
button: "Rr"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
title: "Accept",
|
|
46
|
+
button: "LRlr"
|
|
47
|
+
},
|
|
48
|
+
]
|
|
49
|
+
});
|
|
50
|
+
exports["default"] = {
|
|
51
|
+
acceptTransaction: acceptTransaction
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=speculos-deviceActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speculos-deviceActions.js","sourceRoot":"","sources":["../../../src/families/celo/speculos-deviceActions.ts"],"names":[],"mappings":";;AAEA,yCAAmD;AACnD,+CAAsD;AACtD,IAAM,iBAAiB,GAAmC,IAAA,wBAAgB,EAAC;IACzE,KAAK,EAAE;QACL;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;SACb;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,UAAC,EAAmB;oBAAjB,OAAO,aAAA,EAAE,MAAM,YAAA;gBAC/B,IAAM,cAAc,GAClB,OAAO;oBACP,IAAA,+BAAkB,EAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;wBAC9C,eAAe,EAAE,IAAI;qBACtB,CAAC,CAAC;gBAEL,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACjC,2EAA2E;oBAC3E,OAAO,cAAc,GAAG,IAAI,CAAC;iBAC9B;gBAED,OAAO,cAAc,CAAC;YACxB,CAAC;SACF;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,UAAC,EAAe;oBAAb,WAAW,iBAAA;gBAAO,OAAA,WAAW,CAAC,SAAS;YAArB,CAAqB;SAC1D;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,cAAM,OAAA,MAAM,EAAN,CAAM;SAC5B;QACD;YACE,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,IAAI;SACb;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM;SACf;KACF;CACF,CAAC,CAAC;AACH,qBAAe;IACb,iBAAiB,mBAAA;CAClB,CAAC"}
|