@ledgerhq/coin-hedera 1.15.0-nightly.20251126023856 → 1.15.0-nightly.20251126160702
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/CHANGELOG.md +10 -8
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +6 -2
- package/lib/api/index.js.map +1 -1
- package/lib/bridge/broadcast.js +1 -1
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib/bridge/buildOptimisticOperation.js +80 -15
- package/lib/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib/bridge/estimateMaxSpendable.js +5 -2
- package/lib/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +70 -13
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/index.js +1 -1
- package/lib/bridge/index.js.map +1 -1
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +40 -7
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +19 -2
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/synchronisation.d.ts +2 -0
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +101 -30
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/bridge/utils.d.ts +35 -2
- package/lib/bridge/utils.d.ts.map +1 -1
- package/lib/bridge/utils.js +215 -16
- package/lib/bridge/utils.js.map +1 -1
- package/lib/constants.d.ts +22 -2
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +42 -2
- package/lib/constants.js.map +1 -1
- package/lib/deviceTransactionConfig.d.ts +1 -1
- package/lib/deviceTransactionConfig.d.ts.map +1 -1
- package/lib/deviceTransactionConfig.js +8 -0
- package/lib/deviceTransactionConfig.js.map +1 -1
- package/lib/errors.d.ts +3 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +2 -1
- package/lib/errors.js.map +1 -1
- package/lib/logic/craftTransaction.d.ts +4 -4
- package/lib/logic/craftTransaction.d.ts.map +1 -1
- package/lib/logic/craftTransaction.js +46 -5
- package/lib/logic/craftTransaction.js.map +1 -1
- package/lib/logic/estimateFees.d.ts +2 -4
- package/lib/logic/estimateFees.d.ts.map +1 -1
- package/lib/logic/estimateFees.js +45 -5
- package/lib/logic/estimateFees.js.map +1 -1
- package/lib/logic/listOperations.d.ts.map +1 -1
- package/lib/logic/listOperations.js +7 -3
- package/lib/logic/listOperations.js.map +1 -1
- package/lib/logic/utils.d.ts +24 -2
- package/lib/logic/utils.d.ts.map +1 -1
- package/lib/logic/utils.js +66 -13
- package/lib/logic/utils.js.map +1 -1
- package/lib/network/api.d.ts +12 -1
- package/lib/network/api.d.ts.map +1 -1
- package/lib/network/api.js +91 -19
- package/lib/network/api.js.map +1 -1
- package/lib/network/rpc.d.ts.map +1 -1
- package/lib/network/rpc.js +1 -0
- package/lib/network/rpc.js.map +1 -1
- package/lib/network/thirdweb.d.ts +21 -0
- package/lib/network/thirdweb.d.ts.map +1 -0
- package/lib/network/thirdweb.js +72 -0
- package/lib/network/thirdweb.js.map +1 -0
- package/lib/network/utils.d.ts +4 -1
- package/lib/network/utils.d.ts.map +1 -1
- package/lib/network/utils.js +53 -1
- package/lib/network/utils.js.map +1 -1
- package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
- package/lib/test/bridgeDatasetTest.js +4 -4
- package/lib/test/bridgeDatasetTest.js.map +1 -1
- package/lib/test/fixtures/account.fixture.js +1 -1
- package/lib/test/fixtures/account.fixture.js.map +1 -1
- package/lib/test/fixtures/common.fixture.d.ts +12 -0
- package/lib/test/fixtures/common.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/common.fixture.js +66 -0
- package/lib/test/fixtures/common.fixture.js.map +1 -0
- package/lib/test/fixtures/currency.fixture.d.ts +3 -1
- package/lib/test/fixtures/currency.fixture.d.ts.map +1 -1
- package/lib/test/fixtures/currency.fixture.js +63 -16
- package/lib/test/fixtures/currency.fixture.js.map +1 -1
- package/lib/test/fixtures/mirror.fixture.d.ts +3 -1
- package/lib/test/fixtures/mirror.fixture.d.ts.map +1 -1
- package/lib/test/fixtures/mirror.fixture.js +12 -1
- package/lib/test/fixtures/mirror.fixture.js.map +1 -1
- package/lib/test/fixtures/thirdweb.fixture.d.ts +3 -0
- package/lib/test/fixtures/thirdweb.fixture.d.ts.map +1 -0
- package/lib/test/fixtures/thirdweb.fixture.js +34 -0
- package/lib/test/fixtures/thirdweb.fixture.js.map +1 -0
- package/lib/transaction.d.ts.map +1 -1
- package/lib/transaction.js +2 -0
- package/lib/transaction.js.map +1 -1
- package/lib/types/alpaca.d.ts +5 -1
- package/lib/types/alpaca.d.ts.map +1 -1
- package/lib/types/bridge.d.ts +6 -1
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +2 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/logic.d.ts +39 -0
- package/lib/types/logic.d.ts.map +1 -0
- package/lib/types/logic.js +3 -0
- package/lib/types/logic.js.map +1 -0
- package/lib/types/mirror.d.ts +29 -0
- package/lib/types/mirror.d.ts.map +1 -1
- package/lib/types/thirdweb.d.ts +34 -0
- package/lib/types/thirdweb.d.ts.map +1 -0
- package/lib/types/thirdweb.js +3 -0
- package/lib/types/thirdweb.js.map +1 -0
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.js +7 -3
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/bridge/broadcast.js +2 -2
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.js +83 -18
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js +5 -2
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +73 -16
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/index.js +2 -2
- package/lib-es/bridge/index.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +42 -9
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/signOperation.js +21 -4
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/synchronisation.d.ts +2 -0
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +97 -27
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/bridge/utils.d.ts +35 -2
- package/lib-es/bridge/utils.d.ts.map +1 -1
- package/lib-es/bridge/utils.js +211 -16
- package/lib-es/bridge/utils.js.map +1 -1
- package/lib-es/constants.d.ts +22 -2
- package/lib-es/constants.d.ts.map +1 -1
- package/lib-es/constants.js +38 -1
- package/lib-es/constants.js.map +1 -1
- package/lib-es/deviceTransactionConfig.d.ts +1 -1
- package/lib-es/deviceTransactionConfig.d.ts.map +1 -1
- package/lib-es/deviceTransactionConfig.js +8 -0
- package/lib-es/deviceTransactionConfig.js.map +1 -1
- package/lib-es/errors.d.ts +3 -0
- package/lib-es/errors.d.ts.map +1 -1
- package/lib-es/errors.js +1 -0
- package/lib-es/errors.js.map +1 -1
- package/lib-es/logic/craftTransaction.d.ts +4 -4
- package/lib-es/logic/craftTransaction.d.ts.map +1 -1
- package/lib-es/logic/craftTransaction.js +48 -7
- package/lib-es/logic/craftTransaction.js.map +1 -1
- package/lib-es/logic/estimateFees.d.ts +2 -4
- package/lib-es/logic/estimateFees.d.ts.map +1 -1
- package/lib-es/logic/estimateFees.js +47 -7
- package/lib-es/logic/estimateFees.js.map +1 -1
- package/lib-es/logic/listOperations.d.ts.map +1 -1
- package/lib-es/logic/listOperations.js +7 -3
- package/lib-es/logic/listOperations.js.map +1 -1
- package/lib-es/logic/utils.d.ts +24 -2
- package/lib-es/logic/utils.d.ts.map +1 -1
- package/lib-es/logic/utils.js +63 -13
- package/lib-es/logic/utils.js.map +1 -1
- package/lib-es/network/api.d.ts +12 -1
- package/lib-es/network/api.d.ts.map +1 -1
- package/lib-es/network/api.js +91 -19
- package/lib-es/network/api.js.map +1 -1
- package/lib-es/network/rpc.d.ts.map +1 -1
- package/lib-es/network/rpc.js +1 -0
- package/lib-es/network/rpc.js.map +1 -1
- package/lib-es/network/thirdweb.d.ts +21 -0
- package/lib-es/network/thirdweb.d.ts.map +1 -0
- package/lib-es/network/thirdweb.js +66 -0
- package/lib-es/network/thirdweb.js.map +1 -0
- package/lib-es/network/utils.d.ts +4 -1
- package/lib-es/network/utils.d.ts.map +1 -1
- package/lib-es/network/utils.js +49 -0
- package/lib-es/network/utils.js.map +1 -1
- package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
- package/lib-es/test/bridgeDatasetTest.js +4 -4
- package/lib-es/test/bridgeDatasetTest.js.map +1 -1
- package/lib-es/test/fixtures/account.fixture.js +2 -2
- package/lib-es/test/fixtures/account.fixture.js.map +1 -1
- package/lib-es/test/fixtures/common.fixture.d.ts +12 -0
- package/lib-es/test/fixtures/common.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/common.fixture.js +57 -0
- package/lib-es/test/fixtures/common.fixture.js.map +1 -0
- package/lib-es/test/fixtures/currency.fixture.d.ts +3 -1
- package/lib-es/test/fixtures/currency.fixture.d.ts.map +1 -1
- package/lib-es/test/fixtures/currency.fixture.js +59 -14
- package/lib-es/test/fixtures/currency.fixture.js.map +1 -1
- package/lib-es/test/fixtures/mirror.fixture.d.ts +3 -1
- package/lib-es/test/fixtures/mirror.fixture.d.ts.map +1 -1
- package/lib-es/test/fixtures/mirror.fixture.js +9 -0
- package/lib-es/test/fixtures/mirror.fixture.js.map +1 -1
- package/lib-es/test/fixtures/thirdweb.fixture.d.ts +3 -0
- package/lib-es/test/fixtures/thirdweb.fixture.d.ts.map +1 -0
- package/lib-es/test/fixtures/thirdweb.fixture.js +30 -0
- package/lib-es/test/fixtures/thirdweb.fixture.js.map +1 -0
- package/lib-es/transaction.d.ts.map +1 -1
- package/lib-es/transaction.js +2 -0
- package/lib-es/transaction.js.map +1 -1
- package/lib-es/types/alpaca.d.ts +5 -1
- package/lib-es/types/alpaca.d.ts.map +1 -1
- package/lib-es/types/bridge.d.ts +6 -1
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/lib-es/types/index.d.ts +2 -0
- package/lib-es/types/index.d.ts.map +1 -1
- package/lib-es/types/index.js +2 -0
- package/lib-es/types/index.js.map +1 -1
- package/lib-es/types/logic.d.ts +39 -0
- package/lib-es/types/logic.d.ts.map +1 -0
- package/lib-es/types/logic.js +2 -0
- package/lib-es/types/logic.js.map +1 -0
- package/lib-es/types/mirror.d.ts +29 -0
- package/lib-es/types/mirror.d.ts.map +1 -1
- package/lib-es/types/thirdweb.d.ts +34 -0
- package/lib-es/types/thirdweb.d.ts.map +1 -0
- package/lib-es/types/thirdweb.js +2 -0
- package/lib-es/types/thirdweb.js.map +1 -0
- package/package.json +9 -8
- package/src/api/index.integ.test.ts +11 -8
- package/src/api/index.ts +10 -3
- package/src/bridge/broadcast.ts +2 -2
- package/src/bridge/buildOptimisticOperation.integration.test.ts +70 -19
- package/src/bridge/buildOptimisticOperation.ts +98 -20
- package/src/bridge/estimateMaxSpendable.ts +5 -5
- package/src/bridge/getTransactionStatus.test.ts +57 -12
- package/src/bridge/getTransactionStatus.ts +88 -15
- package/src/bridge/index.ts +2 -2
- package/src/bridge/js-estimateMaxSpendable.integration.test.ts +12 -9
- package/src/bridge/prepareTransaction.test.ts +3 -1
- package/src/bridge/prepareTransaction.ts +45 -10
- package/src/bridge/signOperation.ts +23 -5
- package/src/bridge/synchronisation.test.ts +67 -0
- package/src/bridge/synchronisation.ts +114 -34
- package/src/bridge/utils.integration.test.ts +486 -180
- package/src/bridge/utils.test.ts +404 -0
- package/src/bridge/utils.ts +330 -27
- package/src/constants.ts +47 -2
- package/src/deviceTransactionConfig.ts +10 -1
- package/src/errors.ts +3 -0
- package/src/logic/craftTransaction.test.ts +49 -9
- package/src/logic/craftTransaction.ts +76 -11
- package/src/logic/estimateFees.test.ts +180 -31
- package/src/logic/estimateFees.ts +68 -7
- package/src/logic/getAssetFromToken.test.ts +2 -2
- package/src/logic/getBalance.test.ts +18 -57
- package/src/logic/getTokenFromAsset.test.ts +2 -2
- package/src/logic/listOperations.ts +9 -5
- package/src/logic/utils.test.ts +157 -69
- package/src/logic/utils.ts +75 -13
- package/src/network/api.test.ts +211 -3
- package/src/network/api.ts +118 -24
- package/src/network/rpc.test.ts +1 -0
- package/src/network/rpc.ts +1 -0
- package/src/network/thirdweb.test.ts +188 -0
- package/src/network/thirdweb.ts +101 -0
- package/src/network/utils.test.ts +364 -164
- package/src/network/utils.ts +83 -1
- package/src/test/bridgeDatasetTest.ts +4 -5
- package/src/test/fixtures/account.fixture.ts +2 -2
- package/src/test/fixtures/common.fixture.ts +74 -0
- package/src/test/fixtures/currency.fixture.ts +66 -14
- package/src/test/fixtures/mirror.fixture.ts +23 -1
- package/src/test/fixtures/thirdweb.fixture.ts +33 -0
- package/src/transaction.ts +2 -0
- package/src/types/alpaca.ts +8 -1
- package/src/types/bridge.ts +6 -1
- package/src/types/index.ts +2 -0
- package/src/types/logic.ts +44 -0
- package/src/types/mirror.ts +35 -0
- package/src/types/thirdweb.ts +36 -0
package/lib-es/constants.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
1
2
|
/**
|
|
2
3
|
* Internal types to distinguish custom Hedera transaction behaviors.
|
|
3
4
|
* These can be used in transaction.mode and used to route specific preparation logic.
|
|
@@ -12,12 +13,18 @@ export declare enum HEDERA_TRANSACTION_MODES {
|
|
|
12
13
|
export declare enum HEDERA_OPERATION_TYPES {
|
|
13
14
|
CryptoTransfer = "CryptoTransfer",
|
|
14
15
|
TokenTransfer = "TokenTransfer",
|
|
15
|
-
TokenAssociate = "TokenAssociate"
|
|
16
|
+
TokenAssociate = "TokenAssociate",
|
|
17
|
+
ContractCall = "ContractCall"
|
|
16
18
|
}
|
|
17
19
|
export declare const TINYBAR_SCALE = 8;
|
|
18
|
-
export declare const ESTIMATED_FEE_SAFETY_RATE = 2;
|
|
19
20
|
export declare const DEFAULT_TINYBAR_FEE = 150200;
|
|
20
21
|
export declare const SYNTHETIC_BLOCK_WINDOW_SECONDS = 10;
|
|
22
|
+
export declare const ERC20_TRANSFER_EVENT_TOPIC = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
23
|
+
export declare const ESTIMATED_GAS_SAFETY_RATE = 1.2;
|
|
24
|
+
export declare const ESTIMATED_FEE_SAFETY_RATE = 2;
|
|
25
|
+
export declare const DEFAULT_GAS_LIMIT: BigNumber;
|
|
26
|
+
export declare const DEFAULT_GAS_PRICE_TINYBARS: BigNumber;
|
|
27
|
+
export declare const HEDERA_MAINNET_CHAIN_ID = 295;
|
|
21
28
|
/**
|
|
22
29
|
* https://docs.hedera.com/hedera/networks/mainnet/fees
|
|
23
30
|
*
|
|
@@ -31,5 +38,18 @@ export declare const BASE_USD_FEE_BY_OPERATION_TYPE: {
|
|
|
31
38
|
readonly CryptoTransfer: number;
|
|
32
39
|
readonly TokenTransfer: number;
|
|
33
40
|
readonly TokenAssociate: number;
|
|
41
|
+
readonly ContractCall: 0;
|
|
34
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Array of supported ERC20 token IDs for Hedera.
|
|
45
|
+
*
|
|
46
|
+
* This is a temporary solution to allow bypassing deprecated methods.
|
|
47
|
+
* It is essential to update this list in the future to ensure support
|
|
48
|
+
* for other erc20 tokens.
|
|
49
|
+
*/
|
|
50
|
+
export declare const SUPPORTED_ERC20_TOKENS: {
|
|
51
|
+
id: string;
|
|
52
|
+
contractAddress: string;
|
|
53
|
+
tokenId: string;
|
|
54
|
+
}[];
|
|
35
55
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,wBAAwB;IAClC,IAAI,SAAS;IACb,cAAc,oBAAoB;CACnC;AAED;;GAEG;AACH,oBAAY,sBAAsB;IAChC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;;GAGG;AACH,oBAAY,wBAAwB;IAClC,IAAI,SAAS;IACb,cAAc,oBAAoB;CACnC;AAED;;GAEG;AACH,oBAAY,sBAAsB;IAChC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,aAAa,IAAI,CAAC;AAG/B,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,eAAO,MAAM,0BAA0B,uEAC+B,CAAC;AAEvE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,iBAAiB,WAAyB,CAAC;AAExD,eAAO,MAAM,0BAA0B,WAAqB,CAAC;AAE7D,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B;;;;;CAKgB,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;GAqBlC,CAAC"}
|
package/lib-es/constants.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
1
2
|
/**
|
|
2
3
|
* Internal types to distinguish custom Hedera transaction behaviors.
|
|
3
4
|
* These can be used in transaction.mode and used to route specific preparation logic.
|
|
@@ -15,12 +16,18 @@ export var HEDERA_OPERATION_TYPES;
|
|
|
15
16
|
HEDERA_OPERATION_TYPES["CryptoTransfer"] = "CryptoTransfer";
|
|
16
17
|
HEDERA_OPERATION_TYPES["TokenTransfer"] = "TokenTransfer";
|
|
17
18
|
HEDERA_OPERATION_TYPES["TokenAssociate"] = "TokenAssociate";
|
|
19
|
+
HEDERA_OPERATION_TYPES["ContractCall"] = "ContractCall";
|
|
18
20
|
})(HEDERA_OPERATION_TYPES || (HEDERA_OPERATION_TYPES = {}));
|
|
19
21
|
export const TINYBAR_SCALE = 8;
|
|
20
|
-
export const ESTIMATED_FEE_SAFETY_RATE = 2;
|
|
21
22
|
// old value moved from https://github.com/LedgerHQ/ledger-live/blob/8447b68b7c6f1e7ccd4aa9db4da0e6c8de36a88e/libs/coin-modules/coin-hedera/src/bridge/utils.ts#L77
|
|
22
23
|
export const DEFAULT_TINYBAR_FEE = 150200;
|
|
23
24
|
export const SYNTHETIC_BLOCK_WINDOW_SECONDS = 10;
|
|
25
|
+
export const ERC20_TRANSFER_EVENT_TOPIC = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
26
|
+
export const ESTIMATED_GAS_SAFETY_RATE = 1.2;
|
|
27
|
+
export const ESTIMATED_FEE_SAFETY_RATE = 2;
|
|
28
|
+
export const DEFAULT_GAS_LIMIT = new BigNumber(100_000);
|
|
29
|
+
export const DEFAULT_GAS_PRICE_TINYBARS = new BigNumber(100);
|
|
30
|
+
export const HEDERA_MAINNET_CHAIN_ID = 295;
|
|
24
31
|
/**
|
|
25
32
|
* https://docs.hedera.com/hedera/networks/mainnet/fees
|
|
26
33
|
*
|
|
@@ -34,5 +41,35 @@ export const BASE_USD_FEE_BY_OPERATION_TYPE = {
|
|
|
34
41
|
[HEDERA_OPERATION_TYPES.CryptoTransfer]: 0.0001 * 10 ** TINYBAR_SCALE,
|
|
35
42
|
[HEDERA_OPERATION_TYPES.TokenTransfer]: 0.001 * 10 ** TINYBAR_SCALE,
|
|
36
43
|
[HEDERA_OPERATION_TYPES.TokenAssociate]: 0.05 * 10 ** TINYBAR_SCALE,
|
|
44
|
+
[HEDERA_OPERATION_TYPES.ContractCall]: 0, // Contract call fees are based on gas used and are handled separately
|
|
37
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Array of supported ERC20 token IDs for Hedera.
|
|
48
|
+
*
|
|
49
|
+
* This is a temporary solution to allow bypassing deprecated methods.
|
|
50
|
+
* It is essential to update this list in the future to ensure support
|
|
51
|
+
* for other erc20 tokens.
|
|
52
|
+
*/
|
|
53
|
+
export const SUPPORTED_ERC20_TOKENS = [
|
|
54
|
+
{
|
|
55
|
+
id: "hedera/erc20/weth_0xca367694cdac8f152e33683bb36cc9d6a73f1ef2",
|
|
56
|
+
contractAddress: "0xca367694cdac8f152e33683bb36cc9d6a73f1ef2",
|
|
57
|
+
tokenId: "0.0.9470869",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "hedera/erc20/bonzo_atoken_usdc_0xb7687538c7f4cad022d5e97cc778d0b46457c5db",
|
|
61
|
+
contractAddress: "0xb7687538c7f4cad022d5e97cc778d0b46457c5db",
|
|
62
|
+
tokenId: "0.0.7308496",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "hedera/erc20/audd_0x39ceba2b467fa987546000eb5d1373acf1f3a2e1",
|
|
66
|
+
contractAddress: "0x39ceba2b467fa987546000eb5d1373acf1f3a2e1",
|
|
67
|
+
tokenId: "0.0.8317070",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: "hedera/erc20/wrapped_btc_0xd7d4d91d64a6061fa00a94e2b3a2d2a5fb677849",
|
|
71
|
+
contractAddress: "0xd7d4d91d64a6061fa00a94e2b3a2d2a5fb677849",
|
|
72
|
+
tokenId: "0.0.10047837",
|
|
73
|
+
},
|
|
74
|
+
];
|
|
38
75
|
//# sourceMappingURL=constants.js.map
|
package/lib-es/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,8DAAkC,CAAA;AACpC,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,QAGnC;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,yCAAa,CAAA;IACb,8DAAkC,CAAA;AACpC,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,QAGnC;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,2DAAiC,CAAA;IACjC,yDAA+B,CAAA;IAC/B,2DAAiC,CAAA;IACjC,uDAA6B,CAAA;AAC/B,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B,mKAAmK;AACnK,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD,MAAM,CAAC,MAAM,0BAA0B,GACrC,oEAAoE,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,aAAa;IACrE,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,EAAE,IAAI,aAAa;IACnE,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,aAAa;IACnE,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,sEAAsE;CACvD,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC;QACE,EAAE,EAAE,8DAA8D;QAClE,eAAe,EAAE,4CAA4C;QAC7D,OAAO,EAAE,aAAa;KACvB;IACD;QACE,EAAE,EAAE,2EAA2E;QAC/E,eAAe,EAAE,4CAA4C;QAC7D,OAAO,EAAE,aAAa;KACvB;IACD;QACE,EAAE,EAAE,8DAA8D;QAClE,eAAe,EAAE,4CAA4C;QAC7D,OAAO,EAAE,aAAa;KACvB;IACD;QACE,EAAE,EAAE,qEAAqE;QACzE,eAAe,EAAE,4CAA4C;QAC7D,OAAO,EAAE,cAAc;KACxB;CACF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AccountLike, Account } from "@ledgerhq/types-live";
|
|
2
1
|
import type { CommonDeviceTransactionField as DeviceTransactionField } from "@ledgerhq/coin-framework/transaction/common";
|
|
2
|
+
import type { AccountLike, Account } from "@ledgerhq/types-live";
|
|
3
3
|
import type { Transaction, TransactionStatus } from "./types";
|
|
4
4
|
declare function getDeviceTransactionConfig({ transaction, status: { estimatedFees }, }: {
|
|
5
5
|
account: AccountLike;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,IAAI,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAC1H,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,iBAAe,0BAA0B,CAAC,EACxC,WAAW,EACX,MAAM,EAAE,EAAE,aAAa,EAAE,GAC1B,EAAE;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CA8CzC;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HEDERA_TRANSACTION_MODES } from "./constants";
|
|
1
2
|
import { isTokenAssociateTransaction } from "./logic/utils";
|
|
2
3
|
async function getDeviceTransactionConfig({ transaction, status: { estimatedFees }, }) {
|
|
3
4
|
const fields = [];
|
|
@@ -26,6 +27,13 @@ async function getDeviceTransactionConfig({ transaction, status: { estimatedFees
|
|
|
26
27
|
label: "Fees",
|
|
27
28
|
});
|
|
28
29
|
}
|
|
30
|
+
if (transaction.mode === HEDERA_TRANSACTION_MODES.Send && transaction.gasLimit) {
|
|
31
|
+
fields.push({
|
|
32
|
+
type: "text",
|
|
33
|
+
label: "Gas Limit",
|
|
34
|
+
value: transaction.gasLimit.toString(),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
29
37
|
if (transaction.memo) {
|
|
30
38
|
fields.push({
|
|
31
39
|
type: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAG5D,KAAK,UAAU,0BAA0B,CAAC,EACxC,WAAW,EACX,MAAM,EAAE,EAAE,aAAa,EAAE,GAM1B;IACC,MAAM,MAAM,GAAkC,EAAE,CAAC;IAEjD,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,IAAI,2BAA2B,CAAC,WAAW,CAAC;YAAE,OAAO,iBAAiB,CAAC;aAClE,IAAI,WAAW,CAAC,YAAY;YAAE,OAAO,cAAc,CAAC;;YACpD,OAAO,UAAU,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,WAAW,CAAC,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAG5D,KAAK,UAAU,0BAA0B,CAAC,EACxC,WAAW,EACX,MAAM,EAAE,EAAE,aAAa,EAAE,GAM1B;IACC,MAAM,MAAM,GAAkC,EAAE,CAAC;IAEjD,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,IAAI,2BAA2B,CAAC,WAAW,CAAC;YAAE,OAAO,iBAAiB,CAAC;aAClE,IAAI,WAAW,CAAC,YAAY;YAAE,OAAO,cAAc,CAAC;;YACpD,OAAO,UAAU,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,wBAAwB,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/E,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,WAAW,CAAC,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe,0BAA0B,CAAC"}
|
package/lib-es/errors.d.ts
CHANGED
|
@@ -13,4 +13,7 @@ export declare const HederaRecipientTokenAssociationRequired: import("@ledgerhq/
|
|
|
13
13
|
export declare const HederaRecipientTokenAssociationUnverified: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
14
14
|
[key: string]: unknown;
|
|
15
15
|
}>;
|
|
16
|
+
export declare const HederaRecipientEvmAddressVerificationRequired: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}>;
|
|
16
19
|
//# sourceMappingURL=errors.d.ts.map
|
package/lib-es/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;EAAkD,CAAC;AACrF,eAAO,MAAM,8BAA8B;;EAE1C,CAAC;AACF,eAAO,MAAM,qCAAqC;;EAEjD,CAAC;AACF,eAAO,MAAM,uCAAuC;;EAEnD,CAAC;AACF,eAAO,MAAM,yCAAyC;;EAErD,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;EAAkD,CAAC;AACrF,eAAO,MAAM,8BAA8B;;EAE1C,CAAC;AACF,eAAO,MAAM,qCAAqC;;EAEjD,CAAC;AACF,eAAO,MAAM,uCAAuC;;EAEnD,CAAC;AACF,eAAO,MAAM,yCAAyC;;EAErD,CAAC;AACF,eAAO,MAAM,6CAA6C;;EAEzD,CAAC"}
|
package/lib-es/errors.js
CHANGED
|
@@ -4,4 +4,5 @@ export const HederaRecipientInvalidChecksum = createCustomErrorClass("HederaReci
|
|
|
4
4
|
export const HederaInsufficientFundsForAssociation = createCustomErrorClass("HederaInsufficientFundsForAssociation");
|
|
5
5
|
export const HederaRecipientTokenAssociationRequired = createCustomErrorClass("HederaRecipientTokenAssociationRequired");
|
|
6
6
|
export const HederaRecipientTokenAssociationUnverified = createCustomErrorClass("HederaRecipientTokenAssociationUnverified");
|
|
7
|
+
export const HederaRecipientEvmAddressVerificationRequired = createCustomErrorClass("HederaRecipientEvmAddressVerificationRequired");
|
|
7
8
|
//# sourceMappingURL=errors.js.map
|
package/lib-es/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAClE,gCAAgC,CACjC,CAAC;AACF,MAAM,CAAC,MAAM,qCAAqC,GAAG,sBAAsB,CACzE,uCAAuC,CACxC,CAAC;AACF,MAAM,CAAC,MAAM,uCAAuC,GAAG,sBAAsB,CAC3E,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,yCAAyC,GAAG,sBAAsB,CAC7E,2CAA2C,CAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAClE,gCAAgC,CACjC,CAAC;AACF,MAAM,CAAC,MAAM,qCAAqC,GAAG,sBAAsB,CACzE,uCAAuC,CACxC,CAAC;AACF,MAAM,CAAC,MAAM,uCAAuC,GAAG,sBAAsB,CAC3E,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,yCAAyC,GAAG,sBAAsB,CAC7E,2CAA2C,CAC5C,CAAC;AACF,MAAM,CAAC,MAAM,6CAA6C,GAAG,sBAAsB,CACjF,+CAA+C,CAChD,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TokenAssociateTransaction, TransferTransaction } from "@hashgraph/sdk";
|
|
1
|
+
import { ContractExecuteTransaction, TokenAssociateTransaction, TransferTransaction } from "@hashgraph/sdk";
|
|
2
2
|
import type { FeeEstimation, TransactionIntent } from "@ledgerhq/coin-framework/api/index";
|
|
3
|
-
import type { HederaMemo } from "../types";
|
|
4
|
-
export declare function craftTransaction(txIntent: TransactionIntent<HederaMemo>, customFees?: FeeEstimation): Promise<{
|
|
5
|
-
tx: TransferTransaction | TokenAssociateTransaction;
|
|
3
|
+
import type { HederaMemo, HederaTxData } from "../types";
|
|
4
|
+
export declare function craftTransaction(txIntent: TransactionIntent<HederaMemo, HederaTxData>, customFees?: FeeEstimation): Promise<{
|
|
5
|
+
tx: TransferTransaction | ContractExecuteTransaction | TokenAssociateTransaction;
|
|
6
6
|
serializedTx: string;
|
|
7
7
|
}>;
|
|
8
8
|
//# sourceMappingURL=craftTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,0BAA0B,EAI1B,yBAAyB,EAEzB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE3F,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAmJzD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,EACrD,UAAU,CAAC,EAAE,aAAa;;;GA4E3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
2
|
import invariant from "invariant";
|
|
3
|
-
import { AccountId, Hbar, TokenAssociateTransaction, TransactionId, TransferTransaction, } from "@hashgraph/sdk";
|
|
4
|
-
import { HEDERA_TRANSACTION_MODES } from "../constants";
|
|
3
|
+
import { AccountId, ContractExecuteTransaction, ContractFunctionParameters, ContractId, Hbar, TokenAssociateTransaction, TransactionId, TransferTransaction, } from "@hashgraph/sdk";
|
|
4
|
+
import { DEFAULT_GAS_LIMIT, HEDERA_TRANSACTION_MODES } from "../constants";
|
|
5
5
|
import { serializeTransaction } from "./utils";
|
|
6
6
|
// avoid "sign" prompt loop by having only one node (one transaction)
|
|
7
7
|
// https://github.com/LedgerHQ/ledger-live/pull/72/commits/1e942687d4301660e43e0c4b5419fcfa2733b290
|
|
@@ -21,9 +21,9 @@ async function buildUnsignedCoinTransaction({ account, transaction, }) {
|
|
|
21
21
|
}
|
|
22
22
|
return tx.freeze();
|
|
23
23
|
}
|
|
24
|
-
async function
|
|
24
|
+
async function buildUnsignedHTSTokenTransaction({ account, transaction, }) {
|
|
25
25
|
const accountId = account.accountId;
|
|
26
|
-
const tokenId = transaction.
|
|
26
|
+
const tokenId = transaction.tokenAddress;
|
|
27
27
|
const tx = new TransferTransaction()
|
|
28
28
|
.setNodeAccountIds(nodeAccountIds)
|
|
29
29
|
.setTransactionId(TransactionId.generate(accountId))
|
|
@@ -35,6 +35,28 @@ async function buildUnsignedTokenTransaction({ account, transaction, }) {
|
|
|
35
35
|
}
|
|
36
36
|
return tx.freeze();
|
|
37
37
|
}
|
|
38
|
+
async function buildUnsignedERC20TokenTransaction({ account, transaction, }) {
|
|
39
|
+
const accountId = AccountId.fromString(account.accountId);
|
|
40
|
+
const contractId = ContractId.fromEvmAddress(0, 0, transaction.tokenAddress);
|
|
41
|
+
const recipientEvmAddress = AccountId.fromString(transaction.recipient).toSolidityAddress();
|
|
42
|
+
const gas = transaction.gasLimit.toNumber();
|
|
43
|
+
// create function parameters for ERC20 transfer function
|
|
44
|
+
// transfer(address to, uint256 amount) returns (bool)
|
|
45
|
+
const functionParameters = new ContractFunctionParameters()
|
|
46
|
+
.addAddress(recipientEvmAddress)
|
|
47
|
+
.addUint256(transaction.amount.toNumber());
|
|
48
|
+
const tx = new ContractExecuteTransaction()
|
|
49
|
+
.setNodeAccountIds(nodeAccountIds)
|
|
50
|
+
.setTransactionId(TransactionId.generate(accountId))
|
|
51
|
+
.setTransactionMemo(transaction.memo ?? "")
|
|
52
|
+
.setContractId(contractId)
|
|
53
|
+
.setGas(gas)
|
|
54
|
+
.setFunction("transfer", functionParameters);
|
|
55
|
+
if (transaction.maxFee) {
|
|
56
|
+
tx.setMaxTransactionFee(Hbar.fromTinybars(transaction.maxFee.toNumber()));
|
|
57
|
+
}
|
|
58
|
+
return tx.freeze();
|
|
59
|
+
}
|
|
38
60
|
async function buildTokenAssociateTransaction({ account, transaction, }) {
|
|
39
61
|
const accountId = account.accountId;
|
|
40
62
|
const tx = new TokenAssociateTransaction()
|
|
@@ -66,18 +88,37 @@ export async function craftTransaction(txIntent, customFees) {
|
|
|
66
88
|
},
|
|
67
89
|
});
|
|
68
90
|
}
|
|
69
|
-
else if (txIntent.type === HEDERA_TRANSACTION_MODES.Send && txIntent.asset.type
|
|
91
|
+
else if (txIntent.type === HEDERA_TRANSACTION_MODES.Send && txIntent.asset.type === "hts") {
|
|
70
92
|
invariant("assetReference" in txIntent.asset, "hedera: no assetReference in token transfer");
|
|
71
93
|
const amount = new BigNumber(txIntent.amount.toString());
|
|
72
|
-
tx = await
|
|
94
|
+
tx = await buildUnsignedHTSTokenTransaction({
|
|
73
95
|
account,
|
|
74
96
|
transaction: {
|
|
75
97
|
type: txIntent.type,
|
|
76
|
-
|
|
98
|
+
tokenAddress: txIntent.asset.assetReference,
|
|
99
|
+
amount,
|
|
100
|
+
recipient: txIntent.recipient,
|
|
101
|
+
memo: txIntent.memo.value,
|
|
102
|
+
maxFee: customFees ? new BigNumber(customFees.value.toString()) : undefined,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else if (txIntent.type === HEDERA_TRANSACTION_MODES.Send && txIntent.asset.type === "erc20") {
|
|
107
|
+
invariant("assetReference" in txIntent.asset, "hedera: no assetReference in token transfer");
|
|
108
|
+
const amount = new BigNumber(txIntent.amount.toString());
|
|
109
|
+
const gasLimit = "data" in txIntent && txIntent.data.gasLimit
|
|
110
|
+
? new BigNumber(txIntent.data.gasLimit.toString())
|
|
111
|
+
: DEFAULT_GAS_LIMIT;
|
|
112
|
+
tx = await buildUnsignedERC20TokenTransaction({
|
|
113
|
+
account,
|
|
114
|
+
transaction: {
|
|
115
|
+
type: txIntent.type,
|
|
116
|
+
tokenAddress: txIntent.asset.assetReference,
|
|
77
117
|
amount,
|
|
78
118
|
recipient: txIntent.recipient,
|
|
79
119
|
memo: txIntent.memo.value,
|
|
80
120
|
maxFee: customFees ? new BigNumber(customFees.value.toString()) : undefined,
|
|
121
|
+
gasLimit,
|
|
81
122
|
},
|
|
82
123
|
});
|
|
83
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,SAAS,EACT,IAAI,EACJ,yBAAyB,EACzB,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import { HEDERA_OPERATION_TYPES } from "../constants";
|
|
4
|
-
export declare const estimateFees: (currency: CryptoCurrency, operationType: HEDERA_OPERATION_TYPES) => Promise<BigNumber>;
|
|
1
|
+
import type { EstimateFeesParams, EstimateFeesResult } from "../types";
|
|
2
|
+
export declare const estimateFees: (params: EstimateFeesParams) => Promise<EstimateFeesResult>;
|
|
5
3
|
//# sourceMappingURL=estimateFees.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAqEvE,eAAO,MAAM,YAAY,WAAkB,kBAAkB,KAAG,QAAQ,kBAAkB,CAMzF,CAAC"}
|
|
@@ -1,18 +1,58 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import { BASE_USD_FEE_BY_OPERATION_TYPE, DEFAULT_TINYBAR_FEE, ESTIMATED_FEE_SAFETY_RATE, } from "../constants";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { BASE_USD_FEE_BY_OPERATION_TYPE, DEFAULT_GAS_LIMIT, DEFAULT_GAS_PRICE_TINYBARS, DEFAULT_TINYBAR_FEE, ESTIMATED_FEE_SAFETY_RATE, ESTIMATED_GAS_SAFETY_RATE, HEDERA_OPERATION_TYPES, } from "../constants";
|
|
3
|
+
import { apiClient } from "../network/api";
|
|
4
|
+
import { getCurrencyToUSDRate, toEVMAddress } from "./utils";
|
|
5
|
+
const estimateContractCallFees = async (txIntent) => {
|
|
6
|
+
let tinybars = new BigNumber(0);
|
|
7
|
+
let gas = new BigNumber(0);
|
|
8
|
+
const tokenEvmAddress = "assetReference" in txIntent.asset ? txIntent.asset.assetReference : null;
|
|
9
|
+
const senderEvmAddress = toEVMAddress(txIntent.sender);
|
|
10
|
+
const recipientEvmAddress = toEVMAddress(txIntent.recipient);
|
|
11
|
+
if (!tokenEvmAddress || !senderEvmAddress || !recipientEvmAddress) {
|
|
12
|
+
return {
|
|
13
|
+
tinybars,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const [networkFees, gasLimit] = await Promise.all([
|
|
18
|
+
apiClient.getNetworkFees(),
|
|
19
|
+
apiClient.estimateContractCallGas(senderEvmAddress, recipientEvmAddress, tokenEvmAddress, txIntent.amount),
|
|
20
|
+
]);
|
|
21
|
+
const contractCallFees = networkFees.fees.find(fee => fee.transaction_type === HEDERA_OPERATION_TYPES.ContractCall);
|
|
22
|
+
const gasTinybarRate = new BigNumber(contractCallFees?.gas ?? DEFAULT_GAS_PRICE_TINYBARS);
|
|
23
|
+
gas = gasLimit.multipliedBy(ESTIMATED_GAS_SAFETY_RATE).integerValue(BigNumber.ROUND_CEIL);
|
|
24
|
+
tinybars = gas.multipliedBy(gasTinybarRate).integerValue(BigNumber.ROUND_CEIL);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
const gasTinybarRate = DEFAULT_GAS_PRICE_TINYBARS;
|
|
28
|
+
gas = DEFAULT_GAS_LIMIT;
|
|
29
|
+
tinybars = gas.multipliedBy(gasTinybarRate).integerValue(BigNumber.ROUND_CEIL);
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
tinybars,
|
|
33
|
+
gas,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const estimateStandardFees = async (currency, operationType) => {
|
|
37
|
+
let tinybars;
|
|
6
38
|
const usdRate = await getCurrencyToUSDRate(currency).catch(() => null);
|
|
7
39
|
if (usdRate) {
|
|
8
|
-
|
|
40
|
+
tinybars = new BigNumber(BASE_USD_FEE_BY_OPERATION_TYPE[operationType])
|
|
9
41
|
.dividedBy(new BigNumber(usdRate))
|
|
10
42
|
.integerValue(BigNumber.ROUND_CEIL)
|
|
11
43
|
.multipliedBy(ESTIMATED_FEE_SAFETY_RATE);
|
|
12
44
|
}
|
|
13
45
|
else {
|
|
14
|
-
|
|
46
|
+
tinybars = new BigNumber(DEFAULT_TINYBAR_FEE).multipliedBy(ESTIMATED_FEE_SAFETY_RATE);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
tinybars,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export const estimateFees = async (params) => {
|
|
53
|
+
if (params.operationType === HEDERA_OPERATION_TYPES.ContractCall) {
|
|
54
|
+
return estimateContractCallFees(params.txIntent);
|
|
15
55
|
}
|
|
16
|
-
return
|
|
56
|
+
return estimateStandardFees(params.currency, params.operationType);
|
|
17
57
|
};
|
|
18
58
|
//# sourceMappingURL=estimateFees.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../src/logic/estimateFees.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAMrE,OAAO,KAAK,EAAE,iBAAiB,EAA2B,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAqKjG,wBAAsB,cAAc,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;IAEvB,aAAa,EAAE,OAAO,CAAC;IACvB,0BAA0B,EAAE,OAAO,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,OAAO,CAAC;IACV,cAAc,EAAE,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC;IAClD,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC;IACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAqDD"}
|
|
@@ -5,6 +5,10 @@ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
|
5
5
|
import { apiClient } from "../network/api";
|
|
6
6
|
import { parseTransfers } from "../network/utils";
|
|
7
7
|
import { base64ToUrlSafeBase64, getMemoFromBase64, getSyntheticBlock } from "./utils";
|
|
8
|
+
const txNameToCustomOperationType = {
|
|
9
|
+
TOKENASSOCIATE: "ASSOCIATE_TOKEN",
|
|
10
|
+
CONTRACTCALL: "CONTRACT_CALL",
|
|
11
|
+
};
|
|
8
12
|
function getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks) {
|
|
9
13
|
const timestamp = new Date(Number.parseInt(rawTx.consensus_timestamp.split(".")[0], 10) * 1000);
|
|
10
14
|
const hash = useEncodedHash
|
|
@@ -17,6 +21,7 @@ function getCommonOperationData(rawTx, useEncodedHash, useSyntheticBlocks) {
|
|
|
17
21
|
const extra = {
|
|
18
22
|
pagingToken: rawTx.consensus_timestamp,
|
|
19
23
|
consensusTimestamp: rawTx.consensus_timestamp,
|
|
24
|
+
transactionId: rawTx.transaction_id,
|
|
20
25
|
...(memo && { memo }),
|
|
21
26
|
};
|
|
22
27
|
return {
|
|
@@ -89,12 +94,11 @@ function processTransfers({ rawTx, address, ledgerAccountId, commonData, mirrorT
|
|
|
89
94
|
const { type, value, senders, recipients } = parseTransfers(transfers, address);
|
|
90
95
|
const { hash, fee, timestamp, blockHeight, blockHash, hasFailed } = commonData;
|
|
91
96
|
const extra = { ...commonData.extra };
|
|
92
|
-
|
|
97
|
+
const operationType = txNameToCustomOperationType[rawTx.name] ?? type;
|
|
93
98
|
// try to enrich ASSOCIATE_TOKEN operation with extra.associatedTokenId
|
|
94
99
|
// this value is used by custom OperationDetails components in Hedera family
|
|
95
100
|
// accounts or contracts must first associate with an HTS token before they can receive or send that token; without association, token transfers fail
|
|
96
|
-
if (
|
|
97
|
-
operationType = "ASSOCIATE_TOKEN";
|
|
101
|
+
if (operationType === "ASSOCIATE_TOKEN") {
|
|
98
102
|
const relatedMirrorToken = mirrorTokens.find(t => {
|
|
99
103
|
return t.created_timestamp === rawTx.consensus_timestamp;
|
|
100
104
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/logic/listOperations.ts"],"names":[],"mappings":"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"}
|
package/lib-es/logic/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import BigNumber from "bignumber.js";
|
|
2
|
-
import { Transaction as HederaSDKTransaction } from "@hashgraph/sdk";
|
|
2
|
+
import { Transaction as HederaSDKTransaction, TransactionId } from "@hashgraph/sdk";
|
|
3
3
|
import { AssetInfo, TransactionIntent } from "@ledgerhq/coin-framework/api/types";
|
|
4
4
|
import type { Currency, ExplorerView, TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
5
5
|
import type { AccountLike, Operation as LiveOperation } from "@ledgerhq/types-live";
|
|
@@ -35,7 +35,7 @@ export declare const isTokenAssociationRequired: (account: AccountLike, token: T
|
|
|
35
35
|
export declare const isValidExtra: (extra: unknown) => extra is HederaOperationExtra;
|
|
36
36
|
export declare const sendRecipientCanNext: (status: TransactionStatus) => boolean;
|
|
37
37
|
export declare const getCurrencyToUSDRate: import("@ledgerhq/live-network/cache").CacheRes<[currency: Currency], BigNumber | null>;
|
|
38
|
-
export declare const checkAccountTokenAssociationStatus: import("@ledgerhq/live-network/cache").CacheRes<[accountId: string,
|
|
38
|
+
export declare const checkAccountTokenAssociationStatus: import("@ledgerhq/live-network/cache").CacheRes<[accountId: string, token: TokenCurrency], boolean>;
|
|
39
39
|
export declare const safeParseAccountId: (address: string) => [Error, null] | [null, {
|
|
40
40
|
accountId: string;
|
|
41
41
|
checksum: string | null;
|
|
@@ -52,4 +52,26 @@ export declare function getSyntheticBlock(consensusTimestamp: string, blockWindo
|
|
|
52
52
|
blockHash: string;
|
|
53
53
|
blockTime: Date;
|
|
54
54
|
};
|
|
55
|
+
export declare const formatTransactionId: (transactionId: TransactionId) => string;
|
|
56
|
+
/**
|
|
57
|
+
* Converts a Hedera account ID (e.g. "0.0.1234") into its corresponding EVM address in hexadecimal format.
|
|
58
|
+
* If the conversion fails, it returns null.
|
|
59
|
+
*
|
|
60
|
+
* @param address - Hedera account ID in the format `shard.realm.num`
|
|
61
|
+
* @returns the long-zero EVM address (`0x...`) or null if conversion fails
|
|
62
|
+
*/
|
|
63
|
+
export declare const toEVMAddress: (accountId: string) => string | null;
|
|
64
|
+
/**
|
|
65
|
+
* Converts EVM address in hexadecimal format to its corresponding Hedera account ID.
|
|
66
|
+
* Only long-zero addresses can be mathematically converted back to account IDs.
|
|
67
|
+
* Non-long-zero addresses support would require mirror node call and is not needed for now
|
|
68
|
+
* Uses shard 0 and realm 0 by default for the conversion.
|
|
69
|
+
* If the conversion fails, it returns null.
|
|
70
|
+
*
|
|
71
|
+
* @param evmAddress - EVM address in hexadecimal format (should start with '0x')
|
|
72
|
+
* @param shard - Optional shard ID (defaults to 0)
|
|
73
|
+
* @param realm - Optional realm ID (defaults to 0)
|
|
74
|
+
* @returns Hedera account ID in the format `shard.realm.num` or null if conversion fails
|
|
75
|
+
*/
|
|
76
|
+
export declare const fromEVMAddress: (evmAddress: string, shard?: number, realm?: number) => string | null;
|
|
55
77
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAGL,WAAW,IAAI,oBAAoB,EACnC,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAMlF,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EAEzB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAEV,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,kBAAkB,cAAe,UAAU,WAEvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAAe,MAAM,WAErD,CAAC;AAEF,eAAO,MAAM,oBAAoB,OAAQ,oBAAoB,WAE5D,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAAQ,MAAM,yBAEhD,CAAC;AAEF,eAAO,MAAM,iBAAiB;WAIrB,SAAS;eACL,cAAc,oBAAoB,CAAC;YAW/C,CAAC;AAMF,eAAO,MAAM,6BAA6B,OAAQ,oBAAoB,eAIrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,aAAc,iBAAiB,2BAclE,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAAgB,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,IAQ3E,CAAC;AAGF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,eAAO,MAAM,sBAAsB,iBACnB,YAAY,GAAG,IAAI,GAAG,SAAS,aAClC,aAAa,KACvB,MAAM,GAAG,SAOX,CAAC;AAEF,eAAO,MAAM,2BAA2B,OAAQ,WAAW;;;;;;;;;;;CAE1D,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAa,WAAW,YAIjE,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAC5B,WAAW,SACb,aAAa,GAAG,IAAI,GAAG,SAAS,YAUxC,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,OAAO,kCAE1C,CAAC;AAKF,eAAO,MAAM,oBAAoB,WAAY,iBAAiB,YAI7D,CAAC;AAGF,eAAO,MAAM,oBAAoB,yFAoBhC,CAAC;AAEF,eAAO,MAAM,kCAAkC,qGA4B9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,KACd,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA0BvE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,SAAiC;;;;EAapD;AAED,eAAO,MAAM,mBAAmB,kBAAmB,aAAa,KAAG,MAKlE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,cAAe,MAAM,kBAO7C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,eAAgB,MAAM,qCAAyB,MAAM,GAAG,IAalF,CAAC"}
|