@ledgerhq/live-common 34.45.0-nightly.1 → 34.45.0-nightly.3
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__/test-helpers/bridge.d.ts.map +1 -1
- package/lib/__tests__/test-helpers/bridge.js +3 -1
- package/lib/__tests__/test-helpers/bridge.js.map +1 -1
- package/lib/braze/anonymousUsers.d.ts +1 -0
- package/lib/braze/anonymousUsers.d.ts.map +1 -1
- package/lib/braze/anonymousUsers.js +7 -5
- package/lib/braze/anonymousUsers.js.map +1 -1
- package/lib/bridge/generic-alpaca/accountBridge.d.ts +1 -1
- package/lib/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/accountBridge.js.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
- package/lib/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/index.js +4 -2
- package/lib/bridge/generic-alpaca/alpaca/index.js.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +4 -4
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js +10 -10
- package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
- package/lib/bridge/generic-alpaca/broadcast.d.ts +1 -1
- package/lib/bridge/generic-alpaca/broadcast.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/broadcast.js.map +1 -1
- package/lib/bridge/generic-alpaca/buildSubAccounts.d.ts +17 -0
- package/lib/bridge/generic-alpaca/buildSubAccounts.d.ts.map +1 -0
- package/lib/bridge/generic-alpaca/buildSubAccounts.js +75 -0
- package/lib/bridge/generic-alpaca/buildSubAccounts.js.map +1 -0
- package/lib/bridge/generic-alpaca/createTransaction.d.ts +17 -9
- package/lib/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/createTransaction.js +36 -10
- package/lib/bridge/generic-alpaca/createTransaction.js.map +1 -1
- package/lib/bridge/generic-alpaca/currencyBridge.d.ts +1 -1
- package/lib/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/currencyBridge.js.map +1 -1
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts +1 -1
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +9 -0
- package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/generic-alpaca/getAccountShape.d.ts +1 -1
- package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/getAccountShape.js +66 -37
- package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
- package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts +1 -1
- package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/getTransactionStatus.js +27 -15
- package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.d.ts +5 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/prepareTransaction.js +28 -5
- package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
- package/lib/bridge/generic-alpaca/signOperation.d.ts +1 -1
- package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signOperation.js +68 -13
- package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib/bridge/generic-alpaca/signer/index.d.ts +1 -1
- package/lib/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signer/index.js +38 -5
- package/lib/bridge/generic-alpaca/signer/index.js.map +1 -1
- package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -0
- package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/signer/signTransaction.js +8 -1
- package/lib/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
- package/lib/bridge/generic-alpaca/signer/types.d.ts +3 -0
- package/lib/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js +70 -46
- package/lib/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js.map +1 -1
- package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
- package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
- package/lib/bridge/generic-alpaca/tests/signOperation.test.js +25 -22
- package/lib/bridge/generic-alpaca/tests/signOperation.test.js.map +1 -1
- package/lib/bridge/generic-alpaca/tests/utils.test.d.ts.map +1 -0
- package/lib/bridge/generic-alpaca/{utils.test.js → tests/utils.test.js} +1 -1
- package/lib/bridge/generic-alpaca/tests/utils.test.js.map +1 -0
- package/lib/bridge/generic-alpaca/utils.d.ts +36 -1
- package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
- package/lib/bridge/generic-alpaca/utils.js +130 -14
- package/lib/bridge/generic-alpaca/utils.js.map +1 -1
- package/lib/bridge/impl.d.ts.map +1 -1
- package/lib/bridge/impl.js +5 -4
- package/lib/bridge/impl.js.map +1 -1
- package/lib/e2e/enum/Account.js +4 -4
- package/lib/e2e/enum/Account.js.map +1 -1
- package/lib/e2e/enum/AppInfos.d.ts +1 -1
- package/lib/e2e/enum/AppInfos.d.ts.map +1 -1
- package/lib/e2e/enum/AppInfos.js +1 -1
- package/lib/e2e/enum/AppInfos.js.map +1 -1
- package/lib/e2e/enum/Currency.d.ts.map +1 -1
- package/lib/e2e/enum/Currency.js +3 -3
- package/lib/e2e/enum/Currency.js.map +1 -1
- package/lib/e2e/speculos.js +2 -2
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/families/stellar/bridge/logic.d.ts +1 -1
- package/lib/families/stellar/bridge/logic.d.ts.map +1 -1
- package/lib/families/stellar/bridge/logic.js +1 -1
- package/lib/families/stellar/bridge/logic.js.map +1 -1
- package/lib/families/stellar/bridge/mock.js +2 -2
- package/lib/families/stellar/bridge/mock.js.map +1 -1
- package/lib/families/stellar/setup.d.ts +3 -6
- package/lib/families/stellar/setup.d.ts.map +1 -1
- package/lib/families/stellar/setup.js +3 -12
- package/lib/families/stellar/setup.js.map +1 -1
- package/lib/families/xrp/bridge/mock.js +2 -2
- package/lib/families/xrp/bridge/mock.js.map +1 -1
- package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib/featureFlags/defaultFeatures.js +4 -2
- package/lib/featureFlags/defaultFeatures.js.map +1 -1
- package/lib/generated/bridge/js.d.ts +0 -1
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +12 -14
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/generated/transaction.d.ts +1 -1
- package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.js +229 -14
- package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.js.map +1 -1
- package/lib/modularDrawer/enums.d.ts +0 -1
- package/lib/modularDrawer/enums.d.ts.map +1 -1
- package/lib/modularDrawer/enums.js +0 -1
- package/lib/modularDrawer/enums.js.map +1 -1
- package/lib/modularDrawer/useModularDrawerVisibility.d.ts +7 -1
- package/lib/modularDrawer/useModularDrawerVisibility.d.ts.map +1 -1
- package/lib/modularDrawer/useModularDrawerVisibility.js +18 -2
- package/lib/modularDrawer/useModularDrawerVisibility.js.map +1 -1
- package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
- package/lib-es/__tests__/test-helpers/bridge.js +3 -1
- package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
- package/lib-es/braze/anonymousUsers.d.ts +1 -0
- package/lib-es/braze/anonymousUsers.d.ts.map +1 -1
- package/lib-es/braze/anonymousUsers.js +5 -4
- package/lib-es/braze/anonymousUsers.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/accountBridge.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/index.js +4 -2
- package/lib-es/bridge/generic-alpaca/alpaca/index.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +4 -4
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js +10 -10
- package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/broadcast.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/broadcast.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/buildSubAccounts.d.ts +17 -0
- package/lib-es/bridge/generic-alpaca/buildSubAccounts.d.ts.map +1 -0
- package/lib-es/bridge/generic-alpaca/buildSubAccounts.js +65 -0
- package/lib-es/bridge/generic-alpaca/buildSubAccounts.js.map +1 -0
- package/lib-es/bridge/generic-alpaca/createTransaction.d.ts +17 -9
- package/lib-es/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/createTransaction.js +35 -9
- package/lib-es/bridge/generic-alpaca/createTransaction.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/currencyBridge.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +9 -0
- package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/getAccountShape.js +66 -37
- package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +27 -15
- package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts +5 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js +26 -4
- package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signOperation.js +65 -13
- package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/index.d.ts +1 -1
- package/lib-es/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/index.js +39 -6
- package/lib-es/bridge/generic-alpaca/signer/index.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -0
- package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/signTransaction.js +6 -0
- package/lib-es/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/signer/types.d.ts +3 -0
- package/lib-es/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js +70 -46
- package/lib-es/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
- package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/tests/signOperation.test.js +25 -22
- package/lib-es/bridge/generic-alpaca/tests/signOperation.test.js.map +1 -1
- package/lib-es/bridge/generic-alpaca/tests/utils.test.d.ts.map +1 -0
- package/lib-es/bridge/generic-alpaca/{utils.test.js → tests/utils.test.js} +1 -1
- package/lib-es/bridge/generic-alpaca/tests/utils.test.js.map +1 -0
- package/lib-es/bridge/generic-alpaca/utils.d.ts +36 -1
- package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
- package/lib-es/bridge/generic-alpaca/utils.js +130 -14
- package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
- package/lib-es/bridge/impl.d.ts.map +1 -1
- package/lib-es/bridge/impl.js +5 -4
- package/lib-es/bridge/impl.js.map +1 -1
- package/lib-es/e2e/enum/Account.js +4 -4
- package/lib-es/e2e/enum/Account.js.map +1 -1
- package/lib-es/e2e/enum/AppInfos.d.ts +1 -1
- package/lib-es/e2e/enum/AppInfos.d.ts.map +1 -1
- package/lib-es/e2e/enum/AppInfos.js +1 -1
- package/lib-es/e2e/enum/AppInfos.js.map +1 -1
- package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
- package/lib-es/e2e/enum/Currency.js +3 -3
- package/lib-es/e2e/enum/Currency.js.map +1 -1
- package/lib-es/e2e/speculos.js +2 -2
- package/lib-es/e2e/speculos.js.map +1 -1
- package/lib-es/families/stellar/bridge/logic.d.ts +1 -1
- package/lib-es/families/stellar/bridge/logic.d.ts.map +1 -1
- package/lib-es/families/stellar/bridge/logic.js +1 -1
- package/lib-es/families/stellar/bridge/logic.js.map +1 -1
- package/lib-es/families/stellar/bridge/mock.js +2 -2
- package/lib-es/families/stellar/bridge/mock.js.map +1 -1
- package/lib-es/families/stellar/setup.d.ts +3 -6
- package/lib-es/families/stellar/setup.d.ts.map +1 -1
- package/lib-es/families/stellar/setup.js +2 -10
- package/lib-es/families/stellar/setup.js.map +1 -1
- package/lib-es/families/xrp/bridge/mock.js +2 -2
- package/lib-es/families/xrp/bridge/mock.js.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
- package/lib-es/featureFlags/defaultFeatures.js +4 -2
- package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
- package/lib-es/generated/bridge/js.d.ts +0 -1
- package/lib-es/generated/bridge/js.d.ts.map +1 -1
- package/lib-es/generated/bridge/js.js +0 -2
- package/lib-es/generated/bridge/js.js.map +1 -1
- package/lib-es/generated/transaction.d.ts +1 -1
- package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.js +229 -14
- package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.js.map +1 -1
- package/lib-es/modularDrawer/enums.d.ts +0 -1
- package/lib-es/modularDrawer/enums.d.ts.map +1 -1
- package/lib-es/modularDrawer/enums.js +0 -1
- package/lib-es/modularDrawer/enums.js.map +1 -1
- package/lib-es/modularDrawer/useModularDrawerVisibility.d.ts +7 -1
- package/lib-es/modularDrawer/useModularDrawerVisibility.d.ts.map +1 -1
- package/lib-es/modularDrawer/useModularDrawerVisibility.js +18 -2
- package/lib-es/modularDrawer/useModularDrawerVisibility.js.map +1 -1
- package/package.json +50 -48
- package/src/__tests__/test-helpers/bridge.ts +3 -1
- package/src/braze/anonymousUsers.ts +7 -4
- package/src/bridge/generic-alpaca/accountBridge.ts +1 -4
- package/src/bridge/generic-alpaca/alpaca/index.ts +7 -2
- package/src/bridge/generic-alpaca/alpaca/network/network-alpaca.ts +17 -22
- package/src/bridge/generic-alpaca/broadcast.ts +1 -4
- package/src/bridge/generic-alpaca/buildSubAccounts.ts +110 -0
- package/src/bridge/generic-alpaca/createTransaction.ts +48 -18
- package/src/bridge/generic-alpaca/currencyBridge.ts +1 -1
- package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +13 -4
- package/src/bridge/generic-alpaca/getAccountShape.ts +84 -46
- package/src/bridge/generic-alpaca/getTransactionStatus.ts +46 -22
- package/src/bridge/generic-alpaca/prepareTransaction.ts +41 -7
- package/src/bridge/generic-alpaca/signOperation.ts +88 -18
- package/src/bridge/generic-alpaca/signer/index.ts +43 -7
- package/src/bridge/generic-alpaca/signer/signTransaction.ts +11 -0
- package/src/bridge/generic-alpaca/signer/types.ts +1 -0
- package/src/bridge/generic-alpaca/tests/estimateMaxSpendable.test.ts +72 -47
- package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +1 -1
- package/src/bridge/generic-alpaca/tests/signOperation.test.ts +28 -26
- package/src/bridge/generic-alpaca/{utils.test.ts → tests/utils.test.ts} +1 -1
- package/src/bridge/generic-alpaca/utils.ts +158 -18
- package/src/bridge/impl.ts +5 -4
- package/src/e2e/enum/Account.ts +4 -4
- package/src/e2e/enum/AppInfos.ts +1 -1
- package/src/e2e/enum/Currency.ts +3 -13
- package/src/e2e/speculos.ts +2 -2
- package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +569 -2068
- package/src/families/stellar/bridge/logic.ts +1 -1
- package/src/families/stellar/bridge/mock.ts +2 -2
- package/src/families/stellar/setup.ts +2 -22
- package/src/families/xrp/bridge/mock.ts +2 -2
- package/src/featureFlags/defaultFeatures.ts +4 -2
- package/src/generated/bridge/js.ts +0 -2
- package/src/modularDrawer/__test__/useModularDrawerVisibility.test.ts +345 -14
- package/src/modularDrawer/enums.ts +0 -1
- package/src/modularDrawer/useModularDrawerVisibility.ts +26 -2
- package/lib/bridge/generic-alpaca/utils.test.d.ts.map +0 -1
- package/lib/bridge/generic-alpaca/utils.test.js.map +0 -1
- package/lib/families/canton/bridge.integration.test.d.ts +0 -2
- package/lib/families/canton/bridge.integration.test.d.ts.map +0 -1
- package/lib/families/canton/bridge.integration.test.js +0 -7
- package/lib/families/canton/bridge.integration.test.js.map +0 -1
- package/lib-es/bridge/generic-alpaca/utils.test.d.ts.map +0 -1
- package/lib-es/bridge/generic-alpaca/utils.test.js.map +0 -1
- package/lib-es/families/canton/bridge.integration.test.d.ts +0 -2
- package/lib-es/families/canton/bridge.integration.test.d.ts.map +0 -1
- package/lib-es/families/canton/bridge.integration.test.js +0 -5
- package/lib-es/families/canton/bridge.integration.test.js.map +0 -1
- package/src/families/canton/bridge.integration.test.ts +0 -6
- /package/lib/bridge/generic-alpaca/{utils.test.d.ts → tests/utils.test.d.ts} +0 -0
- /package/lib-es/bridge/generic-alpaca/{utils.test.d.ts → tests/utils.test.d.ts} +0 -0
@@ -1,23 +1,56 @@
|
|
1
1
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
2
2
|
import { Account, Operation, OperationType, TransactionCommon } from "@ledgerhq/types-live";
|
3
|
+
import BigNumber from "bignumber.js";
|
4
|
+
import { fromBigNumberToBigInt } from "@ledgerhq/coin-framework/utils";
|
3
5
|
import {
|
4
6
|
Balance,
|
5
7
|
Operation as CoreOperation,
|
6
8
|
TransactionIntent,
|
7
9
|
} from "@ledgerhq/coin-framework/api/types";
|
8
|
-
import BigNumber from "bignumber.js";
|
9
|
-
import { fromBigNumberToBigInt } from "@ledgerhq/coin-framework/utils";
|
10
10
|
|
11
11
|
export function extractBalance(balances: Balance[], type: string): Balance {
|
12
|
-
return
|
12
|
+
return (
|
13
|
+
balances.find(balance => balance.asset.type === type) ?? {
|
14
|
+
asset: { type },
|
15
|
+
value: 0n,
|
16
|
+
}
|
17
|
+
);
|
13
18
|
}
|
14
19
|
|
15
20
|
export function adaptCoreOperationToLiveOperation(accountId: string, op: CoreOperation): Operation {
|
16
|
-
|
17
|
-
|
21
|
+
const opType = op.type as OperationType;
|
22
|
+
|
23
|
+
const extra: {
|
24
|
+
assetReference?: string;
|
25
|
+
assetOwner?: string;
|
26
|
+
assetAmount?: string | undefined;
|
27
|
+
ledgerOpType?: string | undefined;
|
28
|
+
memo?: string | undefined;
|
29
|
+
} = {};
|
30
|
+
|
31
|
+
if (op.details?.ledgerOpType !== undefined) {
|
32
|
+
extra.ledgerOpType = op.details.ledgerOpType as string;
|
33
|
+
}
|
34
|
+
|
35
|
+
if (op.details?.assetAmount !== undefined) {
|
36
|
+
extra.assetAmount = op.details.assetAmount as string;
|
37
|
+
}
|
38
|
+
|
39
|
+
if (op.asset?.type !== "native") {
|
40
|
+
extra.assetReference =
|
41
|
+
"assetReference" in (op.asset ?? {}) ? (op.asset as any).assetReference : "";
|
42
|
+
extra.assetOwner = "assetOwner" in (op.asset ?? {}) ? (op.asset as any).assetOwner : "";
|
43
|
+
}
|
44
|
+
if (op.details?.memo) {
|
45
|
+
extra.memo = op.details.memo as string;
|
46
|
+
}
|
47
|
+
const res = {
|
48
|
+
id: extra.ledgerOpType
|
49
|
+
? encodeOperationId(accountId, op.tx.hash, extra.ledgerOpType)
|
50
|
+
: encodeOperationId(accountId, op.tx.hash, op.type),
|
18
51
|
hash: op.tx.hash,
|
19
52
|
accountId,
|
20
|
-
type:
|
53
|
+
type: opType,
|
21
54
|
value: new BigNumber(op.value.toString()),
|
22
55
|
fee: new BigNumber(op.tx.fees.toString()),
|
23
56
|
blockHash: op.tx.block.hash,
|
@@ -26,21 +59,94 @@ export function adaptCoreOperationToLiveOperation(accountId: string, op: CoreOpe
|
|
26
59
|
recipients: op.recipients,
|
27
60
|
date: op.tx.date,
|
28
61
|
transactionSequenceNumber: op.details?.sequence as number,
|
29
|
-
|
62
|
+
hasFailed: (op.details as unknown as { status?: string })?.status === "failed",
|
63
|
+
extra,
|
30
64
|
};
|
65
|
+
|
66
|
+
return res;
|
31
67
|
}
|
32
68
|
|
69
|
+
/**
|
70
|
+
* Converts a transaction object into a `TransactionIntent` object, which is used to represent
|
71
|
+
* the intent of a transaction in a standardized format.
|
72
|
+
*
|
73
|
+
* @template MemoType - The type of memo supported by the transaction, defaults to `MemoNotSupported`.
|
74
|
+
*
|
75
|
+
* @param account - The account initiating the transaction. Contains details such as the sender's address.
|
76
|
+
* @param transaction - The transaction object containing details about the operation to be performed.
|
77
|
+
* - `assetOwner` (optional): The issuer of the asset, if applicable.
|
78
|
+
* - `assetReference` (optional): The code of the asset, if applicable.
|
79
|
+
* - `mode` (optional): The mode of the transaction, e.g., "changetrust" or "send".
|
80
|
+
* - `fees` (optional): The fees associated with the transaction.
|
81
|
+
* - `memoType` (optional): The type of memo to attach to the transaction.
|
82
|
+
* - `memoValue` (optional): The value of the memo to attach to the transaction.
|
83
|
+
*
|
84
|
+
* @returns A `TransactionIntent` object containing the standardized representation of the transaction.
|
85
|
+
* - Includes details such as type, sender, recipient, amount, fees, asset, and an optional memo.
|
86
|
+
* - If `assetReference` and `assetOwner` are provided, the asset is represented as a token.
|
87
|
+
* - If `memoType` and `memoValue` are provided, a memo is included; otherwise, a default memo of type "NO_MEMO" is added.
|
88
|
+
*
|
89
|
+
* @throws An error if the transaction mode is unsupported.
|
90
|
+
*/
|
33
91
|
export function transactionToIntent(
|
34
92
|
account: Account,
|
35
|
-
transaction: TransactionCommon
|
36
|
-
|
37
|
-
|
38
|
-
|
93
|
+
transaction: TransactionCommon & {
|
94
|
+
assetOwner?: string;
|
95
|
+
assetReference?: string;
|
96
|
+
mode?: string;
|
97
|
+
fees?: bigint | null | undefined;
|
98
|
+
memoType?: string;
|
99
|
+
memoValue?: string;
|
100
|
+
useAllAmount?: boolean;
|
101
|
+
},
|
102
|
+
): TransactionIntent<any> & { memo?: { type: string; value?: string } } {
|
103
|
+
let transactionType = "Payment"; // NOTE: assuming payment by default here, can be changed based on transaction.mode
|
104
|
+
if (transaction.mode) {
|
105
|
+
switch (transaction.mode) {
|
106
|
+
case "changeTrust":
|
107
|
+
transactionType = "changeTrust";
|
108
|
+
break;
|
109
|
+
case "send":
|
110
|
+
transactionType = "send";
|
111
|
+
break;
|
112
|
+
default:
|
113
|
+
throw new Error(`Unsupported transaction mode: ${transaction.mode}`);
|
114
|
+
}
|
115
|
+
}
|
116
|
+
const res: TransactionIntent & { memo?: { type: string; value?: string } } = {
|
117
|
+
fees: transaction?.fees ? transaction.fees : null,
|
118
|
+
type: transactionType,
|
39
119
|
sender: account.freshAddress,
|
40
120
|
recipient: transaction.recipient,
|
41
121
|
amount: fromBigNumberToBigInt(transaction.amount, BigInt(0)),
|
42
|
-
asset: { type: "native" },
|
122
|
+
asset: { type: "native", name: account.currency.name, unit: account.currency.units[0] },
|
123
|
+
useAllAmount: !!transaction.useAllAmount,
|
43
124
|
};
|
125
|
+
if (transaction.assetReference && transaction.assetOwner) {
|
126
|
+
const { subAccountId } = transaction;
|
127
|
+
const { subAccounts } = account;
|
128
|
+
|
129
|
+
const tokenAccount = !subAccountId
|
130
|
+
? null
|
131
|
+
: subAccounts && subAccounts.find(ta => ta.id === subAccountId);
|
132
|
+
|
133
|
+
res.asset = {
|
134
|
+
type: tokenAccount?.token.tokenType ?? "token",
|
135
|
+
assetReference: transaction.assetReference,
|
136
|
+
name: tokenAccount?.token.name ?? transaction.assetReference, // NOTE: for stellar, assetReference = tokenAccount.name, this is futureproofing
|
137
|
+
unit: account.currency.units[0],
|
138
|
+
assetOwner: transaction.assetOwner,
|
139
|
+
};
|
140
|
+
}
|
141
|
+
if (transaction.memoType && transaction.memoValue) {
|
142
|
+
res.memo = {
|
143
|
+
type: transaction.memoType,
|
144
|
+
value: transaction.memoValue,
|
145
|
+
};
|
146
|
+
} else {
|
147
|
+
res.memo = { type: "NO_MEMO" };
|
148
|
+
}
|
149
|
+
return res;
|
44
150
|
}
|
45
151
|
|
46
152
|
export const buildOptimisticOperation = (
|
@@ -48,12 +154,17 @@ export const buildOptimisticOperation = (
|
|
48
154
|
transaction: TransactionCommon,
|
49
155
|
sequenceNumber?: number,
|
50
156
|
): Operation => {
|
51
|
-
|
52
|
-
|
157
|
+
const type = transaction["mode"] === "changeTrust" ? "OPT_IN" : "OUT";
|
158
|
+
const fees = BigInt(transaction["fees"]?.toString() || "0");
|
159
|
+
const { subAccountId } = transaction;
|
160
|
+
const { subAccounts } = account;
|
161
|
+
|
162
|
+
const operation: Operation = {
|
163
|
+
id: encodeOperationId(account.id, "", type),
|
53
164
|
hash: "",
|
54
|
-
type:
|
55
|
-
value: transaction.amount,
|
56
|
-
fee:
|
165
|
+
type: type,
|
166
|
+
value: subAccountId ? new BigNumber(fees.toString()) : transaction.amount, // match old behavior
|
167
|
+
fee: new BigNumber(fees.toString()),
|
57
168
|
blockHash: null,
|
58
169
|
blockHeight: null,
|
59
170
|
senders: [account.freshAddress.toString()],
|
@@ -61,6 +172,35 @@ export const buildOptimisticOperation = (
|
|
61
172
|
transactionSequenceNumber: sequenceNumber ?? 0,
|
62
173
|
accountId: account.id,
|
63
174
|
date: new Date(),
|
64
|
-
extra: {
|
175
|
+
extra: {
|
176
|
+
ledgerOpType: type,
|
177
|
+
blockTime: new Date(),
|
178
|
+
index: "0",
|
179
|
+
},
|
65
180
|
};
|
181
|
+
|
182
|
+
const tokenAccount = !subAccountId
|
183
|
+
? null
|
184
|
+
: subAccounts && subAccounts.find(ta => ta.id === subAccountId);
|
185
|
+
if (tokenAccount && subAccountId) {
|
186
|
+
operation.subOperations = [
|
187
|
+
{
|
188
|
+
id: `${subAccountId}--OUT`,
|
189
|
+
hash: "",
|
190
|
+
type: "OUT",
|
191
|
+
value: transaction.useAllAmount ? tokenAccount.balance : transaction.amount,
|
192
|
+
fee: new BigNumber(0),
|
193
|
+
blockHash: null,
|
194
|
+
blockHeight: null,
|
195
|
+
senders: [account.freshAddress],
|
196
|
+
recipients: [transaction.recipient],
|
197
|
+
accountId: subAccountId,
|
198
|
+
date: new Date(),
|
199
|
+
extra: {
|
200
|
+
ledgerOpType: type,
|
201
|
+
},
|
202
|
+
},
|
203
|
+
];
|
204
|
+
}
|
205
|
+
return operation;
|
66
206
|
};
|
package/src/bridge/impl.ts
CHANGED
@@ -26,11 +26,12 @@ import { getCryptoAssetsStore, setCryptoAssetsStore } from "./crypto-assets";
|
|
26
26
|
|
27
27
|
const alpacaized = {
|
28
28
|
xrp: true,
|
29
|
+
stellar: true,
|
29
30
|
};
|
30
31
|
|
31
32
|
// let accountBridgeInstance: AccountBridge<any> | null = null;
|
32
33
|
const bridgeCache: Record<string, AccountBridge<any>> = {};
|
33
|
-
|
34
|
+
const currencyBridgeCache: Record<string, CurrencyBridge> = {};
|
34
35
|
|
35
36
|
export const getCurrencyBridge = (currency: CryptoCurrency): CurrencyBridge => {
|
36
37
|
if (getEnv("MOCK")) {
|
@@ -42,10 +43,10 @@ export const getCurrencyBridge = (currency: CryptoCurrency): CurrencyBridge => {
|
|
42
43
|
}
|
43
44
|
|
44
45
|
if (alpacaized[currency.family]) {
|
45
|
-
if (!
|
46
|
-
|
46
|
+
if (!currencyBridgeCache[currency.family]) {
|
47
|
+
currencyBridgeCache[currency.family] = getAlpacaCurrencyBridge(currency.family, "local");
|
47
48
|
}
|
48
|
-
return
|
49
|
+
return currencyBridgeCache[currency.family];
|
49
50
|
}
|
50
51
|
|
51
52
|
const jsBridge = jsBridges[currency.family];
|
package/src/e2e/enum/Account.ts
CHANGED
@@ -94,25 +94,25 @@ export class Account {
|
|
94
94
|
|
95
95
|
static readonly BSC_1 = new Account(
|
96
96
|
Currency.BSC,
|
97
|
-
"
|
97
|
+
"BNB Chain 1",
|
98
98
|
"0x4BE2E2B8872AA298D6d123b9211B53E41f611566",
|
99
99
|
0,
|
100
100
|
);
|
101
101
|
static readonly BSC_BUSD_1 = new Account(
|
102
102
|
Currency.BSC_BUSD,
|
103
|
-
"
|
103
|
+
"BNB Chain 1",
|
104
104
|
"0x4BE2E2B8872AA298D6d123b9211B53E41f611566",
|
105
105
|
0,
|
106
106
|
);
|
107
107
|
static readonly BSC_BUSD_2 = new Account(
|
108
108
|
Currency.BSC_BUSD,
|
109
|
-
"
|
109
|
+
"BNB Chain 2",
|
110
110
|
"0xa1baa625c5E6A9304cB7AcD86d2fee6B710eC3eB",
|
111
111
|
1,
|
112
112
|
);
|
113
113
|
static readonly BSC_SHIBA = new Account(
|
114
114
|
Currency.BSC_SHIBA,
|
115
|
-
"
|
115
|
+
"BNB Chain 1",
|
116
116
|
"0x4BE2E2B8872AA298D6d123b9211B53E41f611566",
|
117
117
|
0,
|
118
118
|
);
|
package/src/e2e/enum/AppInfos.ts
CHANGED
@@ -43,7 +43,7 @@ export class AppInfos {
|
|
43
43
|
|
44
44
|
static readonly POLYGON = new AppInfos("Polygon");
|
45
45
|
|
46
|
-
static readonly
|
46
|
+
static readonly BNB_CHAIN = new AppInfos("BNB Chain");
|
47
47
|
|
48
48
|
static readonly TON = new AppInfos("Ton");
|
49
49
|
|
package/src/e2e/enum/Currency.ts
CHANGED
@@ -63,12 +63,7 @@ export class Currency {
|
|
63
63
|
static readonly ATOM = new Currency("Cosmos", "ATOM", "cosmos", AppInfos.COSMOS);
|
64
64
|
static readonly XTZ = new Currency("Tezos", "XTZ", "tezos", AppInfos.TEZOS);
|
65
65
|
static readonly POL = new Currency("Polygon", "POL", "polygon", AppInfos.POLYGON);
|
66
|
-
static readonly BSC = new Currency(
|
67
|
-
"Binance Smart Chain",
|
68
|
-
"BNB",
|
69
|
-
"bsc",
|
70
|
-
AppInfos.BINANCE_SMART_CHAIN,
|
71
|
-
);
|
66
|
+
static readonly BSC = new Currency("BNB Chain", "BNB", "bsc", AppInfos.BNB_CHAIN);
|
72
67
|
static readonly TON = new Currency("TON", "TON", "ton", AppInfos.TON);
|
73
68
|
static readonly ETH_USDT = new Currency(
|
74
69
|
"Tether USD",
|
@@ -98,14 +93,9 @@ export class Currency {
|
|
98
93
|
"Binance-Peg BUSD Token",
|
99
94
|
"BUSD",
|
100
95
|
"bsc",
|
101
|
-
AppInfos.
|
102
|
-
);
|
103
|
-
static readonly BSC_SHIBA = new Currency(
|
104
|
-
"Shiba Inu",
|
105
|
-
"SHIB",
|
106
|
-
"bsc",
|
107
|
-
AppInfos.BINANCE_SMART_CHAIN,
|
96
|
+
AppInfos.BNB_CHAIN,
|
108
97
|
);
|
98
|
+
static readonly BSC_SHIBA = new Currency("Shiba Inu", "SHIB", "bsc", AppInfos.BNB_CHAIN);
|
109
99
|
static readonly POL_DAI = new Currency(
|
110
100
|
"(PoS) Dai Stablecoin",
|
111
101
|
"DAI",
|
package/src/e2e/speculos.ts
CHANGED
@@ -260,7 +260,7 @@ export const specs: Specs = {
|
|
260
260
|
},
|
261
261
|
dependency: "",
|
262
262
|
},
|
263
|
-
|
263
|
+
BNB_Chain: {
|
264
264
|
currency: getCryptoCurrencyById("bsc"),
|
265
265
|
appQuery: {
|
266
266
|
model: getSpeculosModel(),
|
@@ -620,7 +620,7 @@ export async function goToSettings() {
|
|
620
620
|
|
621
621
|
const APP_LABEL_MAP = new Map<AppInfos, [string, string]>([
|
622
622
|
[AppInfos.ETHEREUM, [DeviceLabels.VERIFY_ETHEREUM, DeviceLabels.CONFIRM]],
|
623
|
-
[AppInfos.
|
623
|
+
[AppInfos.BNB_CHAIN, [DeviceLabels.VERIFY_BSC, DeviceLabels.CONFIRM]],
|
624
624
|
[AppInfos.POLYGON, [DeviceLabels.VERIFY_POLYGON, DeviceLabels.CONFIRM]],
|
625
625
|
[AppInfos.SOLANA, [DeviceLabels.PUBKEY, DeviceLabels.APPROVE]],
|
626
626
|
[AppInfos.POLKADOT, [DeviceLabels.PLEASE_REVIEW, DeviceLabels.CAPS_APPROVE]],
|