@ledgerhq/coin-celo 1.3.0-nightly.4 → 1.3.0
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/.turbo/turbo-build.log +1 -1
- package/.unimportedrc.json +6 -3
- package/CHANGELOG.md +27 -35
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib/bridge/buildOptimisticOperation.js +2 -5
- package/lib/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib/bridge/buildTransaction.d.ts.map +1 -1
- package/lib/bridge/buildTransaction.js +6 -29
- package/lib/bridge/buildTransaction.js.map +1 -1
- package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -1
- package/lib/bridge/estimateMaxSpendable.js +1 -9
- package/lib/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
- package/lib/bridge/getFeesForTransaction.js +5 -32
- package/lib/bridge/getFeesForTransaction.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +4 -18
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/index.js.map +1 -1
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +4 -33
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +3 -11
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/synchronisation.d.ts.map +1 -1
- package/lib/bridge/synchronisation.js +3 -7
- package/lib/bridge/synchronisation.js.map +1 -1
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +0 -8
- package/lib/config.js.map +1 -1
- package/lib/test/please-add-coverage.test.d.ts +2 -0
- package/lib/test/please-add-coverage.test.d.ts.map +1 -0
- package/lib/test/please-add-coverage.test.js +6 -0
- package/lib/test/please-add-coverage.test.js.map +1 -0
- package/lib/types/types.d.ts +0 -1
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
- package/lib-es/bridge/buildOptimisticOperation.js +2 -5
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
- package/lib-es/bridge/buildTransaction.d.ts.map +1 -1
- package/lib-es/bridge/buildTransaction.js +6 -29
- package/lib-es/bridge/buildTransaction.js.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js +2 -10
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
- package/lib-es/bridge/getFeesForTransaction.js +5 -29
- package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/bridge/getTransactionStatus.js +4 -18
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/index.d.ts.map +1 -1
- 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 +4 -33
- 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 +3 -11
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/synchronisation.d.ts.map +1 -1
- package/lib-es/bridge/synchronisation.js +3 -7
- package/lib-es/bridge/synchronisation.js.map +1 -1
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js +0 -8
- package/lib-es/config.js.map +1 -1
- package/lib-es/test/please-add-coverage.test.d.ts +1 -0
- package/lib-es/test/please-add-coverage.test.d.ts.map +1 -0
- package/lib-es/test/please-add-coverage.test.js +5 -0
- package/lib-es/test/please-add-coverage.test.js.map +1 -0
- package/lib-es/types/types.d.ts +0 -1
- package/lib-es/types/types.d.ts.map +1 -1
- package/lib-es/types/types.js.map +1 -1
- package/package.json +17 -18
- package/src/bridge/buildOptimisticOperation.ts +2 -6
- package/src/bridge/buildTransaction.ts +7 -38
- package/src/bridge/estimateMaxSpendable.ts +2 -18
- package/src/bridge/getFeesForTransaction.ts +5 -39
- package/src/bridge/getTransactionStatus.ts +4 -21
- package/src/bridge/index.ts +1 -0
- package/src/bridge/prepareTransaction.ts +6 -39
- package/src/bridge/signOperation.ts +4 -19
- package/src/bridge/synchronisation.ts +4 -10
- package/src/config.ts +0 -8
- package/src/logic.ts +1 -1
- package/src/test/please-add-coverage.test.ts +3 -0
- package/src/types/types.ts +0 -1
- package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts +0 -2
- package/lib/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/buildOptimisticOperation.test.js +0 -23
- package/lib/__tests__/bridge/buildOptimisticOperation.test.js.map +0 -1
- package/lib/__tests__/bridge/buildTransaction.test.d.ts +0 -2
- package/lib/__tests__/bridge/buildTransaction.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/buildTransaction.test.js +0 -412
- package/lib/__tests__/bridge/buildTransaction.test.js.map +0 -1
- package/lib/__tests__/bridge/createTransaction.test.d.ts +0 -2
- package/lib/__tests__/bridge/createTransaction.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/createTransaction.test.js +0 -22
- package/lib/__tests__/bridge/createTransaction.test.js.map +0 -1
- package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts +0 -2
- package/lib/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/deviceTransactionConfig.test.js +0 -21
- package/lib/__tests__/bridge/deviceTransactionConfig.test.js.map +0 -1
- package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts +0 -2
- package/lib/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/estimateMaxSpendable.test.js +0 -108
- package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +0 -1
- package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts +0 -2
- package/lib/__tests__/bridge/getFeesForTransaction.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/getFeesForTransaction.test.js +0 -211
- package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +0 -1
- package/lib/__tests__/bridge/getTransactionStatus.test.d.ts +0 -2
- package/lib/__tests__/bridge/getTransactionStatus.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/getTransactionStatus.test.js +0 -214
- package/lib/__tests__/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib/__tests__/bridge/logic.test.d.ts +0 -2
- package/lib/__tests__/bridge/logic.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/logic.test.js +0 -490
- package/lib/__tests__/bridge/logic.test.js.map +0 -1
- package/lib/__tests__/bridge/prepareTransaction.test.d.ts +0 -2
- package/lib/__tests__/bridge/prepareTransaction.test.d.ts.map +0 -1
- package/lib/__tests__/bridge/prepareTransaction.test.js +0 -239
- package/lib/__tests__/bridge/prepareTransaction.test.js.map +0 -1
- package/lib/bridge/fixtures.d.ts +0 -36
- package/lib/bridge/fixtures.d.ts.map +0 -1
- package/lib/bridge/fixtures.js +0 -98
- package/lib/bridge/fixtures.js.map +0 -1
- package/lib/constants.d.ts +0 -6
- package/lib/constants.d.ts.map +0 -1
- package/lib/constants.js +0 -15
- package/lib/constants.js.map +0 -1
- package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/buildOptimisticOperation.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js +0 -18
- package/lib-es/__tests__/bridge/buildOptimisticOperation.test.js.map +0 -1
- package/lib-es/__tests__/bridge/buildTransaction.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/buildTransaction.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/buildTransaction.test.js +0 -407
- package/lib-es/__tests__/bridge/buildTransaction.test.js.map +0 -1
- package/lib-es/__tests__/bridge/createTransaction.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/createTransaction.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/createTransaction.test.js +0 -17
- package/lib-es/__tests__/bridge/createTransaction.test.js.map +0 -1
- package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/deviceTransactionConfig.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js +0 -16
- package/lib-es/__tests__/bridge/deviceTransactionConfig.test.js.map +0 -1
- package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +0 -103
- package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +0 -1
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +0 -206
- package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +0 -1
- package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/getTransactionStatus.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/getTransactionStatus.test.js +0 -209
- package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib-es/__tests__/bridge/logic.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/logic.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/logic.test.js +0 -485
- package/lib-es/__tests__/bridge/logic.test.js.map +0 -1
- package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts +0 -2
- package/lib-es/__tests__/bridge/prepareTransaction.test.d.ts.map +0 -1
- package/lib-es/__tests__/bridge/prepareTransaction.test.js +0 -234
- package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +0 -1
- package/lib-es/bridge/fixtures.d.ts +0 -36
- package/lib-es/bridge/fixtures.d.ts.map +0 -1
- package/lib-es/bridge/fixtures.js +0 -89
- package/lib-es/bridge/fixtures.js.map +0 -1
- package/lib-es/constants.d.ts +0 -6
- package/lib-es/constants.d.ts.map +0 -1
- package/lib-es/constants.js +0 -11
- package/lib-es/constants.js.map +0 -1
- package/src/__tests__/bridge/buildOptimisticOperation.test.ts +0 -29
- package/src/__tests__/bridge/buildTransaction.test.ts +0 -502
- package/src/__tests__/bridge/createTransaction.test.ts +0 -17
- package/src/__tests__/bridge/deviceTransactionConfig.test.ts +0 -16
- package/src/__tests__/bridge/estimateMaxSpendable.test.ts +0 -112
- package/src/__tests__/bridge/getFeesForTransaction.test.ts +0 -233
- package/src/__tests__/bridge/getTransactionStatus.test.ts +0 -261
- package/src/__tests__/bridge/logic.test.ts +0 -538
- package/src/__tests__/bridge/prepareTransaction.test.ts +0 -261
- package/src/bridge/fixtures.ts +0 -103
- package/src/constants.ts +0 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAG5D,MAAM,QAAQ,GAAG,CAAC,CAA+B,EAAE,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,kBAAkB,GAGL,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACvD,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IAExF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IAE9F,IACE,WAAW,CAAC,IAAI,KAAK,MAAM;QAC3B,CAAC,WAAW,CAAC,YAAY;QACzB,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExC,OAAO,WAAW,CAAC;IAErB,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAW,aAAa,EAAgC,MAAM,sBAAsB,CAAC;AAIjG,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAW,aAAa,EAAgC,MAAM,sBAAsB,CAAC;AAIjG,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBACb,aAAa,CAAC,UAAU,CAAC,KAAG,aAAa,CAAC,WAAW,CAAC,CAAC,eAAe,CAyElF,CAAC;AA6BP,eAAe,kBAAkB,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { BigNumber } from "bignumber.js";
|
|
|
2
2
|
import { Observable } from "rxjs";
|
|
3
3
|
import { FeeNotLoaded } from "@ledgerhq/errors";
|
|
4
4
|
import { encodeTransaction, recoverTransaction } from "@celo/wallet-base";
|
|
5
|
-
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
6
5
|
import { buildOptimisticOperation } from "./buildOptimisticOperation";
|
|
7
6
|
import buildTransaction from "./buildTransaction";
|
|
8
7
|
import { determineFees } from "../network/sdk";
|
|
@@ -17,19 +16,12 @@ export const buildSignOperation = (signerContext) => ({ account, transaction, de
|
|
|
17
16
|
throw new FeeNotLoaded();
|
|
18
17
|
const unsignedTransaction = await buildTransaction(account, transaction);
|
|
19
18
|
const { chainId, to } = unsignedTransaction;
|
|
20
|
-
const subAccount = findSubAccountById(account, transaction.subAccountId ?? "");
|
|
21
|
-
const isTokenTransaction = subAccount?.type === "TokenAccount";
|
|
22
19
|
await signerContext(deviceId, signer => {
|
|
23
|
-
return signer.verifyTokenInfo(
|
|
20
|
+
return signer.verifyTokenInfo(to, chainId);
|
|
24
21
|
});
|
|
25
|
-
|
|
26
|
-
...unsignedTransaction,
|
|
27
|
-
to: isTokenTransaction ? subAccount.token.contractAddress : to,
|
|
28
|
-
value: isTokenTransaction ? 0 : unsignedTransaction.value,
|
|
29
|
-
};
|
|
30
|
-
await determineFees(finalTransaction);
|
|
22
|
+
await determineFees(unsignedTransaction);
|
|
31
23
|
const rlpEncodedTransaction = await signerContext(deviceId, signer => {
|
|
32
|
-
return signer.rlpEncodedTxForLedger(
|
|
24
|
+
return signer.rlpEncodedTxForLedger(unsignedTransaction);
|
|
33
25
|
});
|
|
34
26
|
o.next({ type: "device-signature-requested" });
|
|
35
27
|
const response = (await signerContext(deviceId, signer => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,CA+CxD,CAAC;AAEF,eAAO,MAAM,IAAI,uJAAgC,CAAC"}
|
|
@@ -3,9 +3,8 @@ import { makeSync, mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
|
3
3
|
import { encodeAccountId } from "@ledgerhq/coin-framework/account";
|
|
4
4
|
import { getAccountDetails } from "../network";
|
|
5
5
|
import { celoKit } from "../network/sdk";
|
|
6
|
-
import { getAccountShape as evmGetAccountShape } from "@ledgerhq/coin-evm/bridge/synchronization";
|
|
7
6
|
const kit = celoKit();
|
|
8
|
-
export const getAccountShape = async (info
|
|
7
|
+
export const getAccountShape = async (info) => {
|
|
9
8
|
const { address, currency, initialAccount, derivationMode } = info;
|
|
10
9
|
const oldOperations = initialAccount?.operations || [];
|
|
11
10
|
const election = await kit.contracts.getElection();
|
|
@@ -22,16 +21,13 @@ export const getAccountShape = async (info, config) => {
|
|
|
22
21
|
const accountRegistrationStatus = await getAccountRegistrationStatus(address);
|
|
23
22
|
const pendingWithdrawals = accountRegistrationStatus ? await getPendingWithdrawals(address) : [];
|
|
24
23
|
const votes = accountRegistrationStatus ? await getVotes(address) : [];
|
|
25
|
-
const fromEvm = await evmGetAccountShape(info, config);
|
|
26
24
|
const operations = mergeOps(oldOperations, newOperations);
|
|
27
25
|
const shape = {
|
|
28
26
|
id: accountId,
|
|
29
27
|
balance,
|
|
30
|
-
blockHeight,
|
|
31
|
-
operationsCount: operations.length,
|
|
32
28
|
spendableBalance,
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
operationsCount: operations.length,
|
|
30
|
+
blockHeight,
|
|
35
31
|
celoResources: {
|
|
36
32
|
registrationStatus: accountRegistrationStatus,
|
|
37
33
|
lockedBalance,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAiC,KAAK,EAAC,IAAI,EAAC,EAAE;IACxE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IACnE,MAAM,aAAa,GAAG,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IACH,MAAM,EACJ,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,UAAU,EAAE,aAAa,EACzB,aAAa,EACb,sBAAsB,GACvB,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEhD,MAAM,yBAAyB,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAE9E,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjG,MAAM,KAAK,GAAG,yBAAyB,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,SAAS;QACb,OAAO;QACP,gBAAgB;QAChB,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,WAAW;QACX,aAAa,EAAE;YACb,kBAAkB,EAAE,yBAAyB;YAC7C,aAAa;YACb,sBAAsB;YACtB,kBAAkB;YAClB,KAAK;YACL,eAAe,EAAE,QAAQ,CAAC,OAAO;YACjC,iBAAiB,EAAE,UAAU,CAAC,OAAO;YACrC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;SAC1D;KACF,CAAC;IACF,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC"}
|
package/lib-es/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CASjD,CAAC"}
|
package/lib-es/config.js
CHANGED
package/lib-es/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAA+B;IACpD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;aACf;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAA+B;IACpD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;aACf;SACF;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=please-add-coverage.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"please-add-coverage.test.d.ts","sourceRoot":"","sources":["../../src/test/please-add-coverage.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"please-add-coverage.test.js","sourceRoot":"","sources":["../../src/test/please-add-coverage.test.ts"],"names":[],"mappings":";AAAA,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
|
package/lib-es/types/types.d.ts
CHANGED
|
@@ -38,7 +38,6 @@ export type Transaction = TransactionCommon & {
|
|
|
38
38
|
fees: BigNumber | null | undefined;
|
|
39
39
|
mode: CeloOperationMode;
|
|
40
40
|
index: number | null | undefined;
|
|
41
|
-
data?: Buffer | null | undefined;
|
|
42
41
|
};
|
|
43
42
|
export type TransactionRaw = TransactionCommonRaw & {
|
|
44
43
|
family: "celo";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,GACN,QAAQ,GACR,UAAU,GACV,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,SAAS,CAAC;IACzB,sBAAsB,EAAE,SAAS,CAAC;IAClC,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/D,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,oBAAoB,EAAE,SAAS,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAClE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAiJA,MAAM,UAAU,oBAAoB,CAAC,EAAkB;IACrD,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,oBAAoB,IAAI,EAAE,CAAC;AAC7E,CAAC;AAKD,MAAM,UAAU,uBAAuB,CAAC,EAAqB;IAC3D,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,oBAAoB,IAAI,EAAE,CAAC;AAC7E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-celo",
|
|
3
|
-
"version": "1.3.0
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "celo coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -104,40 +104,39 @@
|
|
|
104
104
|
},
|
|
105
105
|
"license": "Apache-2.0",
|
|
106
106
|
"dependencies": {
|
|
107
|
-
"@celo/connect": "^
|
|
108
|
-
"@celo/contractkit": "^
|
|
109
|
-
"@celo/utils": "^
|
|
110
|
-
"@celo/wallet-base": "^
|
|
111
|
-
"@celo/wallet-ledger": "^
|
|
107
|
+
"@celo/connect": "^6.0.2",
|
|
108
|
+
"@celo/contractkit": "^8.3.1",
|
|
109
|
+
"@celo/utils": "^7.0.0",
|
|
110
|
+
"@celo/wallet-base": "^6.0.3",
|
|
111
|
+
"@celo/wallet-ledger": "^6.0.3",
|
|
112
112
|
"bignumber.js": "^9.1.2",
|
|
113
113
|
"eip55": "^2.1.1",
|
|
114
114
|
"invariant": "^2.2.4",
|
|
115
115
|
"lodash": "^4.17.21",
|
|
116
116
|
"rxjs": "^7.8.1",
|
|
117
|
-
"@ledgerhq/coin-evm": "^2.29.0
|
|
118
|
-
"@ledgerhq/coin-framework": "^6.3.0
|
|
119
|
-
"@ledgerhq/cryptoassets": "^13.27.0
|
|
120
|
-
"@ledgerhq/devices": "^8.5.1
|
|
121
|
-
"@ledgerhq/errors": "^6.25.0
|
|
122
|
-
"@ledgerhq/hw-app-eth": "^6.45.17
|
|
123
|
-
"@ledgerhq/live-config": "^3.2.0
|
|
124
|
-
"@ledgerhq/live-env": "^2.15.0
|
|
125
|
-
"@ledgerhq/live-network": "^2.0.16
|
|
117
|
+
"@ledgerhq/coin-evm": "^2.29.0",
|
|
118
|
+
"@ledgerhq/coin-framework": "^6.3.0",
|
|
119
|
+
"@ledgerhq/cryptoassets": "^13.27.0",
|
|
120
|
+
"@ledgerhq/devices": "^8.5.1",
|
|
121
|
+
"@ledgerhq/errors": "^6.25.0",
|
|
122
|
+
"@ledgerhq/hw-app-eth": "^6.45.17",
|
|
123
|
+
"@ledgerhq/live-config": "^3.2.0",
|
|
124
|
+
"@ledgerhq/live-env": "^2.15.0",
|
|
125
|
+
"@ledgerhq/live-network": "^2.0.16",
|
|
126
126
|
"@ledgerhq/logs": "^6.13.0",
|
|
127
|
-
"@ledgerhq/types-live": "^6.83.0
|
|
127
|
+
"@ledgerhq/types-live": "^6.83.0"
|
|
128
128
|
},
|
|
129
129
|
"devDependencies": {
|
|
130
130
|
"@types/invariant": "^2.2.37",
|
|
131
131
|
"@types/jest": "^29.5.12",
|
|
132
132
|
"@types/lodash": "^4.14.179",
|
|
133
|
-
"@faker-js/faker": "^9.9.0",
|
|
134
133
|
"dotenv": "^16.4.5",
|
|
135
134
|
"expect": "^27.4.6",
|
|
136
135
|
"jest": "^29.7.0",
|
|
137
136
|
"ts-jest": "^29.1.1",
|
|
138
137
|
"typescript": "^5.4.5",
|
|
139
138
|
"@ledgerhq/disable-network-setup": "^0.0.0",
|
|
140
|
-
"@ledgerhq/types-cryptoassets": "^7.26.0
|
|
139
|
+
"@ledgerhq/types-cryptoassets": "^7.26.0"
|
|
141
140
|
},
|
|
142
141
|
"scripts": {
|
|
143
142
|
"clean": "rimraf lib lib-es",
|
|
@@ -2,7 +2,6 @@ import BigNumber from "bignumber.js";
|
|
|
2
2
|
import { OperationType } from "@ledgerhq/types-live";
|
|
3
3
|
import { CeloAccount, CeloOperation, CeloOperationMode, Transaction } from "../types";
|
|
4
4
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
5
|
-
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
6
5
|
|
|
7
6
|
const MODE_TO_TYPE: { [key in CeloOperationMode | "default"]: OperationType } = {
|
|
8
7
|
send: "OUT",
|
|
@@ -23,12 +22,9 @@ export const buildOptimisticOperation = (
|
|
|
23
22
|
): CeloOperation => {
|
|
24
23
|
const type = MODE_TO_TYPE[transaction.mode] ?? MODE_TO_TYPE.default;
|
|
25
24
|
|
|
26
|
-
const tokenAccount = findSubAccountById(account, transaction.subAccountId || "");
|
|
27
|
-
const isTokenTransaction = tokenAccount?.type === "TokenAccount";
|
|
28
|
-
|
|
29
25
|
const value =
|
|
30
26
|
type === "OUT" || type === "LOCK"
|
|
31
|
-
? new BigNumber(transaction.amount).plus(
|
|
27
|
+
? new BigNumber(transaction.amount).plus(fee)
|
|
32
28
|
: new BigNumber(transaction.amount);
|
|
33
29
|
|
|
34
30
|
const operation: CeloOperation = {
|
|
@@ -41,7 +37,7 @@ export const buildOptimisticOperation = (
|
|
|
41
37
|
blockHeight: null,
|
|
42
38
|
senders: [account.freshAddress],
|
|
43
39
|
recipients: [transaction.recipient].filter(Boolean),
|
|
44
|
-
accountId:
|
|
40
|
+
accountId: account.id,
|
|
45
41
|
date: new Date(),
|
|
46
42
|
extra: {
|
|
47
43
|
celoOperationValue: new BigNumber(transaction.amount),
|
|
@@ -3,21 +3,12 @@ import { CeloTx } from "@celo/connect";
|
|
|
3
3
|
import { celoKit } from "../network/sdk";
|
|
4
4
|
import { BigNumber } from "bignumber.js";
|
|
5
5
|
import { getPendingStakingOperationAmounts, getVote } from "../logic";
|
|
6
|
-
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
7
|
-
import {
|
|
8
|
-
CELO_STABLE_TOKENS,
|
|
9
|
-
getStableTokenEnum,
|
|
10
|
-
MAX_FEES_THRESHOLD_MULTIPLIER,
|
|
11
|
-
MAX_PRIORITY_FEE_PER_GAS,
|
|
12
|
-
} from "../constants";
|
|
13
6
|
|
|
14
7
|
const buildTransaction = async (account: CeloAccount, transaction: Transaction) => {
|
|
15
8
|
const kit = celoKit();
|
|
16
9
|
|
|
17
|
-
const
|
|
18
|
-
const isTokenTransaction = tokenAccount?.type === "TokenAccount";
|
|
10
|
+
const value = transactionValue(account, transaction);
|
|
19
11
|
|
|
20
|
-
let value = transactionValue(account, transaction);
|
|
21
12
|
let celoTransaction: CeloTx;
|
|
22
13
|
|
|
23
14
|
if (transaction.mode === "lock") {
|
|
@@ -114,45 +105,23 @@ const buildTransaction = async (account: CeloAccount, transaction: Transaction)
|
|
|
114
105
|
data: accounts.createAccount().txo.encodeABI(),
|
|
115
106
|
gas: await accounts.createAccount().txo.estimateGas({ from: account.freshAddress }),
|
|
116
107
|
};
|
|
117
|
-
} else
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const block = await kit.connection.web3.eth.getBlock("latest");
|
|
121
|
-
const baseFee = BigInt(block.baseFeePerGas || MAX_PRIORITY_FEE_PER_GAS);
|
|
122
|
-
const maxFeePerGas = baseFee + MAX_PRIORITY_FEE_PER_GAS;
|
|
123
|
-
|
|
124
|
-
let token;
|
|
125
|
-
if (CELO_STABLE_TOKENS.includes(tokenAccount.token.id)) {
|
|
126
|
-
token = await kit.contracts.getStableToken(getStableTokenEnum(tokenAccount.token.id));
|
|
127
|
-
} else {
|
|
128
|
-
token = await kit.contracts.getErc20(tokenAccount.token.contractAddress);
|
|
129
|
-
}
|
|
108
|
+
} else {
|
|
109
|
+
// Send
|
|
130
110
|
|
|
131
111
|
celoTransaction = {
|
|
132
112
|
from: account.freshAddress,
|
|
133
113
|
to: transaction.recipient,
|
|
134
|
-
data: token.transfer(transaction.recipient, value.toFixed()).txo.encodeABI(),
|
|
135
|
-
maxFeePerGas: maxFeePerGas.toString(),
|
|
136
|
-
maxPriorityFeePerGas: await kit.connection.getMaxPriorityFeePerGas(),
|
|
137
114
|
value: value.toFixed(),
|
|
138
115
|
};
|
|
139
|
-
|
|
140
|
-
|
|
116
|
+
const gas = await kit.connection.estimateGasWithInflationFactor(celoTransaction);
|
|
117
|
+
|
|
141
118
|
celoTransaction = {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
value: value.toFixed(),
|
|
119
|
+
...celoTransaction,
|
|
120
|
+
gas,
|
|
145
121
|
};
|
|
146
122
|
}
|
|
147
|
-
|
|
148
|
-
const gas = (
|
|
149
|
-
(await kit.connection.estimateGasWithInflationFactor(celoTransaction)) *
|
|
150
|
-
MAX_FEES_THRESHOLD_MULTIPLIER
|
|
151
|
-
).toFixed();
|
|
152
|
-
|
|
153
123
|
const tx: CeloTx = {
|
|
154
124
|
...celoTransaction,
|
|
155
|
-
gas,
|
|
156
125
|
chainId: await kit.connection.chainId(),
|
|
157
126
|
nonce: await kit.connection.nonce(account.freshAddress),
|
|
158
127
|
};
|
|
@@ -3,36 +3,20 @@ import { CeloAccount, Transaction } from "../types";
|
|
|
3
3
|
import getTransactionStatus from "./getTransactionStatus";
|
|
4
4
|
import prepareTransaction from "./prepareTransaction";
|
|
5
5
|
import createTransaction from "./createTransaction";
|
|
6
|
-
import {
|
|
7
|
-
findSubAccountById,
|
|
8
|
-
getMainAccount,
|
|
9
|
-
isTokenAccount,
|
|
10
|
-
} from "@ledgerhq/coin-framework/account/helpers";
|
|
11
|
-
import BigNumber from "bignumber.js";
|
|
6
|
+
import { getMainAccount } from "@ledgerhq/coin-framework/account/helpers";
|
|
12
7
|
|
|
13
8
|
export const estimateMaxSpendable: AccountBridge<
|
|
14
9
|
Transaction,
|
|
15
10
|
CeloAccount
|
|
16
11
|
>["estimateMaxSpendable"] = async ({ account, parentAccount, transaction }) => {
|
|
17
12
|
const mainAccount = getMainAccount(account, parentAccount);
|
|
18
|
-
|
|
19
|
-
const tokenAccount = findSubAccountById(mainAccount, transaction?.subAccountId ?? "");
|
|
20
|
-
const fromTokenAccount = tokenAccount && isTokenAccount(tokenAccount);
|
|
21
|
-
|
|
22
13
|
const t = await prepareTransaction(mainAccount, {
|
|
23
14
|
...createTransaction(account),
|
|
24
15
|
...transaction,
|
|
25
16
|
useAllAmount: true,
|
|
26
17
|
});
|
|
27
|
-
|
|
28
18
|
const { amount } = await getTransactionStatus(mainAccount, t);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return fromTokenAccount
|
|
32
|
-
? tokenAccount.spendableBalance
|
|
33
|
-
: account.spendableBalance.gt(fees)
|
|
34
|
-
? amount.minus(fees)
|
|
35
|
-
: new BigNumber(0);
|
|
19
|
+
return amount;
|
|
36
20
|
};
|
|
37
21
|
|
|
38
22
|
export default estimateMaxSpendable;
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
2
1
|
import { BigNumber } from "bignumber.js";
|
|
3
2
|
import type { CeloAccount, Transaction } from "../types";
|
|
4
3
|
import { celoKit } from "../network/sdk";
|
|
5
4
|
import { getPendingStakingOperationAmounts, getVote } from "../logic";
|
|
6
|
-
import buildTransaction from "./buildTransaction";
|
|
7
|
-
import {
|
|
8
|
-
CELO_STABLE_TOKENS,
|
|
9
|
-
getStableTokenEnum,
|
|
10
|
-
MAX_FEES_THRESHOLD_MULTIPLIER,
|
|
11
|
-
MAX_PRIORITY_FEE_PER_GAS,
|
|
12
|
-
} from "../constants";
|
|
13
5
|
|
|
14
6
|
const getFeesForTransaction = async ({
|
|
15
7
|
account,
|
|
@@ -36,9 +28,6 @@ const getFeesForTransaction = async ({
|
|
|
36
28
|
// Deduct pending lock operations from the spendable balance
|
|
37
29
|
const totalSpendableBalance = account.spendableBalance.minus(pendingOperationAmounts.lock);
|
|
38
30
|
|
|
39
|
-
const tokenAccount = findSubAccountById(account, transaction.subAccountId || "");
|
|
40
|
-
const isTokenTransaction = tokenAccount?.type === "TokenAccount";
|
|
41
|
-
|
|
42
31
|
if ((transaction.mode === "unlock" || transaction.mode === "vote") && account.celoResources) {
|
|
43
32
|
value = transaction.useAllAmount
|
|
44
33
|
? totalNonVotingLockedBalance
|
|
@@ -107,39 +96,16 @@ const getFeesForTransaction = async ({
|
|
|
107
96
|
const accounts = await kit.contracts.getAccounts();
|
|
108
97
|
|
|
109
98
|
gas = await accounts.createAccount().txo.estimateGas({ from: account.freshAddress });
|
|
110
|
-
} else
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const block = await kit.connection.web3.eth.getBlock("latest");
|
|
114
|
-
const baseFee = BigInt(block.baseFeePerGas || MAX_PRIORITY_FEE_PER_GAS);
|
|
115
|
-
const maxFeePerGas = baseFee + MAX_PRIORITY_FEE_PER_GAS;
|
|
116
|
-
|
|
117
|
-
let token;
|
|
118
|
-
if (CELO_STABLE_TOKENS.includes(tokenAccount.token.id)) {
|
|
119
|
-
token = await kit.contracts.getStableToken(getStableTokenEnum(tokenAccount.token.id));
|
|
120
|
-
} else {
|
|
121
|
-
token = await kit.contracts.getErc20(tokenAccount.token.contractAddress);
|
|
122
|
-
}
|
|
99
|
+
} else {
|
|
100
|
+
const celoToken = await kit.contracts.getGoldToken();
|
|
123
101
|
|
|
124
102
|
const celoTransaction = {
|
|
125
103
|
from: account.freshAddress,
|
|
126
|
-
to:
|
|
127
|
-
data:
|
|
128
|
-
maxFeePerGas: maxFeePerGas.toString(),
|
|
129
|
-
maxPriorityFeePerGas: await kit.connection.getMaxPriorityFeePerGas(),
|
|
130
|
-
value: value.toFixed(),
|
|
104
|
+
to: celoToken.address,
|
|
105
|
+
data: celoToken.transfer(transaction.recipient, value.toFixed()).txo.encodeABI(),
|
|
131
106
|
};
|
|
132
107
|
|
|
133
|
-
gas =
|
|
134
|
-
(
|
|
135
|
-
(await kit.connection.estimateGasWithInflationFactor(celoTransaction)) *
|
|
136
|
-
MAX_FEES_THRESHOLD_MULTIPLIER
|
|
137
|
-
).toFixed(),
|
|
138
|
-
);
|
|
139
|
-
} else {
|
|
140
|
-
// Send
|
|
141
|
-
const tx = await buildTransaction(account, transaction);
|
|
142
|
-
gas = tx.gas ? Number(tx.gas) : 0;
|
|
108
|
+
gas = await kit.connection.estimateGasWithInflationFactor(celoTransaction);
|
|
143
109
|
}
|
|
144
110
|
|
|
145
111
|
const gasPrice = new BigNumber(await kit.connection.gasPrice());
|
|
@@ -13,7 +13,6 @@ import { getPendingStakingOperationAmounts, getVote } from "../logic";
|
|
|
13
13
|
import { CeloAccount, Transaction, TransactionStatus } from "../types";
|
|
14
14
|
import { CeloAllFundsWarning } from "../errors";
|
|
15
15
|
import { celoKit } from "../network/sdk";
|
|
16
|
-
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
17
16
|
|
|
18
17
|
const kit = celoKit();
|
|
19
18
|
|
|
@@ -46,14 +45,10 @@ export const getTransactionStatus: AccountBridge<
|
|
|
46
45
|
const totalNonVotingLockedBalance = nonvotingLockedGoldBalance.minus(
|
|
47
46
|
pendingOperationAmounts.vote,
|
|
48
47
|
);
|
|
49
|
-
|
|
50
48
|
// Deduct pending lock operations from the spendable balance
|
|
51
49
|
const totalSpendableBalance = account.spendableBalance.minus(pendingOperationAmounts.lock);
|
|
52
50
|
const estimatedFees = transaction.fees || new BigNumber(0);
|
|
53
51
|
|
|
54
|
-
const tokenAccount = findSubAccountById(account, transaction.subAccountId || "");
|
|
55
|
-
const isTokenTransaction = tokenAccount?.type === "TokenAccount";
|
|
56
|
-
|
|
57
52
|
let amount: BigNumber = new BigNumber(0);
|
|
58
53
|
if (useAllAmount && (transaction.mode === "unlock" || transaction.mode === "vote")) {
|
|
59
54
|
amount = totalNonVotingLockedBalance ?? new BigNumber(0);
|
|
@@ -61,9 +56,7 @@ export const getTransactionStatus: AccountBridge<
|
|
|
61
56
|
const revoke = getVote(account, transaction.recipient, transaction.index);
|
|
62
57
|
if (revoke?.amount) amount = revoke.amount;
|
|
63
58
|
} else if (useAllAmount) {
|
|
64
|
-
amount =
|
|
65
|
-
? tokenAccount.spendableBalance
|
|
66
|
-
: totalSpendableBalance.minus(estimatedFees);
|
|
59
|
+
amount = totalSpendableBalance.minus(estimatedFees);
|
|
67
60
|
} else {
|
|
68
61
|
amount = new BigNumber(transaction.amount);
|
|
69
62
|
}
|
|
@@ -80,7 +73,7 @@ export const getTransactionStatus: AccountBridge<
|
|
|
80
73
|
}
|
|
81
74
|
|
|
82
75
|
if (!["register", "withdraw", "activate"].includes(transaction.mode)) {
|
|
83
|
-
if (amount.lte(0) && !useAllAmount) {
|
|
76
|
+
if (!errors.amount && amount.lte(0) && !useAllAmount) {
|
|
84
77
|
errors.amount = new AmountRequired();
|
|
85
78
|
}
|
|
86
79
|
}
|
|
@@ -106,23 +99,13 @@ export const getTransactionStatus: AccountBridge<
|
|
|
106
99
|
}
|
|
107
100
|
|
|
108
101
|
if (transaction.mode === "send") {
|
|
109
|
-
if (!transaction.recipient
|
|
102
|
+
if (!transaction.recipient) {
|
|
110
103
|
errors.recipient = new RecipientRequired();
|
|
111
|
-
} else if (!isValidAddress(transaction.recipient)
|
|
104
|
+
} else if (!isValidAddress(transaction.recipient)) {
|
|
112
105
|
errors.recipient = new InvalidAddress("", {
|
|
113
106
|
currencyName: account.currency.name,
|
|
114
107
|
});
|
|
115
108
|
}
|
|
116
|
-
|
|
117
|
-
if (isTokenTransaction) {
|
|
118
|
-
return {
|
|
119
|
-
errors,
|
|
120
|
-
warnings,
|
|
121
|
-
estimatedFees,
|
|
122
|
-
amount,
|
|
123
|
-
totalSpent: amount,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
109
|
}
|
|
127
110
|
|
|
128
111
|
return {
|
package/src/bridge/index.ts
CHANGED
|
@@ -21,6 +21,7 @@ import resolver from "../signer/hw-getAddress";
|
|
|
21
21
|
import type { CeloAccount, Transaction, TransactionStatus } from "../types";
|
|
22
22
|
import { broadcast } from "./broadcast";
|
|
23
23
|
|
|
24
|
+
import { EvmSigner } from "@ledgerhq/coin-evm/types/signer";
|
|
24
25
|
import getAddressWrapper from "@ledgerhq/coin-framework/bridge/getAddressWrapper";
|
|
25
26
|
import { getAccountShape } from "./synchronisation";
|
|
26
27
|
import { buildSignOperation } from "./signOperation";
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { AccountBridge } from "@ledgerhq/types-live";
|
|
2
1
|
import BigNumber from "bignumber.js";
|
|
2
|
+
import { AccountBridge } from "@ledgerhq/types-live";
|
|
3
3
|
import { isValidAddress } from "@celo/utils/lib/address";
|
|
4
4
|
import getFeesForTransaction from "./getFeesForTransaction";
|
|
5
5
|
import { CeloAccount, Transaction } from "../types";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { celoKit } from "../network/sdk";
|
|
6
|
+
|
|
7
|
+
const sameFees = (a: BigNumber | null | undefined, b: BigNumber) => (!a || !b ? a === b : a.eq(b));
|
|
9
8
|
|
|
10
9
|
export const prepareTransaction: AccountBridge<
|
|
11
10
|
Transaction,
|
|
12
11
|
CeloAccount
|
|
13
12
|
>["prepareTransaction"] = async (account, transaction) => {
|
|
14
|
-
const kit = celoKit();
|
|
15
|
-
|
|
16
13
|
if (transaction.recipient && !isValidAddress(transaction.recipient)) return transaction;
|
|
17
14
|
|
|
18
15
|
if (["send", "vote"].includes(transaction.mode) && !transaction.recipient) return transaction;
|
|
@@ -26,41 +23,11 @@ export const prepareTransaction: AccountBridge<
|
|
|
26
23
|
|
|
27
24
|
const fees = await getFeesForTransaction({ account, transaction });
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const amount =
|
|
33
|
-
transaction.useAllAmount && isTokenTransaction ? tokenAccount.balance : transaction.amount;
|
|
34
|
-
|
|
35
|
-
let token;
|
|
36
|
-
if (isTokenTransaction) {
|
|
37
|
-
if (CELO_STABLE_TOKENS.includes(tokenAccount.token.id)) {
|
|
38
|
-
token = await kit.contracts.getStableToken();
|
|
39
|
-
} else {
|
|
40
|
-
token = await kit.contracts.getErc20(tokenAccount.token.contractAddress);
|
|
41
|
-
}
|
|
42
|
-
} else {
|
|
43
|
-
token = await kit.contracts.getGoldToken();
|
|
26
|
+
if (!sameFees(transaction.fees, fees)) {
|
|
27
|
+
return { ...transaction, fees };
|
|
44
28
|
}
|
|
45
29
|
|
|
46
|
-
|
|
47
|
-
const baseFee = BigInt(block.baseFeePerGas || MAX_PRIORITY_FEE_PER_GAS);
|
|
48
|
-
const maxFeePerGas = baseFee + MAX_PRIORITY_FEE_PER_GAS;
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
...transaction,
|
|
52
|
-
amount,
|
|
53
|
-
fees,
|
|
54
|
-
maxFeePerGas: maxFeePerGas.toString(),
|
|
55
|
-
maxPriorityFeePerGas: await kit.connection.getMaxPriorityFeePerGas(),
|
|
56
|
-
...(isTokenTransaction
|
|
57
|
-
? {
|
|
58
|
-
data: Buffer.from(
|
|
59
|
-
token.transfer(transaction.recipient, amount.toFixed()).txo.encodeABI(),
|
|
60
|
-
),
|
|
61
|
-
}
|
|
62
|
-
: {}),
|
|
63
|
-
};
|
|
30
|
+
return transaction;
|
|
64
31
|
};
|
|
65
32
|
|
|
66
33
|
export default prepareTransaction;
|