@ledgerhq/coin-tezos 6.6.0 → 6.7.0-nightly.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.unimportedrc.json +4 -30
- package/CHANGELOG.md +25 -0
- package/jest.integ.config.js +1 -0
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.integ.test.js +6 -0
- package/lib/api/index.integ.test.js.map +1 -1
- package/lib/api/index.js +221 -40
- package/lib/api/index.js.map +1 -1
- package/lib/api/index.test.js +84 -10
- package/lib/api/index.test.js.map +1 -1
- package/lib/api/types.d.ts +7 -6
- package/lib/api/types.d.ts.map +1 -1
- package/lib/config.d.ts +4 -3
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/logic/craftTransaction.d.ts.map +1 -1
- package/lib/logic/craftTransaction.js +7 -0
- package/lib/logic/craftTransaction.js.map +1 -1
- package/lib/logic/craftTransaction.test.js +1 -0
- package/lib/logic/craftTransaction.test.js.map +1 -1
- package/lib/logic/estimateFees.d.ts.map +1 -1
- package/lib/logic/estimateFees.integ.test.js +8 -2
- package/lib/logic/estimateFees.integ.test.js.map +1 -1
- package/lib/logic/estimateFees.js +119 -45
- package/lib/logic/estimateFees.js.map +1 -1
- package/lib/logic/getBalance.js +1 -1
- package/lib/logic/getBalance.js.map +1 -1
- package/lib/logic/getStakes.d.ts +3 -0
- package/lib/logic/getStakes.d.ts.map +1 -0
- package/lib/logic/getStakes.js +26 -0
- package/lib/logic/getStakes.js.map +1 -0
- package/lib/logic/getStakes.test.d.ts +2 -0
- package/lib/logic/getStakes.test.d.ts.map +1 -0
- package/lib/logic/getStakes.test.js +133 -0
- package/lib/logic/getStakes.test.js.map +1 -0
- package/lib/logic/index.d.ts +2 -0
- package/lib/logic/index.d.ts.map +1 -1
- package/lib/logic/index.js +5 -1
- package/lib/logic/index.js.map +1 -1
- package/lib/logic/listOperations.d.ts.map +1 -1
- package/lib/logic/listOperations.js +69 -11
- package/lib/logic/listOperations.js.map +1 -1
- package/lib/logic/listOperations.test.js +14 -10
- package/lib/logic/listOperations.test.js.map +1 -1
- package/lib/logic/validateIntent.d.ts +3 -0
- package/lib/logic/validateIntent.d.ts.map +1 -0
- package/lib/logic/validateIntent.js +179 -0
- package/lib/logic/validateIntent.js.map +1 -0
- package/lib/logic/validateIntent.test.d.ts +2 -0
- package/lib/logic/validateIntent.test.d.ts.map +1 -0
- package/lib/logic/validateIntent.test.js +261 -0
- package/lib/logic/validateIntent.test.js.map +1 -0
- package/{lib-es/bridge → lib}/transaction.d.ts +1 -1
- package/lib/transaction.d.ts.map +1 -0
- package/lib/{bridge/transaction.js → transaction.js} +3 -3
- package/lib/transaction.js.map +1 -0
- package/lib/types/bridge.d.ts +3 -0
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib/types/bridge.fixture.d.ts.map +1 -1
- package/lib/types/bridge.fixture.js +1 -0
- package/lib/types/bridge.fixture.js.map +1 -1
- package/lib/types/bridge.js.map +1 -1
- package/lib/utils.d.ts +50 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +111 -0
- package/lib/utils.js.map +1 -0
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.integ.test.js +6 -0
- package/lib-es/api/index.integ.test.js.map +1 -1
- package/lib-es/api/index.js +222 -41
- package/lib-es/api/index.js.map +1 -1
- package/lib-es/api/index.test.js +84 -10
- package/lib-es/api/index.test.js.map +1 -1
- package/lib-es/api/types.d.ts +7 -6
- package/lib-es/api/types.d.ts.map +1 -1
- package/lib-es/config.d.ts +4 -3
- package/lib-es/config.d.ts.map +1 -1
- package/lib-es/config.js.map +1 -1
- package/lib-es/index.d.ts +1 -1
- package/lib-es/index.d.ts.map +1 -1
- package/lib-es/index.js +1 -1
- package/lib-es/index.js.map +1 -1
- package/lib-es/logic/craftTransaction.d.ts.map +1 -1
- package/lib-es/logic/craftTransaction.js +7 -0
- package/lib-es/logic/craftTransaction.js.map +1 -1
- package/lib-es/logic/craftTransaction.test.js +1 -0
- package/lib-es/logic/craftTransaction.test.js.map +1 -1
- package/lib-es/logic/estimateFees.d.ts.map +1 -1
- package/lib-es/logic/estimateFees.integ.test.js +8 -2
- package/lib-es/logic/estimateFees.integ.test.js.map +1 -1
- package/lib-es/logic/estimateFees.js +119 -45
- package/lib-es/logic/estimateFees.js.map +1 -1
- package/lib-es/logic/getBalance.js +1 -1
- package/lib-es/logic/getBalance.js.map +1 -1
- package/lib-es/logic/getStakes.d.ts +3 -0
- package/lib-es/logic/getStakes.d.ts.map +1 -0
- package/lib-es/logic/getStakes.js +20 -0
- package/lib-es/logic/getStakes.js.map +1 -0
- package/lib-es/logic/getStakes.test.d.ts +2 -0
- package/lib-es/logic/getStakes.test.d.ts.map +1 -0
- package/lib-es/logic/getStakes.test.js +128 -0
- package/lib-es/logic/getStakes.test.js.map +1 -0
- package/lib-es/logic/index.d.ts +2 -0
- package/lib-es/logic/index.d.ts.map +1 -1
- package/lib-es/logic/index.js +2 -0
- package/lib-es/logic/index.js.map +1 -1
- package/lib-es/logic/listOperations.d.ts.map +1 -1
- package/lib-es/logic/listOperations.js +69 -11
- package/lib-es/logic/listOperations.js.map +1 -1
- package/lib-es/logic/listOperations.test.js +14 -10
- package/lib-es/logic/listOperations.test.js.map +1 -1
- package/lib-es/logic/validateIntent.d.ts +3 -0
- package/lib-es/logic/validateIntent.d.ts.map +1 -0
- package/lib-es/logic/validateIntent.js +173 -0
- package/lib-es/logic/validateIntent.js.map +1 -0
- package/lib-es/logic/validateIntent.test.d.ts +2 -0
- package/lib-es/logic/validateIntent.test.d.ts.map +1 -0
- package/lib-es/logic/validateIntent.test.js +233 -0
- package/lib-es/logic/validateIntent.test.js.map +1 -0
- package/{lib/bridge → lib-es}/transaction.d.ts +1 -1
- package/lib-es/transaction.d.ts.map +1 -0
- package/lib-es/{bridge/transaction.js → transaction.js} +3 -3
- package/lib-es/transaction.js.map +1 -0
- package/lib-es/types/bridge.d.ts +3 -0
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/lib-es/types/bridge.fixture.d.ts.map +1 -1
- package/lib-es/types/bridge.fixture.js +1 -0
- package/lib-es/types/bridge.fixture.js.map +1 -1
- package/lib-es/types/bridge.js.map +1 -1
- package/lib-es/utils.d.ts +50 -0
- package/lib-es/utils.d.ts.map +1 -0
- package/lib-es/utils.js +100 -0
- package/lib-es/utils.js.map +1 -0
- package/package.json +9 -12
- package/src/api/index.integ.test.ts +8 -1
- package/src/api/index.test.ts +93 -16
- package/src/api/index.ts +248 -55
- package/src/api/types.ts +11 -7
- package/src/config.ts +9 -2
- package/src/index.ts +1 -2
- package/src/logic/craftTransaction.test.ts +1 -0
- package/src/logic/craftTransaction.ts +8 -0
- package/src/logic/estimateFees.integ.test.ts +8 -2
- package/src/logic/estimateFees.ts +140 -49
- package/src/logic/getBalance.ts +1 -1
- package/src/logic/getStakes.test.ts +145 -0
- package/src/logic/getStakes.ts +20 -0
- package/src/logic/index.ts +2 -0
- package/src/logic/listOperations.test.ts +64 -54
- package/src/logic/listOperations.ts +70 -10
- package/src/logic/validateIntent.test.ts +274 -0
- package/src/logic/validateIntent.ts +207 -0
- package/src/{bridge/transaction.ts → transaction.ts} +4 -4
- package/src/types/bridge.fixture.ts +1 -0
- package/src/types/bridge.ts +6 -1
- package/src/utils.ts +111 -0
- package/lib/bridge/broadcast.d.ts +0 -4
- package/lib/bridge/broadcast.d.ts.map +0 -1
- package/lib/bridge/broadcast.js +0 -11
- package/lib/bridge/broadcast.js.map +0 -1
- package/lib/bridge/broadcast.test.d.ts +0 -2
- package/lib/bridge/broadcast.test.d.ts.map +0 -1
- package/lib/bridge/broadcast.test.js +0 -36
- package/lib/bridge/broadcast.test.js.map +0 -1
- package/lib/bridge/buildOptimisticOperation.d.ts +0 -4
- package/lib/bridge/buildOptimisticOperation.d.ts.map +0 -1
- package/lib/bridge/buildOptimisticOperation.js +0 -28
- package/lib/bridge/buildOptimisticOperation.js.map +0 -1
- package/lib/bridge/createTransaction.d.ts +0 -4
- package/lib/bridge/createTransaction.d.ts.map +0 -1
- package/lib/bridge/createTransaction.js +0 -24
- package/lib/bridge/createTransaction.js.map +0 -1
- package/lib/bridge/estimateMaxSpendable.d.ts +0 -5
- package/lib/bridge/estimateMaxSpendable.d.ts.map +0 -1
- package/lib/bridge/estimateMaxSpendable.js +0 -30
- package/lib/bridge/estimateMaxSpendable.js.map +0 -1
- package/lib/bridge/getFeesForTransaction.d.ts +0 -21
- package/lib/bridge/getFeesForTransaction.d.ts.map +0 -1
- package/lib/bridge/getFeesForTransaction.js +0 -39
- package/lib/bridge/getFeesForTransaction.js.map +0 -1
- package/lib/bridge/getTransactionStatus.d.ts +0 -4
- package/lib/bridge/getTransactionStatus.d.ts.map +0 -1
- package/lib/bridge/getTransactionStatus.js +0 -108
- package/lib/bridge/getTransactionStatus.js.map +0 -1
- package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
- package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
- package/lib/bridge/getTransactionStatus.test.js +0 -107
- package/lib/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib/bridge/index.d.ts +0 -10
- package/lib/bridge/index.d.ts.map +0 -1
- package/lib/bridge/index.js +0 -59
- package/lib/bridge/index.js.map +0 -1
- package/lib/bridge/logic.d.ts +0 -10
- package/lib/bridge/logic.d.ts.map +0 -1
- package/lib/bridge/logic.js +0 -155
- package/lib/bridge/logic.js.map +0 -1
- package/lib/bridge/preload.d.ts +0 -9
- package/lib/bridge/preload.d.ts.map +0 -1
- package/lib/bridge/preload.js +0 -23
- package/lib/bridge/preload.js.map +0 -1
- package/lib/bridge/prepareTransaction.d.ts +0 -5
- package/lib/bridge/prepareTransaction.d.ts.map +0 -1
- package/lib/bridge/prepareTransaction.integ.test.d.ts +0 -2
- package/lib/bridge/prepareTransaction.integ.test.d.ts.map +0 -1
- package/lib/bridge/prepareTransaction.integ.test.js +0 -34
- package/lib/bridge/prepareTransaction.integ.test.js.map +0 -1
- package/lib/bridge/prepareTransaction.js +0 -57
- package/lib/bridge/prepareTransaction.js.map +0 -1
- package/lib/bridge/prepareTransaction.test.d.ts +0 -2
- package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
- package/lib/bridge/prepareTransaction.test.js +0 -178
- package/lib/bridge/prepareTransaction.test.js.map +0 -1
- package/lib/bridge/serialization.d.ts +0 -7
- package/lib/bridge/serialization.d.ts.map +0 -1
- package/lib/bridge/serialization.js +0 -26
- package/lib/bridge/serialization.js.map +0 -1
- package/lib/bridge/signOperation.d.ts +0 -16
- package/lib/bridge/signOperation.d.ts.map +0 -1
- package/lib/bridge/signOperation.js +0 -88
- package/lib/bridge/signOperation.js.map +0 -1
- package/lib/bridge/signOperation.test.d.ts +0 -2
- package/lib/bridge/signOperation.test.d.ts.map +0 -1
- package/lib/bridge/signOperation.test.js +0 -283
- package/lib/bridge/signOperation.test.js.map +0 -1
- package/lib/bridge/synchronization.d.ts +0 -5
- package/lib/bridge/synchronization.d.ts.map +0 -1
- package/lib/bridge/synchronization.integ.test.d.ts +0 -2
- package/lib/bridge/synchronization.integ.test.d.ts.map +0 -1
- package/lib/bridge/synchronization.integ.test.js +0 -32
- package/lib/bridge/synchronization.integ.test.js.map +0 -1
- package/lib/bridge/synchronization.js +0 -100
- package/lib/bridge/synchronization.js.map +0 -1
- package/lib/bridge/transaction.d.ts.map +0 -1
- package/lib/bridge/transaction.js.map +0 -1
- package/lib-es/bridge/broadcast.d.ts +0 -4
- package/lib-es/bridge/broadcast.d.ts.map +0 -1
- package/lib-es/bridge/broadcast.js +0 -7
- package/lib-es/bridge/broadcast.js.map +0 -1
- package/lib-es/bridge/broadcast.test.d.ts +0 -2
- package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
- package/lib-es/bridge/broadcast.test.js +0 -31
- package/lib-es/bridge/broadcast.test.js.map +0 -1
- package/lib-es/bridge/buildOptimisticOperation.d.ts +0 -4
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +0 -1
- package/lib-es/bridge/buildOptimisticOperation.js +0 -21
- package/lib-es/bridge/buildOptimisticOperation.js.map +0 -1
- package/lib-es/bridge/createTransaction.d.ts +0 -4
- package/lib-es/bridge/createTransaction.d.ts.map +0 -1
- package/lib-es/bridge/createTransaction.js +0 -17
- package/lib-es/bridge/createTransaction.js.map +0 -1
- package/lib-es/bridge/estimateMaxSpendable.d.ts +0 -5
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +0 -1
- package/lib-es/bridge/estimateMaxSpendable.js +0 -23
- package/lib-es/bridge/estimateMaxSpendable.js.map +0 -1
- package/lib-es/bridge/getFeesForTransaction.d.ts +0 -21
- package/lib-es/bridge/getFeesForTransaction.d.ts.map +0 -1
- package/lib-es/bridge/getFeesForTransaction.js +0 -33
- package/lib-es/bridge/getFeesForTransaction.js.map +0 -1
- package/lib-es/bridge/getTransactionStatus.d.ts +0 -4
- package/lib-es/bridge/getTransactionStatus.d.ts.map +0 -1
- package/lib-es/bridge/getTransactionStatus.js +0 -101
- package/lib-es/bridge/getTransactionStatus.js.map +0 -1
- package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
- package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
- package/lib-es/bridge/getTransactionStatus.test.js +0 -102
- package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
- package/lib-es/bridge/index.d.ts +0 -10
- package/lib-es/bridge/index.d.ts.map +0 -1
- package/lib-es/bridge/index.js +0 -53
- package/lib-es/bridge/index.js.map +0 -1
- package/lib-es/bridge/logic.d.ts +0 -10
- package/lib-es/bridge/logic.d.ts.map +0 -1
- package/lib-es/bridge/logic.js +0 -145
- package/lib-es/bridge/logic.js.map +0 -1
- package/lib-es/bridge/preload.d.ts +0 -9
- package/lib-es/bridge/preload.d.ts.map +0 -1
- package/lib-es/bridge/preload.js +0 -17
- package/lib-es/bridge/preload.js.map +0 -1
- package/lib-es/bridge/prepareTransaction.d.ts +0 -5
- package/lib-es/bridge/prepareTransaction.d.ts.map +0 -1
- package/lib-es/bridge/prepareTransaction.integ.test.d.ts +0 -2
- package/lib-es/bridge/prepareTransaction.integ.test.d.ts.map +0 -1
- package/lib-es/bridge/prepareTransaction.integ.test.js +0 -29
- package/lib-es/bridge/prepareTransaction.integ.test.js.map +0 -1
- package/lib-es/bridge/prepareTransaction.js +0 -50
- package/lib-es/bridge/prepareTransaction.js.map +0 -1
- package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
- package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
- package/lib-es/bridge/prepareTransaction.test.js +0 -173
- package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
- package/lib-es/bridge/serialization.d.ts +0 -7
- package/lib-es/bridge/serialization.d.ts.map +0 -1
- package/lib-es/bridge/serialization.js +0 -20
- package/lib-es/bridge/serialization.js.map +0 -1
- package/lib-es/bridge/signOperation.d.ts +0 -16
- package/lib-es/bridge/signOperation.d.ts.map +0 -1
- package/lib-es/bridge/signOperation.js +0 -83
- package/lib-es/bridge/signOperation.js.map +0 -1
- package/lib-es/bridge/signOperation.test.d.ts +0 -2
- package/lib-es/bridge/signOperation.test.d.ts.map +0 -1
- package/lib-es/bridge/signOperation.test.js +0 -255
- package/lib-es/bridge/signOperation.test.js.map +0 -1
- package/lib-es/bridge/synchronization.d.ts +0 -5
- package/lib-es/bridge/synchronization.d.ts.map +0 -1
- package/lib-es/bridge/synchronization.integ.test.d.ts +0 -2
- package/lib-es/bridge/synchronization.integ.test.d.ts.map +0 -1
- package/lib-es/bridge/synchronization.integ.test.js +0 -27
- package/lib-es/bridge/synchronization.integ.test.js.map +0 -1
- package/lib-es/bridge/synchronization.js +0 -70
- package/lib-es/bridge/synchronization.js.map +0 -1
- package/lib-es/bridge/transaction.d.ts.map +0 -1
- package/lib-es/bridge/transaction.js.map +0 -1
- package/src/bridge/broadcast.test.ts +0 -36
- package/src/bridge/broadcast.ts +0 -13
- package/src/bridge/buildOptimisticOperation.ts +0 -28
- package/src/bridge/createTransaction.ts +0 -19
- package/src/bridge/estimateMaxSpendable.ts +0 -37
- package/src/bridge/getFeesForTransaction.ts +0 -49
- package/src/bridge/getTransactionStatus.test.ts +0 -124
- package/src/bridge/getTransactionStatus.ts +0 -123
- package/src/bridge/index.ts +0 -74
- package/src/bridge/logic.ts +0 -171
- package/src/bridge/preload.ts +0 -18
- package/src/bridge/prepareTransaction.integ.test.ts +0 -35
- package/src/bridge/prepareTransaction.test.ts +0 -205
- package/src/bridge/prepareTransaction.ts +0 -69
- package/src/bridge/serialization.ts +0 -27
- package/src/bridge/signOperation.test.ts +0 -284
- package/src/bridge/signOperation.ts +0 -130
- package/src/bridge/synchronization.integ.test.ts +0 -33
- package/src/bridge/synchronization.ts +0 -100
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { Observable } from "rxjs";
|
|
2
|
-
import { FeeNotLoaded } from "@ledgerhq/errors";
|
|
3
|
-
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
4
|
-
import type { SignOperationEvent, AccountBridge } from "@ledgerhq/types-live";
|
|
5
|
-
import type { TezosAccount, TezosSigner, Transaction, TransactionStatus } from "../types";
|
|
6
|
-
import { buildOptimisticOperation } from "./buildOptimisticOperation";
|
|
7
|
-
import { craftTransaction, rawEncode } from "../logic";
|
|
8
|
-
import { getTezosToolkit } from "../logic/tezosToolkit";
|
|
9
|
-
|
|
10
|
-
// Exported for test purpose only
|
|
11
|
-
export async function getOperationContents({
|
|
12
|
-
account,
|
|
13
|
-
transaction,
|
|
14
|
-
counter,
|
|
15
|
-
public_key,
|
|
16
|
-
public_key_hash,
|
|
17
|
-
}: {
|
|
18
|
-
account: TezosAccount;
|
|
19
|
-
transaction: Transaction;
|
|
20
|
-
counter: number;
|
|
21
|
-
public_key: string;
|
|
22
|
-
public_key_hash: string;
|
|
23
|
-
}) {
|
|
24
|
-
let publicKey = undefined;
|
|
25
|
-
if (!account.tezosResources.revealed) {
|
|
26
|
-
publicKey = {
|
|
27
|
-
publicKey: public_key,
|
|
28
|
-
publicKeyHash: public_key_hash,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return craftTransaction(
|
|
33
|
-
{
|
|
34
|
-
address: account.freshAddress,
|
|
35
|
-
counter,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
type: transaction.mode,
|
|
39
|
-
recipient: transaction.recipient,
|
|
40
|
-
amount: BigInt(transaction.amount.toString()),
|
|
41
|
-
fee: {
|
|
42
|
-
fees: (transaction.fees || 0).toString(),
|
|
43
|
-
gasLimit: (transaction.gasLimit || 0).toString(),
|
|
44
|
-
storageLimit: (transaction.storageLimit || 0).toString(),
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
publicKey,
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export const buildSignOperation =
|
|
52
|
-
(
|
|
53
|
-
signerContext: SignerContext<TezosSigner>,
|
|
54
|
-
): AccountBridge<Transaction, TezosAccount, TransactionStatus>["signOperation"] =>
|
|
55
|
-
({ account, deviceId, transaction }): Observable<SignOperationEvent> =>
|
|
56
|
-
new Observable(o => {
|
|
57
|
-
let cancelled = false;
|
|
58
|
-
|
|
59
|
-
async function main() {
|
|
60
|
-
const { fees } = transaction;
|
|
61
|
-
if (!fees) throw new FeeNotLoaded();
|
|
62
|
-
|
|
63
|
-
const { freshAddressPath, freshAddress } = account;
|
|
64
|
-
|
|
65
|
-
const signedInfo = await signerContext(deviceId, async signer => {
|
|
66
|
-
const ledgerSigner = signer.createLedgerSigner(freshAddressPath, false, 0);
|
|
67
|
-
|
|
68
|
-
const tezosToolkit = getTezosToolkit();
|
|
69
|
-
tezosToolkit.setProvider({ signer: ledgerSigner });
|
|
70
|
-
|
|
71
|
-
const publicKey = await ledgerSigner.publicKey();
|
|
72
|
-
const publicKeyHash = await ledgerSigner.publicKeyHash();
|
|
73
|
-
|
|
74
|
-
const sourceData = await tezosToolkit.rpc.getContract(freshAddress);
|
|
75
|
-
|
|
76
|
-
o.next({ type: "device-signature-requested" });
|
|
77
|
-
|
|
78
|
-
if (cancelled) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const { type, contents } = await getOperationContents({
|
|
83
|
-
account,
|
|
84
|
-
transaction,
|
|
85
|
-
counter: Number(sourceData.counter),
|
|
86
|
-
public_key: publicKey,
|
|
87
|
-
public_key_hash: publicKeyHash,
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
const forgedBytes = await rawEncode(contents);
|
|
91
|
-
|
|
92
|
-
const signature = await ledgerSigner.sign(forgedBytes);
|
|
93
|
-
|
|
94
|
-
return {
|
|
95
|
-
type,
|
|
96
|
-
signature,
|
|
97
|
-
};
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
if (!signedInfo) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
o.next({ type: "device-signature-granted" });
|
|
105
|
-
|
|
106
|
-
const { type, signature } = signedInfo;
|
|
107
|
-
const operation = buildOptimisticOperation(account, transaction, type);
|
|
108
|
-
|
|
109
|
-
o.next({
|
|
110
|
-
type: "signed",
|
|
111
|
-
signedOperation: {
|
|
112
|
-
operation,
|
|
113
|
-
// we slice the signature to remove the `03` prefix
|
|
114
|
-
// which souldn't be included in the signature
|
|
115
|
-
signature: signature.sbytes.slice(2),
|
|
116
|
-
},
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
main().then(
|
|
121
|
-
() => o.complete(),
|
|
122
|
-
e => o.error(e),
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
return () => {
|
|
126
|
-
cancelled = true;
|
|
127
|
-
};
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
export default buildSignOperation;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import coinConfig, { TezosCoinConfig } from "../config";
|
|
2
|
-
import { fetchAllTransactions } from "../network/tzkt";
|
|
3
|
-
import { mockConfig } from "../test/config";
|
|
4
|
-
|
|
5
|
-
jest.setTimeout(2 * 60 * 1000);
|
|
6
|
-
|
|
7
|
-
describe("TEZOS_MAX_TX_QUERIES", () => {
|
|
8
|
-
const tezosConfig = mockConfig as TezosCoinConfig;
|
|
9
|
-
const bigAccount = "tz1boBHAVpwcvKkNFAQHYr7mjxAz1PpVgKq7";
|
|
10
|
-
|
|
11
|
-
test("default have more than 100 txs", async () => {
|
|
12
|
-
// Given
|
|
13
|
-
coinConfig.setCoinConfig((): TezosCoinConfig => tezosConfig);
|
|
14
|
-
|
|
15
|
-
const txs = await fetchAllTransactions(bigAccount);
|
|
16
|
-
expect(txs.length).toBeGreaterThan(100);
|
|
17
|
-
});
|
|
18
|
-
test("lowering it to 1 will only fetch a few txs", async () => {
|
|
19
|
-
// Given
|
|
20
|
-
coinConfig.setCoinConfig(
|
|
21
|
-
(): TezosCoinConfig => ({
|
|
22
|
-
...tezosConfig,
|
|
23
|
-
explorer: {
|
|
24
|
-
url: "https://xtz-tzkt-explorer.api.live.ledger.com",
|
|
25
|
-
maxTxQuery: 1,
|
|
26
|
-
},
|
|
27
|
-
}),
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
const txs = await fetchAllTransactions(bigAccount);
|
|
31
|
-
expect(txs.length).toBeLessThanOrEqual(100);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import invariant from "invariant";
|
|
2
|
-
import { BigNumber } from "bignumber.js";
|
|
3
|
-
import type { TokenAccount } from "@ledgerhq/types-live";
|
|
4
|
-
import { GetAccountShape, makeSync, mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
|
|
5
|
-
import { encodeAccountId, areAllOperationsLoaded } from "@ledgerhq/coin-framework/account/index";
|
|
6
|
-
import { encodeAddress, isStringHex, reconciliatePublicKey, txToOp } from "./logic";
|
|
7
|
-
import api, { fetchAllTransactions } from "../network/tzkt";
|
|
8
|
-
import { TezosAccount, TezosOperation } from "../types";
|
|
9
|
-
|
|
10
|
-
export const getAccountShape: GetAccountShape<TezosAccount> = async ({
|
|
11
|
-
initialAccount,
|
|
12
|
-
rest,
|
|
13
|
-
currency,
|
|
14
|
-
derivationMode,
|
|
15
|
-
}) => {
|
|
16
|
-
const publicKey = reconciliatePublicKey(rest?.publicKey, initialAccount);
|
|
17
|
-
invariant(
|
|
18
|
-
isStringHex(publicKey),
|
|
19
|
-
`Invalid public key (${publicKey}). Please reimport your Tezos accounts`,
|
|
20
|
-
);
|
|
21
|
-
const hex = Buffer.from(publicKey, "hex");
|
|
22
|
-
const address = encodeAddress(hex);
|
|
23
|
-
|
|
24
|
-
const accountId = encodeAccountId({
|
|
25
|
-
type: "js",
|
|
26
|
-
version: "2",
|
|
27
|
-
currencyId: currency.id,
|
|
28
|
-
xpubOrAddress: publicKey,
|
|
29
|
-
derivationMode,
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
const initialStableOperations = (
|
|
33
|
-
initialAccount && initialAccount.id === accountId ? initialAccount.operations : []
|
|
34
|
-
) as TezosOperation[];
|
|
35
|
-
|
|
36
|
-
// fetch transactions, incrementally if possible
|
|
37
|
-
const mostRecentStableOperation = initialStableOperations[0];
|
|
38
|
-
|
|
39
|
-
const lastId =
|
|
40
|
-
initialAccount && areAllOperationsLoaded(initialAccount) && mostRecentStableOperation
|
|
41
|
-
? mostRecentStableOperation.extra.id || undefined
|
|
42
|
-
: undefined;
|
|
43
|
-
|
|
44
|
-
const apiAccountPromise = api.getAccountByAddress(address);
|
|
45
|
-
const blocksCountPromise = api.getBlockCount();
|
|
46
|
-
|
|
47
|
-
const [apiAccount, blockHeight] = await Promise.all([apiAccountPromise, blocksCountPromise]);
|
|
48
|
-
|
|
49
|
-
if (apiAccount.type === "empty") {
|
|
50
|
-
return {
|
|
51
|
-
id: accountId,
|
|
52
|
-
xpub: publicKey,
|
|
53
|
-
freshAddress: address,
|
|
54
|
-
blockHeight,
|
|
55
|
-
lastSyncDate: new Date(),
|
|
56
|
-
tezosResources: {
|
|
57
|
-
revealed: false,
|
|
58
|
-
counter: 0,
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const fullySupported = apiAccount.type === "user";
|
|
64
|
-
|
|
65
|
-
const apiOperations = fullySupported ? await fetchAllTransactions(address, lastId) : [];
|
|
66
|
-
|
|
67
|
-
const { revealed, counter } = apiAccount;
|
|
68
|
-
|
|
69
|
-
const tezosResources = {
|
|
70
|
-
revealed,
|
|
71
|
-
counter,
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const balance = new BigNumber(apiAccount.balance);
|
|
75
|
-
const subAccounts: TokenAccount[] = [];
|
|
76
|
-
|
|
77
|
-
const newOps = apiOperations
|
|
78
|
-
.map(txToOp({ address, accountId }))
|
|
79
|
-
.filter(Boolean) as unknown as TezosOperation[]; // force cast because `filter(Boolean)` remove undefined and null value
|
|
80
|
-
|
|
81
|
-
const operations = mergeOps(initialStableOperations, newOps);
|
|
82
|
-
|
|
83
|
-
const accountShape = {
|
|
84
|
-
id: accountId,
|
|
85
|
-
xpub: publicKey,
|
|
86
|
-
freshAddress: address,
|
|
87
|
-
operations,
|
|
88
|
-
operationsCount: operations.length,
|
|
89
|
-
balance,
|
|
90
|
-
subAccounts,
|
|
91
|
-
spendableBalance: balance,
|
|
92
|
-
blockHeight,
|
|
93
|
-
lastSyncDate: new Date(),
|
|
94
|
-
tezosResources,
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
return accountShape;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
export const sync = makeSync({ getAccountShape });
|