@ledgerhq/coin-zcash 0.3.0 → 0.4.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/CHANGELOG.md +70 -0
- package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -1
- package/lib/bridge/estimateMaxSpendable.js +2 -5
- package/lib/bridge/estimateMaxSpendable.js.map +1 -1
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
- package/lib/bridge/getTransactionStatus.js +23 -4
- package/lib/bridge/getTransactionStatus.js.map +1 -1
- package/lib/bridge/index.d.ts +7 -0
- package/lib/bridge/index.d.ts.map +1 -1
- package/lib/bridge/index.js +6 -0
- package/lib/bridge/index.js.map +1 -1
- package/lib/bridge/operations.d.ts.map +1 -1
- package/lib/bridge/operations.js +16 -2
- package/lib/bridge/operations.js.map +1 -1
- package/lib/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib/bridge/prepareTransaction.js +2 -5
- package/lib/bridge/prepareTransaction.js.map +1 -1
- package/lib/bridge/signOperation.d.ts +11 -4
- package/lib/bridge/signOperation.d.ts.map +1 -1
- package/lib/bridge/signOperation.js +34 -7
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/bridge/sync.d.ts.map +1 -1
- package/lib/bridge/transaction.d.ts.map +1 -1
- package/lib/bridge/transaction.js +2 -0
- package/lib/bridge/transaction.js.map +1 -1
- package/lib/constants.d.ts +1 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +6 -1
- package/lib/constants.js.map +1 -1
- package/lib/logic/account/balance.d.ts +11 -4
- package/lib/logic/account/balance.d.ts.map +1 -1
- package/lib/logic/account/balance.js +11 -4
- package/lib/logic/account/balance.js.map +1 -1
- package/lib/logic/account/spendability.d.ts +59 -0
- package/lib/logic/account/spendability.d.ts.map +1 -0
- package/lib/logic/account/spendability.js +93 -0
- package/lib/logic/account/spendability.js.map +1 -0
- package/lib/logic/transaction/combine.d.ts +9 -4
- package/lib/logic/transaction/combine.d.ts.map +1 -1
- package/lib/logic/transaction/combine.js +8 -4
- package/lib/logic/transaction/combine.js.map +1 -1
- package/lib/network/engine.d.ts +8 -6
- package/lib/network/engine.d.ts.map +1 -1
- package/lib/network/engine.js +77 -24
- package/lib/network/engine.js.map +1 -1
- package/lib/network/types.d.ts +6 -2
- package/lib/network/types.d.ts.map +1 -1
- package/lib/signer/getShieldedAddress.d.ts +12 -0
- package/lib/signer/getShieldedAddress.d.ts.map +1 -0
- package/lib/signer/getShieldedAddress.js +10 -0
- package/lib/signer/getShieldedAddress.js.map +1 -0
- package/lib/types/bridge.d.ts +7 -0
- package/lib/types/bridge.d.ts.map +1 -1
- package/lib/types/bridge.js.map +1 -1
- package/lib/types/errors.d.ts +11 -0
- package/lib/types/errors.d.ts.map +1 -1
- package/lib/types/errors.js +16 -1
- package/lib/types/errors.js.map +1 -1
- package/lib/types/signer.d.ts +2 -2
- package/lib/types/signer.d.ts.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -1
- package/lib-es/bridge/estimateMaxSpendable.js +2 -5
- 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 +23 -4
- package/lib-es/bridge/getTransactionStatus.js.map +1 -1
- package/lib-es/bridge/index.d.ts +7 -0
- package/lib-es/bridge/index.d.ts.map +1 -1
- package/lib-es/bridge/index.js +6 -0
- package/lib-es/bridge/index.js.map +1 -1
- package/lib-es/bridge/operations.d.ts.map +1 -1
- package/lib-es/bridge/operations.js +16 -2
- package/lib-es/bridge/operations.js.map +1 -1
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
- package/lib-es/bridge/prepareTransaction.js +2 -5
- package/lib-es/bridge/prepareTransaction.js.map +1 -1
- package/lib-es/bridge/signOperation.d.ts +11 -4
- package/lib-es/bridge/signOperation.d.ts.map +1 -1
- package/lib-es/bridge/signOperation.js +35 -8
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/bridge/sync.d.ts.map +1 -1
- package/lib-es/bridge/transaction.d.ts.map +1 -1
- package/lib-es/bridge/transaction.js +2 -0
- package/lib-es/bridge/transaction.js.map +1 -1
- package/lib-es/constants.d.ts +1 -0
- package/lib-es/constants.d.ts.map +1 -1
- package/lib-es/constants.js +5 -0
- package/lib-es/constants.js.map +1 -1
- package/lib-es/logic/account/balance.d.ts +11 -4
- package/lib-es/logic/account/balance.d.ts.map +1 -1
- package/lib-es/logic/account/balance.js +11 -4
- package/lib-es/logic/account/balance.js.map +1 -1
- package/lib-es/logic/account/spendability.d.ts +59 -0
- package/lib-es/logic/account/spendability.d.ts.map +1 -0
- package/lib-es/logic/account/spendability.js +85 -0
- package/lib-es/logic/account/spendability.js.map +1 -0
- package/lib-es/logic/transaction/combine.d.ts +9 -4
- package/lib-es/logic/transaction/combine.d.ts.map +1 -1
- package/lib-es/logic/transaction/combine.js +8 -4
- package/lib-es/logic/transaction/combine.js.map +1 -1
- package/lib-es/network/engine.d.ts +8 -6
- package/lib-es/network/engine.d.ts.map +1 -1
- package/lib-es/network/engine.js +77 -24
- package/lib-es/network/engine.js.map +1 -1
- package/lib-es/network/types.d.ts +6 -2
- package/lib-es/network/types.d.ts.map +1 -1
- package/lib-es/signer/getShieldedAddress.d.ts +12 -0
- package/lib-es/signer/getShieldedAddress.d.ts.map +1 -0
- package/lib-es/signer/getShieldedAddress.js +8 -0
- package/lib-es/signer/getShieldedAddress.js.map +1 -0
- package/lib-es/types/bridge.d.ts +7 -0
- package/lib-es/types/bridge.d.ts.map +1 -1
- package/lib-es/types/bridge.js.map +1 -1
- package/lib-es/types/errors.d.ts +11 -0
- package/lib-es/types/errors.d.ts.map +1 -1
- package/lib-es/types/errors.js +14 -0
- package/lib-es/types/errors.js.map +1 -1
- package/lib-es/types/signer.d.ts +2 -2
- package/lib-es/types/signer.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/bridge/estimateMaxSpendable.test.ts +112 -0
- package/src/bridge/estimateMaxSpendable.ts +2 -5
- package/src/bridge/getTransactionStatus.test.ts +159 -3
- package/src/bridge/getTransactionStatus.ts +23 -4
- package/src/bridge/index.test.ts +28 -3
- package/src/bridge/index.ts +11 -0
- package/src/bridge/operations.test.ts +35 -3
- package/src/bridge/operations.ts +18 -2
- package/src/bridge/prepareTransaction.test.ts +121 -1
- package/src/bridge/prepareTransaction.ts +2 -5
- package/src/bridge/signOperation.test.ts +93 -1
- package/src/bridge/signOperation.ts +43 -8
- package/src/bridge/sync.ts +2 -2
- package/src/bridge/transaction.test.ts +8 -2
- package/src/bridge/transaction.ts +2 -0
- package/src/constants.ts +5 -0
- package/src/logic/account/balance.ts +11 -4
- package/src/logic/account/balance.unit.test.ts +49 -0
- package/src/logic/account/spendability.test.ts +275 -0
- package/src/logic/account/spendability.ts +121 -0
- package/src/logic/transaction/combine.ts +9 -4
- package/src/network/engine.test.ts +191 -2
- package/src/network/engine.ts +115 -24
- package/src/network/types.ts +6 -2
- package/src/signer/getShieldedAddress.ts +26 -0
- package/src/types/bridge.ts +7 -0
- package/src/types/errors.test.ts +2 -0
- package/src/types/errors.ts +15 -0
- package/src/types/signer.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# @ledgerhq/coin-zcash
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#20815](https://github.com/LedgerHQ/ledger-live/pull/20815) [`54fcd49`](https://github.com/LedgerHQ/ledger-live/commit/54fcd49f48deaed0aec71941c8b9926e6b6aee2e) Thanks [@cted-ledger](https://github.com/cted-ledger)! - Exclude immature Ironwood notes from the spendable pool. A shielded note is only spendable once its transaction is buried deep enough to have a witness at the builder's anchor, so a freshly scanned change note is no longer selected while a second send is prepared within the same confirmation window. The rule is applied wherever the spendable pool is derived — note selection, max-spendable and amount validation — and the send flow now reports insufficient spendable funds instead of failing when the transaction is built. Funds held by maturing notes stay part of the account's total balance.
|
|
8
|
+
|
|
9
|
+
- [#20658](https://github.com/LedgerHQ/ledger-live/pull/20658) [`a79b9aa`](https://github.com/LedgerHQ/ledger-live/commit/a79b9aacb2f21c89bd192342bc6b98a4265d4345) Thanks [@semeano](https://github.com/semeano)! - Zcash: add self transfer option on send modal
|
|
10
|
+
|
|
11
|
+
- [#20798](https://github.com/LedgerHQ/ledger-live/pull/20798) [`1de6156`](https://github.com/LedgerHQ/ledger-live/commit/1de61569d59e56b73a8797397cbdd1a10b069b08) Thanks [@cted-ledger](https://github.com/cted-ledger)! - Name the Ironwood shielded operations and stop listing Zcash self-transfers.
|
|
12
|
+
|
|
13
|
+
The Ironwood operation types were declared and given icons but never labelled, so a received or sent Ironwood transaction rendered its raw key in the history. They now carry the same labels, address cells and "Private (Ironwood)" transaction-type detail as the Sapling and Orchard ones.
|
|
14
|
+
|
|
15
|
+
A shielded transaction that moved no value across the wallet boundary — every note landing on the account's own internal address — was also emitted as a history row of its own: no counterparty, a value of 0, and, when it was the shielded leg of a transparent-funded sweep, a duplicate of the transparent operation already listing that transaction. Such a transaction now produces an operation typed `NONE`, which keeps it in the account data while leaving it out of the lists. Its classification is unchanged, so the fee and balance logic that reads it is unaffected.
|
|
16
|
+
|
|
17
|
+
- [#20707](https://github.com/LedgerHQ/ledger-live/pull/20707) [`4cc31ec`](https://github.com/LedgerHQ/ledger-live/commit/4cc31ec90cae0a36663b35da3a569222e8e8efdf) Thanks [@semeano](https://github.com/semeano)! - Carry the Ironwood bundle through to the device signer.
|
|
18
|
+
|
|
19
|
+
- [#20756](https://github.com/LedgerHQ/ledger-live/pull/20756) [`02ddf7e`](https://github.com/LedgerHQ/ledger-live/commit/02ddf7e9d7542d6f0fcdb18d7f9461c37a8b8ce1) Thanks [@vladyslavchupovskiy-ext-art](https://github.com/vladyslavchupovskiy-ext-art)! - Forward Ironwood spend-auth signatures to PCZT finalization (LIVE-35956).
|
|
20
|
+
|
|
21
|
+
`signOperation` now passes the device's Ironwood `spendAuthSig` values to `combine`, so a V6 PCZT (any shielded or shielding send) finalizes through the same `finalizeTransaction` entry point as a V5 one — `@ledgerhq/zcash-utils` (bumped to 2.1.1) injects both pools' signatures and extracts the signed transaction. `ironwoodSignatures` is omitted rather than sent empty when the device signed no Ironwood action, because zcash-utils length-checks each pool's list against the PCZT.
|
|
22
|
+
|
|
23
|
+
- [#20714](https://github.com/LedgerHQ/ledger-live/pull/20714) [`93406e8`](https://github.com/LedgerHQ/ledger-live/commit/93406e87ae4398e314f899a0b30e54653b73c18b) Thanks [@semeano](https://github.com/semeano)! - Show a warning in the send flow when the Zcash private balance is selected as source and funds were shielded in the last 15 minutes, explaining that recently shielded funds need confirmations and scanning before they are spendable
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- Updated dependencies [[`8a93a70`](https://github.com/LedgerHQ/ledger-live/commit/8a93a701d631bd18b6c5125f77588802c0325b4c), [`da0a5ce`](https://github.com/LedgerHQ/ledger-live/commit/da0a5ceb8f889f1bace45ed2d3d4c640cdf24ca8), [`eecf99a`](https://github.com/LedgerHQ/ledger-live/commit/eecf99af5c17ab63724843c31d5f3facc6352dad), [`030fc67`](https://github.com/LedgerHQ/ledger-live/commit/030fc677db03e8a411d3d33d2fa88e1ab04df80b), [`5b39a67`](https://github.com/LedgerHQ/ledger-live/commit/5b39a67dd93d4c541a77b0b146881073ca00ed15), [`0807eca`](https://github.com/LedgerHQ/ledger-live/commit/0807ecacfd06057811a3d6f8845b9f4bfc6f693c), [`b6da6b1`](https://github.com/LedgerHQ/ledger-live/commit/b6da6b1b1c98d022f30985c6103c239bffd0c7df), [`79882e2`](https://github.com/LedgerHQ/ledger-live/commit/79882e26a14f246f1cc969937e011b16e701b8f2), [`a20805c`](https://github.com/LedgerHQ/ledger-live/commit/a20805cebd95f2f620d394c4d7598ec93506c83e), [`030b427`](https://github.com/LedgerHQ/ledger-live/commit/030b42707768af3f9c98a15fc6751f1d64b36fe6)]:
|
|
28
|
+
- @ledgerhq/live-signer-zcash@0.10.0
|
|
29
|
+
- @ledgerhq/types-live@6.120.0
|
|
30
|
+
- @ledgerhq/ledger-wallet-framework@3.0.0
|
|
31
|
+
- @ledgerhq/wallet-btc@0.3.0
|
|
32
|
+
|
|
33
|
+
## 0.4.0-next.1
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- Updated dependencies [[`da0a5ce`](https://github.com/LedgerHQ/ledger-live/commit/da0a5ceb8f889f1bace45ed2d3d4c640cdf24ca8)]:
|
|
38
|
+
- @ledgerhq/types-live@6.120.0-next.1
|
|
39
|
+
- @ledgerhq/ledger-wallet-framework@3.0.0-next.1
|
|
40
|
+
- @ledgerhq/live-signer-zcash@0.10.0-next.0
|
|
41
|
+
- @ledgerhq/wallet-btc@0.3.0
|
|
42
|
+
|
|
43
|
+
## 0.4.0-next.0
|
|
44
|
+
|
|
45
|
+
### Minor Changes
|
|
46
|
+
|
|
47
|
+
- [#20815](https://github.com/LedgerHQ/ledger-live/pull/20815) [`54fcd49`](https://github.com/LedgerHQ/ledger-live/commit/54fcd49f48deaed0aec71941c8b9926e6b6aee2e) Thanks [@cted-ledger](https://github.com/cted-ledger)! - Exclude immature Ironwood notes from the spendable pool. A shielded note is only spendable once its transaction is buried deep enough to have a witness at the builder's anchor, so a freshly scanned change note is no longer selected while a second send is prepared within the same confirmation window. The rule is applied wherever the spendable pool is derived — note selection, max-spendable and amount validation — and the send flow now reports insufficient spendable funds instead of failing when the transaction is built. Funds held by maturing notes stay part of the account's total balance.
|
|
48
|
+
|
|
49
|
+
- [#20658](https://github.com/LedgerHQ/ledger-live/pull/20658) [`a79b9aa`](https://github.com/LedgerHQ/ledger-live/commit/a79b9aacb2f21c89bd192342bc6b98a4265d4345) Thanks [@semeano](https://github.com/semeano)! - Zcash: add self transfer option on send modal
|
|
50
|
+
|
|
51
|
+
- [#20798](https://github.com/LedgerHQ/ledger-live/pull/20798) [`1de6156`](https://github.com/LedgerHQ/ledger-live/commit/1de61569d59e56b73a8797397cbdd1a10b069b08) Thanks [@cted-ledger](https://github.com/cted-ledger)! - Name the Ironwood shielded operations and stop listing Zcash self-transfers.
|
|
52
|
+
|
|
53
|
+
The Ironwood operation types were declared and given icons but never labelled, so a received or sent Ironwood transaction rendered its raw key in the history. They now carry the same labels, address cells and "Private (Ironwood)" transaction-type detail as the Sapling and Orchard ones.
|
|
54
|
+
|
|
55
|
+
A shielded transaction that moved no value across the wallet boundary — every note landing on the account's own internal address — was also emitted as a history row of its own: no counterparty, a value of 0, and, when it was the shielded leg of a transparent-funded sweep, a duplicate of the transparent operation already listing that transaction. Such a transaction now produces an operation typed `NONE`, which keeps it in the account data while leaving it out of the lists. Its classification is unchanged, so the fee and balance logic that reads it is unaffected.
|
|
56
|
+
|
|
57
|
+
- [#20707](https://github.com/LedgerHQ/ledger-live/pull/20707) [`4cc31ec`](https://github.com/LedgerHQ/ledger-live/commit/4cc31ec90cae0a36663b35da3a569222e8e8efdf) Thanks [@semeano](https://github.com/semeano)! - Carry the Ironwood bundle through to the device signer.
|
|
58
|
+
|
|
59
|
+
- [#20756](https://github.com/LedgerHQ/ledger-live/pull/20756) [`02ddf7e`](https://github.com/LedgerHQ/ledger-live/commit/02ddf7e9d7542d6f0fcdb18d7f9461c37a8b8ce1) Thanks [@vladyslavchupovskiy-ext-art](https://github.com/vladyslavchupovskiy-ext-art)! - Forward Ironwood spend-auth signatures to PCZT finalization (LIVE-35956).
|
|
60
|
+
|
|
61
|
+
`signOperation` now passes the device's Ironwood `spendAuthSig` values to `combine`, so a V6 PCZT (any shielded or shielding send) finalizes through the same `finalizeTransaction` entry point as a V5 one — `@ledgerhq/zcash-utils` (bumped to 2.1.1) injects both pools' signatures and extracts the signed transaction. `ironwoodSignatures` is omitted rather than sent empty when the device signed no Ironwood action, because zcash-utils length-checks each pool's list against the PCZT.
|
|
62
|
+
|
|
63
|
+
- [#20714](https://github.com/LedgerHQ/ledger-live/pull/20714) [`93406e8`](https://github.com/LedgerHQ/ledger-live/commit/93406e87ae4398e314f899a0b30e54653b73c18b) Thanks [@semeano](https://github.com/semeano)! - Show a warning in the send flow when the Zcash private balance is selected as source and funds were shielded in the last 15 minutes, explaining that recently shielded funds need confirmations and scanning before they are spendable
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- Updated dependencies [[`8a93a70`](https://github.com/LedgerHQ/ledger-live/commit/8a93a701d631bd18b6c5125f77588802c0325b4c), [`eecf99a`](https://github.com/LedgerHQ/ledger-live/commit/eecf99af5c17ab63724843c31d5f3facc6352dad), [`030fc67`](https://github.com/LedgerHQ/ledger-live/commit/030fc677db03e8a411d3d33d2fa88e1ab04df80b), [`5b39a67`](https://github.com/LedgerHQ/ledger-live/commit/5b39a67dd93d4c541a77b0b146881073ca00ed15), [`0807eca`](https://github.com/LedgerHQ/ledger-live/commit/0807ecacfd06057811a3d6f8845b9f4bfc6f693c), [`b6da6b1`](https://github.com/LedgerHQ/ledger-live/commit/b6da6b1b1c98d022f30985c6103c239bffd0c7df), [`79882e2`](https://github.com/LedgerHQ/ledger-live/commit/79882e26a14f246f1cc969937e011b16e701b8f2), [`a20805c`](https://github.com/LedgerHQ/ledger-live/commit/a20805cebd95f2f620d394c4d7598ec93506c83e), [`030b427`](https://github.com/LedgerHQ/ledger-live/commit/030b42707768af3f9c98a15fc6751f1d64b36fe6)]:
|
|
68
|
+
- @ledgerhq/live-signer-zcash@0.10.0-next.0
|
|
69
|
+
- @ledgerhq/ledger-wallet-framework@3.0.0-next.0
|
|
70
|
+
- @ledgerhq/types-live@6.120.0-next.0
|
|
71
|
+
- @ledgerhq/wallet-btc@0.3.0
|
|
72
|
+
|
|
3
73
|
## 0.3.0
|
|
4
74
|
|
|
5
75
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateMaxSpendable.d.ts","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AASjE,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAC9C,WAAW,EACX,YAAY,CACb,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"estimateMaxSpendable.d.ts","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AASjE,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAC9C,WAAW,EACX,YAAY,CACb,CAAC,sBAAsB,CAkBvB,CAAC"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.estimateMaxSpendable = void 0;
|
|
4
4
|
const index_1 = require("@ledgerhq/ledger-wallet-framework/account/index");
|
|
5
|
-
const operations_1 = require("./operations");
|
|
6
5
|
const coin_selection_1 = require("../logic/coin-selection");
|
|
7
6
|
const statusHelpers_1 = require("./statusHelpers");
|
|
8
7
|
const note_reservation_1 = require("./note-reservation");
|
|
8
|
+
const spendability_1 = require("../logic/account/spendability");
|
|
9
9
|
const estimateMaxSpendable = async ({ account, parentAccount, transaction }) => {
|
|
10
10
|
const mainAccount = (0, index_1.getMainAccount)(account, parentAccount);
|
|
11
11
|
const tx = transaction;
|
|
@@ -19,10 +19,7 @@ const estimateMaxSpendable = async ({ account, parentAccount, transaction }) =>
|
|
|
19
19
|
const utxoValues = (mainAccount.bitcoinResources?.utxos ?? []).map(utxo => utxo.value);
|
|
20
20
|
return (0, coin_selection_1.estimateMaxSpendableTransparent)(utxoValues, "transparent");
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
const allNotes = (0, operations_1.collectIronwoodSpendableNotes)(transactions);
|
|
24
|
-
const reserved = (0, note_reservation_1.getReservedNullifiers)(mainAccount);
|
|
25
|
-
const notes = reserved.size > 0 ? allNotes.filter(n => !reserved.has(n.nullifier)) : allNotes;
|
|
22
|
+
const notes = (0, spendability_1.collectSelectableIronwoodNotes)(mainAccount, (0, note_reservation_1.getReservedNullifiers)(mainAccount));
|
|
26
23
|
return (0, coin_selection_1.estimateMaxSpendableAmount)(notes, transferType);
|
|
27
24
|
};
|
|
28
25
|
exports.estimateMaxSpendable = estimateMaxSpendable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":";;;AAAA,2EAAiF;AAGjF,
|
|
1
|
+
{"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":";;;AAAA,2EAAiF;AAGjF,4DAGiC;AACjC,mDAAsF;AACtF,yDAA2D;AAC3D,gEAA+E;AAExE,MAAM,oBAAoB,GAGL,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE;IAC5E,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,aAAa,CAAiB,CAAC;IAC3E,MAAM,EAAE,GAAG,WAAW,CAAC;IAEvB,IAAI,EAAE,IAAI,IAAA,0CAA0B,EAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,IAAA,uCAAuB,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpF,OAAO,IAAA,gDAA+B,EAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,EAAE,YAAY,IAAI,aAAa,CAAC;IACvD,sEAAsE;IACtE,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,yBAAyB,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,OAAO,IAAA,gDAA+B,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,6CAA8B,EAAC,WAAW,EAAE,IAAA,wCAAqB,EAAC,WAAW,CAAC,CAAC,CAAC;IAC9F,OAAO,IAAA,2CAA0B,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC,CAAC;AArBW,QAAA,oBAAoB,GAApB,oBAAoB,CAqB/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAmDpF,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAC9C,WAAW,EACX,YAAY,EACZ,iBAAiB,CAClB,CAAC,sBAAsB,CA0CvB,CAAC"}
|
|
@@ -5,6 +5,8 @@ const bignumber_js_1 = require("bignumber.js");
|
|
|
5
5
|
const errors_1 = require("@ledgerhq/ledger-wallet-framework/errors");
|
|
6
6
|
const coin_selection_1 = require("../logic/coin-selection");
|
|
7
7
|
const statusHelpers_1 = require("./statusHelpers");
|
|
8
|
+
const note_reservation_1 = require("./note-reservation");
|
|
9
|
+
const spendability_1 = require("../logic/account/spendability");
|
|
8
10
|
/**
|
|
9
11
|
* Transaction status for a transparent-input (Public→*) send: the recipient
|
|
10
12
|
* class differs per flow (u1 for →shielded, t1/t3 for →transparent) but both
|
|
@@ -25,7 +27,14 @@ function getTransparentInputStatus(account, tx, currencyName) {
|
|
|
25
27
|
else if (totalSpent.gt(transparentBalance)) {
|
|
26
28
|
errors.amount = new errors_1.NotEnoughBalance();
|
|
27
29
|
}
|
|
28
|
-
return {
|
|
30
|
+
return {
|
|
31
|
+
errors,
|
|
32
|
+
warnings,
|
|
33
|
+
estimatedFees: fee,
|
|
34
|
+
amount: tx.amount,
|
|
35
|
+
totalSpent,
|
|
36
|
+
recipientIsReadOnly: tx.selfTransfer === true,
|
|
37
|
+
};
|
|
29
38
|
}
|
|
30
39
|
const getTransactionStatus = async (account, transaction) => {
|
|
31
40
|
if ((0, statusHelpers_1.isTransparentInputTransfer)(transaction.transferType)) {
|
|
@@ -42,10 +51,13 @@ const getTransactionStatus = async (account, transaction) => {
|
|
|
42
51
|
estimatedFees: new bignumber_js_1.BigNumber(0),
|
|
43
52
|
amount: transaction.amount,
|
|
44
53
|
totalSpent: transaction.amount,
|
|
54
|
+
recipientIsReadOnly: transaction.selfTransfer === true,
|
|
45
55
|
};
|
|
46
56
|
}
|
|
47
|
-
// Shielded sends spend the Ironwood pool, so validate the amount against
|
|
48
|
-
|
|
57
|
+
// Shielded sends spend the Ironwood pool, so validate the amount against the
|
|
58
|
+
// mature, unreserved figure -- the same one selection draws from, so the
|
|
59
|
+
// status can never accept an amount selection cannot cover.
|
|
60
|
+
const poolBalance = (0, spendability_1.getSpendableIronwoodBalance)(account, (0, note_reservation_1.getReservedNullifiers)(account));
|
|
49
61
|
const fee = transaction.zcashFee ?? new bignumber_js_1.BigNumber(coin_selection_1.ZIP317_MINIMUM_FEE);
|
|
50
62
|
const totalSpent = transaction.amount.plus(fee);
|
|
51
63
|
const recipientError = (0, statusHelpers_1.computeRecipientError)(transaction.recipient, account.currency.name);
|
|
@@ -54,7 +66,14 @@ const getTransactionStatus = async (account, transaction) => {
|
|
|
54
66
|
const amountError = (0, statusHelpers_1.computeAmountError)(transaction, totalSpent, poolBalance);
|
|
55
67
|
if (amountError)
|
|
56
68
|
errors.amount = amountError;
|
|
57
|
-
return {
|
|
69
|
+
return {
|
|
70
|
+
errors,
|
|
71
|
+
warnings,
|
|
72
|
+
estimatedFees: fee,
|
|
73
|
+
amount: transaction.amount,
|
|
74
|
+
totalSpent,
|
|
75
|
+
recipientIsReadOnly: transaction.selfTransfer === true,
|
|
76
|
+
};
|
|
58
77
|
};
|
|
59
78
|
exports.getTransactionStatus = getTransactionStatus;
|
|
60
79
|
//# sourceMappingURL=getTransactionStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AACzC,qEAA4E;AAG5E,4DAA6D;AAC7D,mDAKyB;
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.ts"],"names":[],"mappings":"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"}
|
package/lib/bridge/index.d.ts
CHANGED
|
@@ -14,6 +14,13 @@ export type ZcashAccountBridge = AccountBridge<Transaction, ZcashAccount, Transa
|
|
|
14
14
|
path?: string;
|
|
15
15
|
}) => Promise<GetFullViewingKeyResult>;
|
|
16
16
|
deriveShieldedAddress: (ufvk: string) => Promise<string>;
|
|
17
|
+
getShieldedAddress: (account: ZcashAccount, options: {
|
|
18
|
+
deviceId: string;
|
|
19
|
+
path?: string;
|
|
20
|
+
display?: boolean;
|
|
21
|
+
}) => Promise<{
|
|
22
|
+
address: string;
|
|
23
|
+
}>;
|
|
17
24
|
};
|
|
18
25
|
/**
|
|
19
26
|
* Assembles the thin `AccountBridge`/`CurrencyBridge` (LL device path) -- every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpF,OAAkC,EAChC,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpF,OAAkC,EAChC,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AAgBrC;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAAG;IAC7F,iBAAiB,EAAE,CACjB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,kBAAkB,EAAE,CAClB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAC5D,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;EAsEjF"}
|
package/lib/bridge/index.js
CHANGED
|
@@ -10,6 +10,7 @@ const config_1 = require("../config");
|
|
|
10
10
|
const constants_1 = require("../constants");
|
|
11
11
|
const getAddress_1 = __importDefault(require("../signer/getAddress"));
|
|
12
12
|
const getFullViewingKey_1 = __importDefault(require("../signer/getFullViewingKey"));
|
|
13
|
+
const getShieldedAddress_1 = __importDefault(require("../signer/getShieldedAddress"));
|
|
13
14
|
const exchange_1 = require("./exchange");
|
|
14
15
|
const validateAddress_1 = require("../logic/validateAddress");
|
|
15
16
|
const broadcast_1 = require("./broadcast");
|
|
@@ -34,6 +35,7 @@ function createBridges(signerContext, coinConfig) {
|
|
|
34
35
|
(0, config_1.setCoinConfig)(coinConfig);
|
|
35
36
|
const getAddressFn = (0, getAddress_1.default)(signerContext);
|
|
36
37
|
const getFullViewingKeyFn = (0, getFullViewingKey_1.default)(signerContext);
|
|
38
|
+
const getShieldedAddressFn = (0, getShieldedAddress_1.default)(signerContext);
|
|
37
39
|
const getAccountShape = (0, sync_1.makeGetAccountShape)(signerContext);
|
|
38
40
|
const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
|
|
39
41
|
getAccountShape,
|
|
@@ -79,6 +81,10 @@ function createBridges(signerContext, coinConfig) {
|
|
|
79
81
|
const client = await (0, engineClient_1.getZCashClient)((0, constants_1.getZainoEndpoint)());
|
|
80
82
|
return client.deriveShieldedAddress(ufvk);
|
|
81
83
|
},
|
|
84
|
+
getShieldedAddress: (account, { deviceId, path, display }) => getShieldedAddressFn(deviceId, {
|
|
85
|
+
path: path ?? account.freshAddressPath,
|
|
86
|
+
...(display !== undefined && { display }),
|
|
87
|
+
}),
|
|
82
88
|
};
|
|
83
89
|
return {
|
|
84
90
|
currencyBridge,
|
package/lib/bridge/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":";;;;;;AAAA,mHAA2F;AAC3F,kFAI4D;AAG5D,sCAA0C;AAG1C,4CAA4E;AAC5E,sEAA8C;AAC9C,oFAEqC;AACrC,yCAA4D;AAC5D,8DAA2D;AAC3D,2CAAwC;AACxC,2DAAwD;AACxD,iEAA8D;AAC9D,iEAA8D;AAC9D,6DAA0D;AAC1D,mDAAqD;AACrD,iCAAuD;AACvD,2DAAwD;AACxD,mDAA2E;AAC3E,gEAAuC;AACvC,wDAAuD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/bridge/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAmB,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA6CpD,eAAO,MAAM,SAAS,OAAQ,mBAAmB,KAAG,aA0BnD,CAAC;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/bridge/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAmB,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA6CpD,eAAO,MAAM,SAAS,OAAQ,mBAAmB,KAAG,aA0BnD,CAAC;AAiBF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,EAAE,GACtD,SAAS,CAOX;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG;IAC1E,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,SAAS,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;CAC1B,CAUA;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAQlF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAOtF;AA2CD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,aAAa,EAAE,CAE1F;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAO9F;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,mBAAmB,EAAE,GAClC,aAAa,EAAE,CAEjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uCAAuC,CACrD,oBAAoB,EAAE,mBAAmB,EAAE,EAC3C,SAAS,EAAE,MAAM,GAChB,YAAY,EAAE,CA6ChB"}
|
package/lib/bridge/operations.js
CHANGED
|
@@ -65,6 +65,19 @@ const getTxType = (tx) => {
|
|
|
65
65
|
return "SHIELDED_TX_INTERNAL";
|
|
66
66
|
};
|
|
67
67
|
exports.getTxType = getTxType;
|
|
68
|
+
/**
|
|
69
|
+
* The type the operation carries, which is not always the type the transaction
|
|
70
|
+
* has.
|
|
71
|
+
*
|
|
72
|
+
* A self-transfer moved no value across the wallet boundary, so it has nothing to
|
|
73
|
+
* report in a history list: it names no counterparty, its value is 0, and when it
|
|
74
|
+
* is the shielded leg of a transparent-funded send — a t→z sweep whose whole
|
|
75
|
+
* amount landed on the internal address — the transparent operation already lists
|
|
76
|
+
* the same transaction. `NONE` is how the platform keeps such a transaction in the
|
|
77
|
+
* account data while leaving it out of the lists it would only clutter (see
|
|
78
|
+
* `flattenOperationWithInternalsAndNfts`).
|
|
79
|
+
*/
|
|
80
|
+
const toOperationType = (txType) => txType === "SHIELDED_TX_INTERNAL" ? "NONE" : txType;
|
|
68
81
|
function applyOutputDelta(balance, outputs) {
|
|
69
82
|
let result = balance;
|
|
70
83
|
for (const n of outputs) {
|
|
@@ -197,13 +210,14 @@ function convertShieldedTransactionsToOperations(shieldedTransactions, accountId
|
|
|
197
210
|
// transparent operations and the optimistic operation both follow.
|
|
198
211
|
value = sumNotes("outgoing").plus(deshieldedValue(tx)).plus(fee);
|
|
199
212
|
}
|
|
213
|
+
const operationType = toOperationType(txType);
|
|
200
214
|
const operation = {
|
|
201
|
-
id: (0, operation_1.encodeOperationId)(accountId, tx.id,
|
|
215
|
+
id: (0, operation_1.encodeOperationId)(accountId, tx.id, operationType),
|
|
202
216
|
hash: tx.id,
|
|
203
217
|
accountId,
|
|
204
218
|
blockHash: tx.blockHash,
|
|
205
219
|
blockHeight: tx.blockHeight,
|
|
206
|
-
type:
|
|
220
|
+
type: operationType,
|
|
207
221
|
senders: [],
|
|
208
222
|
recipients: [],
|
|
209
223
|
date: new Date(tx.timestamp * 1000), // zcash shielded transaction timestamps are Unix seconds.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/bridge/operations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/bridge/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+DjE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,WAAW,EACX,YAAY,CACb,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+DjE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,WAAW,EACX,YAAY,CACb,CAAC,oBAAoB,CASrB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.prepareTransaction = void 0;
|
|
4
|
-
const operations_1 = require("./operations");
|
|
5
4
|
const coin_selection_1 = require("../logic/coin-selection");
|
|
6
5
|
const statusHelpers_1 = require("./statusHelpers");
|
|
7
6
|
const note_reservation_1 = require("./note-reservation");
|
|
7
|
+
const spendability_1 = require("../logic/account/spendability");
|
|
8
8
|
// Strip any stale fee/change from a prior prepare and reset the amount so the UI
|
|
9
9
|
// never shows a spendable amount without a matching fee.
|
|
10
10
|
function resetPreparedTransaction(tx, amount) {
|
|
@@ -62,10 +62,7 @@ const prepareTransaction = async (account, transaction) => {
|
|
|
62
62
|
if ((0, statusHelpers_1.isTransparentInputTransfer)(tx.transferType)) {
|
|
63
63
|
return prepareTransparentTransaction(account, tx);
|
|
64
64
|
}
|
|
65
|
-
const
|
|
66
|
-
const allNotes = (0, operations_1.collectIronwoodSpendableNotes)(transactions);
|
|
67
|
-
const reserved = (0, note_reservation_1.getReservedNullifiers)(account);
|
|
68
|
-
const notes = reserved.size > 0 ? allNotes.filter(n => !reserved.has(n.nullifier)) : allNotes;
|
|
65
|
+
const notes = (0, spendability_1.collectSelectableIronwoodNotes)(account, (0, note_reservation_1.getReservedNullifiers)(account));
|
|
69
66
|
return prepareNoteTransaction(notes, tx);
|
|
70
67
|
};
|
|
71
68
|
exports.prepareTransaction = prepareTransaction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;AAIA,
|
|
1
|
+
{"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.ts"],"names":[],"mappings":";;;AAIA,4DAKiC;AACjC,mDAAsF;AACtF,yDAA2D;AAC3D,gEAA+E;AAE/E,iFAAiF;AACjF,yDAAyD;AACzD,SAAS,wBAAwB,CAAC,EAAe,EAAE,MAAiB;IAClE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;IAC9D,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,kFAAkF;AAClF,qDAAqD;AACrD,SAAS,6BAA6B,CAAC,OAAqB,EAAE,EAAe;IAC3E,MAAM,UAAU,GAAG,IAAA,uCAAuB,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,+EAA+E;IAC/E,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY;QACrC,CAAC,CAAC,IAAA,gDAA+B,EAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IACd,MAAM,MAAM,GAAG,IAAA,wCAAuB,EACpC,UAAU,EACV,eAAe,EACf,CAAC,CAAC,EAAE,CAAC,YAAY,EACjB,EAAE,CAAC,YAAY,CAChB,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,wBAAwB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAClE,OAAO;QACL,GAAG,EAAE;QACL,MAAM,EAAE,eAAe;QACvB,aAAa,EAAE,EAAE,EAAE,+CAA+C;QAClE,QAAQ,EAAE,MAAM,CAAC,GAAG;QACpB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,SAAS,sBAAsB,CAAC,KAAsB,EAAE,EAAe;IACrE,6EAA6E;IAC7E,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY;QACrC,CAAC,CAAC,IAAA,2CAA0B,EAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC;QACpD,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IACd,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,wBAAwB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,IAAA,4BAAW,EAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM;QAAE,OAAO,wBAAwB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAClE,OAAO;QACL,GAAG,EAAE;QACL,MAAM,EAAE,eAAe;QACvB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,GAAG;QACpB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,MAAM,kBAAkB,GAGL,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACvD,MAAM,EAAE,GAAG,WAAW,CAAC;IAEvB,IAAI,IAAA,0CAA0B,EAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,OAAO,6BAA6B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,6CAA8B,EAAC,OAAO,EAAE,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC,CAAC;IACtF,OAAO,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAZW,QAAA,kBAAkB,GAAlB,kBAAkB,CAY7B"}
|
|
@@ -9,12 +9,19 @@ import type { SignerContext } from "../types/signer";
|
|
|
9
9
|
* transparent t→t -- goes through this single PCZT path; there is no legacy
|
|
10
10
|
* PSBT fallback in coin-zcash.
|
|
11
11
|
*
|
|
12
|
-
* `logic.combine` still finalizes through the V5 path: @ledgerhq/zcash-utils
|
|
13
|
-
* exposes no V6 counterpart, so a V6 PCZT (any shielded or shielding flow) gets
|
|
14
|
-
* as far as device signing.
|
|
15
|
-
*
|
|
16
12
|
* Every shielded send spends the Ironwood pool, so z→z and z→t both build as V6
|
|
17
13
|
* PCZTs (Ironwood spends). The deprecated Sapling/Orchard send flows are gone.
|
|
14
|
+
*
|
|
15
|
+
* V5 and V6 share this path up to and including finalization: `logic.combine`
|
|
16
|
+
* finalizes either (@ledgerhq/zcash-utils >= 2.0.0 injects Ironwood spend-auth
|
|
17
|
+
* signatures and extracts a V6 transaction), and the device-signing step is
|
|
18
|
+
* identical -- only which bundle carries the spends differs.
|
|
19
|
+
*
|
|
20
|
+
* Broadcast is the exception, and it is the current end of the V6 road: the
|
|
21
|
+
* pinned zcash-utils (2.1.0) still derives the txid through a V5-only guard, so
|
|
22
|
+
* it rejects a V6 transaction after the user has already signed. Every shielded
|
|
23
|
+
* send therefore builds, signs and finalizes but cannot be broadcast until a
|
|
24
|
+
* zcash-utils release carries that fix.
|
|
18
25
|
*/
|
|
19
26
|
export declare const buildSignOperation: (signerContext: SignerContext) => AccountBridge<Transaction, ZcashAccount>["signOperation"];
|
|
20
27
|
//# sourceMappingURL=signOperation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAoC,MAAM,iBAAiB,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAoC,MAAM,iBAAiB,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAwCrD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB,kBACb,aAAa,KAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,eAAe,CA0HpF,CAAC"}
|
|
@@ -24,6 +24,18 @@ const IRONWOOD_BUNDLE_TRANSFER_TYPES = new Set([
|
|
|
24
24
|
"shielded-to-transparent",
|
|
25
25
|
"transparent-to-shielded",
|
|
26
26
|
]);
|
|
27
|
+
/**
|
|
28
|
+
* The builder's stable marker for a note whose leaf position is at or past the
|
|
29
|
+
* number of leaves the Ironwood tree held at its anchor -- the position-range
|
|
30
|
+
* rejection the maturity filter is meant to make unreachable (see
|
|
31
|
+
* `types/errors.ts`'s `ZcashNotesNotYetSpendable`). Matched on the message
|
|
32
|
+
* because the IPC wrapper carries the Rust error through verbatim, with no
|
|
33
|
+
* structured code.
|
|
34
|
+
*/
|
|
35
|
+
function isNotePositionPastAnchor(error) {
|
|
36
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
+
return message.includes("compute_ironwood_witnesses") && message.includes("anchor_total_leaves");
|
|
38
|
+
}
|
|
27
39
|
/**
|
|
28
40
|
* The only bespoke residue of this bridge (kaspa-style): builds the PCZT
|
|
29
41
|
* (`logic.craftTransaction` / `craftIronwoodTransaction`), signs it via the
|
|
@@ -32,12 +44,19 @@ const IRONWOOD_BUNDLE_TRANSFER_TYPES = new Set([
|
|
|
32
44
|
* transparent t→t -- goes through this single PCZT path; there is no legacy
|
|
33
45
|
* PSBT fallback in coin-zcash.
|
|
34
46
|
*
|
|
35
|
-
* `logic.combine` still finalizes through the V5 path: @ledgerhq/zcash-utils
|
|
36
|
-
* exposes no V6 counterpart, so a V6 PCZT (any shielded or shielding flow) gets
|
|
37
|
-
* as far as device signing.
|
|
38
|
-
*
|
|
39
47
|
* Every shielded send spends the Ironwood pool, so z→z and z→t both build as V6
|
|
40
48
|
* PCZTs (Ironwood spends). The deprecated Sapling/Orchard send flows are gone.
|
|
49
|
+
*
|
|
50
|
+
* V5 and V6 share this path up to and including finalization: `logic.combine`
|
|
51
|
+
* finalizes either (@ledgerhq/zcash-utils >= 2.0.0 injects Ironwood spend-auth
|
|
52
|
+
* signatures and extracts a V6 transaction), and the device-signing step is
|
|
53
|
+
* identical -- only which bundle carries the spends differs.
|
|
54
|
+
*
|
|
55
|
+
* Broadcast is the exception, and it is the current end of the V6 road: the
|
|
56
|
+
* pinned zcash-utils (2.1.0) still derives the txid through a V5-only guard, so
|
|
57
|
+
* it rejects a V6 transaction after the user has already signed. Every shielded
|
|
58
|
+
* send therefore builds, signs and finalizes but cannot be broadcast until a
|
|
59
|
+
* zcash-utils release carries that fix.
|
|
41
60
|
*/
|
|
42
61
|
const buildSignOperation = (signerContext) => ({ account, deviceId, transaction }) => new rxjs_1.Observable(subscriber => {
|
|
43
62
|
let cancelled = false;
|
|
@@ -73,9 +92,15 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction
|
|
|
73
92
|
transparentInputs,
|
|
74
93
|
outputs: (0, mapping_1.mapOutputs)(transaction),
|
|
75
94
|
};
|
|
76
|
-
const
|
|
77
|
-
|
|
95
|
+
const useIronwood = IRONWOOD_BUNDLE_TRANSFER_TYPES.has(transaction.transferType);
|
|
96
|
+
const buildResult = useIronwood
|
|
97
|
+
? await (0, craftTransaction_1.craftIronwoodTransaction)(plan).catch(err => {
|
|
98
|
+
if (isNotePositionPastAnchor(err))
|
|
99
|
+
throw new errors_1.ZcashNotesNotYetSpendable();
|
|
100
|
+
throw err;
|
|
101
|
+
})
|
|
78
102
|
: await (0, craftTransaction_1.craftTransaction)(plan);
|
|
103
|
+
const { pcztTransaction } = buildResult;
|
|
79
104
|
if (bailIfCancelled())
|
|
80
105
|
return;
|
|
81
106
|
subscriber.next({ type: "device-signature-requested" });
|
|
@@ -83,17 +108,19 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction
|
|
|
83
108
|
if (typeof signer.signPcztTransaction !== "function") {
|
|
84
109
|
throw new errors_1.ZcashSignerNotSupported("Zcash signing requires a signer exposing signPcztTransaction");
|
|
85
110
|
}
|
|
86
|
-
return signer.signPcztTransaction(
|
|
111
|
+
return signer.signPcztTransaction(pcztTransaction);
|
|
87
112
|
});
|
|
88
113
|
subscriber.next({ type: "device-signature-granted" });
|
|
89
114
|
if (bailIfCancelled())
|
|
90
115
|
return;
|
|
91
116
|
const orchardSignatures = sigResult.orchard.map(a => Buffer.from(a.spendAuthSig).toString("hex"));
|
|
92
117
|
const transparentSignatures = sigResult.transparentInputSigs.map(sig => Buffer.from(sig).toString("hex"));
|
|
118
|
+
const ironwoodSignatures = sigResult.ironwood.map(a => Buffer.from(a.spendAuthSig).toString("hex"));
|
|
93
119
|
const finalizeResult = await (0, combine_1.combine)({
|
|
94
120
|
pczt: buildResult.pcztHex,
|
|
95
121
|
orchardSignatures,
|
|
96
122
|
transparentSignatures,
|
|
123
|
+
...(ironwoodSignatures.length > 0 ? { ironwoodSignatures } : {}),
|
|
97
124
|
});
|
|
98
125
|
if (bailIfCancelled())
|
|
99
126
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AACzC,+BAAkC;AAOlC,2EAAgF;AAGhF,
|
|
1
|
+
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AACzC,+BAAkC;AAOlC,2EAAgF;AAGhF,4CAIyB;AACzB,wDAAsD;AACtD,4EAAmG;AACnG,0DAAuD;AACvD,uCAAwE;AACxE,yDAAsD;AACtD,mDAA0D;AAC1D,yDAAkD;AAElD,mFAAmF;AACnF,mFAAmF;AACnF,4EAA4E;AAC5E,+EAA+E;AAC/E,qFAAqF;AACrF,EAAE;AACF,sFAAsF;AACtF,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAA8B;IAC1E,UAAU;IACV,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,KAAc;IAC9C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,MAAM,kBAAkB,GAC7B,CAAC,aAA4B,EAA6D,EAAE,CAC5F,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CACrC,IAAI,iBAAU,CAAqB,UAAU,CAAC,EAAE;IAC9C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,GAAY,EAAE;QACpC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,UAAU,CAAC,KAAK,CAAC,IAAI,8BAAqB,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,CAAC,KAAK,IAAI,EAAE;QACV,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,aAAa;YAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS;YACpC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAEtE,MAAM,IAAA,4BAAa,GAAE,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5D,MAAM,gBAAgB,GAAG,IAAA,uCAAuB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,MAAM,IAAA,8BAAoB,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAChF,IAAI,eAAe,EAAE;YAAE,OAAO;QAE9B,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,YAAY;YACZ,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,MAAM,EAAE,IAAA,mBAAS,EAAC,WAAW,CAAC,aAAa,CAAC;YAC5C,iBAAiB;YACjB,OAAO,EAAE,IAAA,oBAAU,EAAC,WAAW,CAAC;SACjC,CAAC;QAEF,MAAM,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,WAAW;YAC7B,CAAC,CAAC,MAAM,IAAA,2CAAwB,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC/C,IAAI,wBAAwB,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,kCAAyB,EAAE,CAAC;gBACzE,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC;YACJ,CAAC,CAAC,MAAM,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC;QAExC,IAAI,eAAe,EAAE;YAAE,OAAO;QAE9B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAC7D,IAAI,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;gBACrD,MAAM,IAAI,gCAAuB,CAC/B,8DAA8D,CAC/D,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACtD,IAAI,eAAe,EAAE;YAAE,OAAO;QAE9B,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC5C,CAAC;QACF,MAAM,qBAAqB,GAAG,SAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACrE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjC,CAAC;QACF,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACpD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC5C,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAA,iBAAO,EAAC;YACnC,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,iBAAiB;YACjB,qBAAqB;YACrB,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE;YAAE,OAAO;QAE9B,MAAM,SAAS,GAAkB,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAC/D,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE;YACxE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7E,CAAC,CAAC,EAAE,CACP,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,wBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAA,+BAAY,EAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,SAAS,GAAc;YAC3B,EAAE,EAAE,IAAA,6BAAiB,EAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;YAC7D,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,GAAG;YACH,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/B,UAAU,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACnD,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI;gBACnB,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;gBAChF,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI;oBAC1B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;oBACxD,SAAS;iBACV,CAAC;aAC2B;SAChC,CAAC;QAEF,MAAM,eAAe,GAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC;QACxF,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;QACrD,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AA3HM,QAAA,kBAAkB,GAAlB,kBAAkB,CA2HxB"}
|
package/lib/bridge/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,UAAU,EAAQ,MAAM,MAAM,CAAC;AAC3E,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAM5D,OAAO,EAIL,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAEV,MAAM,IAAI,YAAY,EAGvB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,aAAa,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,UAAU,EAAQ,MAAM,MAAM,CAAC;AAC3E,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAM5D,OAAO,EAIL,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAEV,MAAM,IAAI,YAAY,EAGvB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,aAAa,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAoB,MAAM,kBAAkB,CAAC;AAelG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAoBjE,eAAO,MAAM,cAAc,SACnB,YAAY,mBACD,GAAG,CAAC,MAAM,CAAC,KAC3B,aAQD,CAAC;AAyPH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACpC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAgKhC;AAkFD,eAAO,MAAM,iBAAiB,QACvB,gBAAgB,CAAC,YAAY,CAAC,eACtB,UAAU,KACtB,UAAU,CAAC,kBAAkB,CAkD5B,CAAC;AAEL,KAAK,uBAAuB,GAAG;IAC7B,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACtC,CAAC;AAuHF,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,uBAAuB,EACpC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACpC,SAAS,EAAE,MAAM,GAChB,uBAAuB,CAiGzB;AAwCD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACpC,UAAU,EAAE,UAAU,GACrB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS,CAuB/C;AAOD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACpC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,GAC3B;IAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAYlE;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,GAC3B,qBAAqB,CAAC,YAAY,CAAC,CAiBrC;AAsCD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,aAAc,YAAY,UAAU,YAAY,KAAG,YAGvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE,eAAO,MAAM,iBAAiB,sDACuB,WAAW,WACrD,OAAO,KACf,MAUe,CAAC;AAEnB,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE,eAAO,MAAM,iBAAiB,sDACuB,WAAW,WACrD,OAAO,KACf,MAUe,CAAC;AAEnB,eAAO,MAAM,kBAAkB,OAAQ,cAAc,KAAG,WAavD,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAO,WAAW,KAAG,cAajD,CAAC"}
|
|
@@ -24,6 +24,7 @@ const fromTransactionRaw = (tr) => {
|
|
|
24
24
|
transferType: tr.transferType,
|
|
25
25
|
...(tr.sender !== undefined && { sender: tr.sender }),
|
|
26
26
|
...(tr.recipientType !== undefined && { recipientType: tr.recipientType }),
|
|
27
|
+
...(tr.selfTransfer !== undefined && { selfTransfer: tr.selfTransfer }),
|
|
27
28
|
...(tr.memo !== undefined && { memo: tr.memo }),
|
|
28
29
|
...(tr.zcashFee !== undefined && { zcashFee: new bignumber_js_1.BigNumber(tr.zcashFee) }),
|
|
29
30
|
...(tr.changeAmount !== undefined && { changeAmount: new bignumber_js_1.BigNumber(tr.changeAmount) }),
|
|
@@ -38,6 +39,7 @@ const toTransactionRaw = (t) => {
|
|
|
38
39
|
transferType: t.transferType,
|
|
39
40
|
...(t.sender !== undefined && { sender: t.sender }),
|
|
40
41
|
...(t.recipientType !== undefined && { recipientType: t.recipientType }),
|
|
42
|
+
...(t.selfTransfer !== undefined && { selfTransfer: t.selfTransfer }),
|
|
41
43
|
...(t.memo !== undefined && { memo: t.memo }),
|
|
42
44
|
...(t.zcashFee !== undefined && { zcashFee: t.zcashFee.toString() }),
|
|
43
45
|
...(t.changeAmount !== undefined && { changeAmount: t.changeAmount.toString() }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":";;;AAAA,4EAAsF;AACtF,2EAAqF;AACrF,6EAAuF;AACvF,6FAKqE;AAErE,+CAAyC;AAGlC,MAAM,iBAAiB,GAAG,CAC/B,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAe,EAC9D,OAAgB,EACR,EAAE,CAAC;OAEX,YAAY;IACV,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;QAC/D,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,IAAI;KACtB,CACP;KACK,SAAS;GACX,YAAY,GAAG,CAAC;AAbN,QAAA,iBAAiB,GAAjB,iBAAiB,CAaX;AAEZ,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,IAAA,sCAAwB,EAAC,EAAE,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;QACrD,GAAG,CAAC,EAAE,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC;QAC1E,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/C,GAAG,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,wBAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,IAAI,wBAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":";;;AAAA,4EAAsF;AACtF,2EAAqF;AACrF,6EAAuF;AACvF,6FAKqE;AAErE,+CAAyC;AAGlC,MAAM,iBAAiB,GAAG,CAC/B,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAe,EAC9D,OAAgB,EACR,EAAE,CAAC;OAEX,YAAY;IACV,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;QAC/D,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,IAAI;KACtB,CACP;KACK,SAAS;GACX,YAAY,GAAG,CAAC;AAbN,QAAA,iBAAiB,GAAjB,iBAAiB,CAaX;AAEZ,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,IAAA,sCAAwB,EAAC,EAAE,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;QACrD,GAAG,CAAC,EAAE,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC;QAC1E,GAAG,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;QACvE,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/C,GAAG,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,wBAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,EAAE,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,IAAI,wBAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,kBAAkB,GAAlB,kBAAkB,CAa7B;AAEK,MAAM,gBAAgB,GAAG,CAAC,CAAc,EAAkB,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,oCAAsB,EAAC,CAAC,CAAC,CAAC;IACzC,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;QACxE,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACrE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpE,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;KACjF,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,gBAAgB,GAAhB,gBAAgB,CAa3B;kBAEa;IACb,iBAAiB,EAAjB,QAAA,iBAAiB;IACjB,kBAAkB,EAAlB,QAAA,kBAAkB;IAClB,gBAAgB,EAAhB,QAAA,gBAAgB;IAChB,wBAAwB,EAAxB,4CAAwB;IACxB,sBAAsB,EAAtB,0CAAsB;IACtB,uBAAuB,EAAvB,oCAAuB;CACxB"}
|
package/lib/constants.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare const getZainoEndpoint: () => {
|
|
|
23
23
|
export declare const ZCASH_ACTIVATION_DATE: Date;
|
|
24
24
|
export declare const ZCASH_ACTIVATION_DATE_STRING = "2022-05-31";
|
|
25
25
|
export declare const ZCASH_OUTDATED_SYNC_INTERVAL_MINUTES = 2;
|
|
26
|
+
export declare const ZCASH_SHIELDED_SPENDABILITY_DELAY_BLOCKS = 12;
|
|
26
27
|
export declare const ZCASH_CHECK_OUTDATED_SYNC_INTERVAL = 5000;
|
|
27
28
|
export declare const DEFAULT_ZCASH_PRIVATE_INFO: ZcashPrivateInfo;
|
|
28
29
|
/** Estimation recipient used by estimateMaxSpendable/fee-estimation flows. */
|
package/lib/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,sBAAsB,6CAA6C,CAAC;AAWjF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAQjD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,IAAI,YAAY,YAAY,KAAG,IAM5E,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,eAAe,QAAO,MAAwD,CAAC;AAE5F,uEAAuE;AACvE,eAAO,MAAM,eAAe,QAAO,YAC2B,CAAC;AAE/D,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,QAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAG1E,CAAC;AASH,eAAO,MAAM,qBAAqB,MAAyB,CAAC;AAC5D,eAAO,MAAM,4BAA4B,eAAe,CAAC;AACzD,eAAO,MAAM,oCAAoC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,sBAAsB,6CAA6C,CAAC;AAWjF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAQjD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,IAAI,YAAY,YAAY,KAAG,IAM5E,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,eAAe,QAAO,MAAwD,CAAC;AAE5F,uEAAuE;AACvE,eAAO,MAAM,eAAe,QAAO,YAC2B,CAAC;AAE/D,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,QAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAG1E,CAAC;AASH,eAAO,MAAM,qBAAqB,MAAyB,CAAC;AAC5D,eAAO,MAAM,4BAA4B,eAAe,CAAC;AACzD,eAAO,MAAM,oCAAoC,IAAI,CAAC;AAKtD,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AACxD,eAAO,MAAM,0BAA0B,EAAE,gBAaxC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,wCAAwC,CAAC"}
|