ctoyan/uniffi-zcash-lib

New versions of librustzcash. Please review.

github-actions opened this issue · 0 comments

Check workflow summary

error[E0603]: struct `CommitmentTree` is private
  --> uniffi-zcash-test/src/test_data/transaction.rs:18:19
   |
18 |     merkle_tree::{CommitmentTree, IncrementalWitness},
   |                   ^^^^^^^^^^^^^^ private struct
   |
note: the struct `CommitmentTree` is defined here
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/merkle_tree.rs:5:16
   |
5  |     frontier::{CommitmentTree, Frontier, NonEmptyFrontier},
   |                ^^^^^^^^^^^^^^

error[E0603]: struct `IncrementalWitness` is private
  --> uniffi-zcash-test/src/test_data/transaction.rs:18:35
   |
18 |     merkle_tree::{CommitmentTree, IncrementalWitness},
   |                                   ^^^^^^^^^^^^^^^^^^ private struct
   |
note: the struct `IncrementalWitness` is defined here
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/merkle_tree.rs:6:5
   |
6  |     witness::IncrementalWitness,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/orchard.rs:14:45
    |
14  |     let usk = UnifiedSpendingKey::from_seed(&MainNetwork, seed, 0.into()).unwrap();
    |               ----------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |               |
    |               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedSpendingKey::from_seed`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:149:25
    |
149 |     pub fn from_seed<P: consensus::Parameters>(
    |                         ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedSpendingKey::from_seed`

error[E0277]: the trait bound `orchard::keys::FullViewingKey: From<&orchard::keys::SpendingKey>` is not satisfied
  --> uniffi-zcash-test/src/test_data/orchard.rs:16:88
   |
16 |     writeln!(file, "{}", format_bytes("orchard_spending_key_fvk", FullViewingKey::from(usk.orchard()).to_bytes().as_slice())).unwrap();
   |                                                                   -------------------- ^^^^^^^^^^^^^ the trait `From<&orchard::keys::SpendingKey>` is not implemented for `orchard::keys::FullViewingKey`
   |                                                                   |
   |                                                                   required by a bound introduced by this call
   |
   = help: the following other types implement trait `From<T>`:
             <orchard::keys::FullViewingKey as From<&orchard::keys::SpendingKey>>
             <orchard::keys::FullViewingKey as From<&orchard::zip32::ExtendedSpendingKey>>

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/orchard.rs:65:17
    |
65  |         .to_ivk(orchard::keys::Scope::External)
    |          ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `orchard::keys::Scope`, found a different `orchard::keys::Scope`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::keys::Scope` and `orchard::keys::Scope` have similar names, but are actually distinct types
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:293:1
    |
293 | pub enum Scope {
    | ^^^^^^^^^^^^^^
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:294:1
    |
294 | pub enum Scope {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:460:12
    |
460 |     pub fn to_ivk(&self, scope: Scope) -> IncomingViewingKey {
    |            ^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/orchard.rs:66:18
    |
66  |         .address(diversifier)
    |          ------- ^^^^^^^^^^^ expected `orchard::keys::Diversifier`, found a different `orchard::keys::Diversifier`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::keys::Diversifier` and `orchard::keys::Diversifier` have similar names, but are actually distinct types
note: `orchard::keys::Diversifier` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:552:1
    |
552 | pub struct Diversifier([u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^
note: `orchard::keys::Diversifier` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:553:1
    |
553 | pub struct Diversifier([u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:704:12
    |
704 |     pub fn address(&self, d: Diversifier) -> Address {
    |            ^^^^^^^

error[E0061]: this method takes 1 argument but 2 arguments were supplied
  --> uniffi-zcash-test/src/test_data/secp256k1.rs:10:31
   |
10 |     let secp_secret_key = apk.derive_external_secret_key(0, String::from("kor")).unwrap();
   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^  ---------------------
   |                                                           | |
   |                                                           | unexpected argument of type `std::string::String`
   |                                                           help: remove the extra argument
   |
note: method defined here
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/legacy/keys.rs:47:12
   |
47 |     pub fn derive_external_secret_key(
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:47:45
    |
47  |     let key = UnifiedSpendingKey::from_seed(&MainNetwork, seed, 0.into()).unwrap();
    |               ----------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |               |
    |               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedSpendingKey::from_seed`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:149:25
    |
149 |     pub fn from_seed<P: consensus::Parameters>(
    |                         ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedSpendingKey::from_seed`

error[E0599]: no method named `derive_address` found for struct `zcash_primitives::legacy::keys::ExternalIvk` in the current scope
   --> uniffi-zcash-test/src/test_data/transaction.rs:78:10
    |
73  |       let address = key
    |  ___________________-
74  | |         .transparent()
75  | |         .to_account_pubkey()
76  | |         .derive_external_ivk()
77  | |         .unwrap()
78  | |         .derive_address(0)
    | |         -^^^^^^^^^^^^^^ method not found in `ExternalIvk`
    | |_________|
    |
    |
   ::: /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:170:8
    |
170 |       fn derive_address(
    |          -------------- the method is available for `zcash_primitives::legacy::keys::ExternalIvk` here
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
1   + use zcash_primitives::legacy::keys::IncomingViewingKey;
    |

error[E0061]: this method takes 1 argument but 2 arguments were supplied
  --> uniffi-zcash-test/src/test_data/transaction.rs:86:10
   |
86 |         .derive_external_secret_key(0, String::from("kor"))
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^  ---------------------
   |                                      | |
   |                                      | unexpected argument of type `std::string::String`
   |                                      help: remove the extra argument
   |
note: method defined here
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:47:12
   |
47 |     pub fn derive_external_secret_key(
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:89:32
    |
89  |         .add_transparent_input(secret_key, OutPoint::new([0u8; 32], 1), prev_coin)
    |          --------------------- ^^^^^^^^^^ expected `secp256k1::key::SecretKey`, found `SecretKey`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `SecretKey` and `secp256k1::key::SecretKey` have similar names, but are actually distinct types
note: `SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.21.3/src/key.rs:50:1
    |
50  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
note: `secp256k1::key::SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.26.0/src/key.rs:67:1
    |
67  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `secp256k1` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:270:12
    |
270 |     pub fn add_transparent_input(
    |            ^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `LocalTxProver: TxProver` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:99:42
    |
99  |     let (transaction, _) = builder.build(&prover, &fee_rule).unwrap();
    |                                    ----- ^^^^^^^ the trait `TxProver` is not implemented for `LocalTxProver`
    |                                    |
    |                                    required by a bound introduced by this call
    |
note: required by a bound in `zcash_primitives::transaction::builder::Builder::<'a, P, R>::build`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:319:23
    |
317 |     pub fn build<FR: FeeRule>(
    |            ----- required by a bound in this associated function
318 |         self,
319 |         prover: &impl TxProver,
    |                       ^^^^^^^^ required by this bound in `Builder::<'a, P, R>::build`

error[E0599]: no method named `derive_address` found for struct `zcash_primitives::legacy::keys::ExternalIvk` in the current scope
   --> uniffi-zcash-test/src/test_data/transaction.rs:117:10
    |
112 |       let address = key
    |  ___________________-
113 | |         .transparent()
114 | |         .to_account_pubkey()
115 | |         .derive_external_ivk()
116 | |         .unwrap()
117 | |         .derive_address(0)
    | |         -^^^^^^^^^^^^^^ method not found in `ExternalIvk`
    | |_________|
    |
    |
   ::: /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:170:8
    |
170 |       fn derive_address(
    |          -------------- the method is available for `zcash_primitives::legacy::keys::ExternalIvk` here
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
1   + use zcash_primitives::legacy::keys::IncomingViewingKey;
    |

error[E0061]: this method takes 1 argument but 2 arguments were supplied
   --> uniffi-zcash-test/src/test_data/transaction.rs:125:10
    |
125 |         .derive_external_secret_key(0, String::from("kor"))
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^  ---------------------
    |                                      | |
    |                                      | unexpected argument of type `std::string::String`
    |                                      help: remove the extra argument
    |
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:47:12
    |
47  |     pub fn derive_external_secret_key(
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:128:32
    |
128 |         .add_transparent_input(secret_key, OutPoint::new([0u8; 32], 1), prev_coin)
    |          --------------------- ^^^^^^^^^^ expected `secp256k1::key::SecretKey`, found `SecretKey`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `SecretKey` and `secp256k1::key::SecretKey` have similar names, but are actually distinct types
note: `SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.21.3/src/key.rs:50:1
    |
50  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
note: `secp256k1::key::SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.26.0/src/key.rs:67:1
    |
67  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `secp256k1` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:270:12
    |
270 |     pub fn add_transparent_input(
    |            ^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated associated function `zcash_primitives::transaction::fees::fixed::FeeRule::standard`: To calculate the ZIP 317 fee, use `transaction::fees::zip317::FeeRule::standard()`. For a fixed fee, use the `non_standard` constructor.
   --> uniffi-zcash-test/src/test_data/transaction.rs:136:36
    |
136 |     let fee_rule = fixed::FeeRule::standard();
    |                                    ^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

error[E0277]: the trait bound `LocalTxProver: TxProver` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:138:42
    |
138 |     let (transaction, _) = builder.build(&prover, &fee_rule).unwrap();
    |                                    ----- ^^^^^^^ the trait `TxProver` is not implemented for `LocalTxProver`
    |                                    |
    |                                    required by a bound introduced by this call
    |
note: required by a bound in `zcash_primitives::transaction::builder::Builder::<'a, P, R>::build`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:319:23
    |
317 |     pub fn build<FR: FeeRule>(
    |            ----- required by a bound in this associated function
318 |         self,
319 |         prover: &impl TxProver,
    |                       ^^^^^^^^ required by this bound in `Builder::<'a, P, R>::build`

error[E0599]: no method named `derive_address` found for struct `zcash_primitives::legacy::keys::ExternalIvk` in the current scope
   --> uniffi-zcash-test/src/test_data/transaction.rs:164:10
    |
159 |       let address = key
    |  ___________________-
160 | |         .transparent()
161 | |         .to_account_pubkey()
162 | |         .derive_external_ivk()
163 | |         .unwrap()
164 | |         .derive_address(0)
    | |         -^^^^^^^^^^^^^^ method not found in `ExternalIvk`
    | |_________|
    |
    |
   ::: /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:170:8
    |
170 |       fn derive_address(
    |          -------------- the method is available for `zcash_primitives::legacy::keys::ExternalIvk` here
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
1   + use zcash_primitives::legacy::keys::IncomingViewingKey;
    |

error[E0061]: this method takes 1 argument but 2 arguments were supplied
   --> uniffi-zcash-test/src/test_data/transaction.rs:172:10
    |
172 |         .derive_external_secret_key(0, String::from("kor"))
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^  ---------------------
    |                                      | |
    |                                      | unexpected argument of type `std::string::String`
    |                                      help: remove the extra argument
    |
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:47:12
    |
47  |     pub fn derive_external_secret_key(
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:175:32
    |
175 |         .add_transparent_input(secret_key, OutPoint::new([0u8; 32], 1), prev_coin)
    |          --------------------- ^^^^^^^^^^ expected `secp256k1::key::SecretKey`, found `SecretKey`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `SecretKey` and `secp256k1::key::SecretKey` have similar names, but are actually distinct types
note: `SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.21.3/src/key.rs:50:1
    |
50  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
note: `secp256k1::key::SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.26.0/src/key.rs:67:1
    |
67  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `secp256k1` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:270:12
    |
270 |     pub fn add_transparent_input(
    |            ^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `LocalTxProver: TxProver` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:185:42
    |
185 |     let (transaction, _) = builder.build(&prover, &fee_rule).unwrap();
    |                                    ----- ^^^^^^^ the trait `TxProver` is not implemented for `LocalTxProver`
    |                                    |
    |                                    required by a bound introduced by this call
    |
note: required by a bound in `zcash_primitives::transaction::builder::Builder::<'a, P, R>::build`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:319:23
    |
317 |     pub fn build<FR: FeeRule>(
    |            ----- required by a bound in this associated function
318 |         self,
319 |         prover: &impl TxProver,
    |                       ^^^^^^^^ required by this bound in `Builder::<'a, P, R>::build`

error[E0599]: no method named `derive_address` found for struct `zcash_primitives::legacy::keys::ExternalIvk` in the current scope
   --> uniffi-zcash-test/src/test_data/transaction.rs:203:10
    |
198 |       let address = key
    |  ___________________-
199 | |         .transparent()
200 | |         .to_account_pubkey()
201 | |         .derive_external_ivk()
202 | |         .unwrap()
203 | |         .derive_address(0)
    | |         -^^^^^^^^^^^^^^ method not found in `ExternalIvk`
    | |_________|
    |
    |
   ::: /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:170:8
    |
170 |       fn derive_address(
    |          -------------- the method is available for `zcash_primitives::legacy::keys::ExternalIvk` here
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
1   + use zcash_primitives::legacy::keys::IncomingViewingKey;
    |

error[E0061]: this method takes 1 argument but 2 arguments were supplied
   --> uniffi-zcash-test/src/test_data/transaction.rs:211:10
    |
211 |         .derive_external_secret_key(0, String::from("kor"))
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^  ---------------------
    |                                      | |
    |                                      | unexpected argument of type `std::string::String`
    |                                      help: remove the extra argument
    |
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy/keys.rs:47:12
    |
47  |     pub fn derive_external_secret_key(
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:214:32
    |
214 |         .add_transparent_input(secret_key, OutPoint::new([0u8; 32], 1), prev_coin)
    |          --------------------- ^^^^^^^^^^ expected `secp256k1::key::SecretKey`, found `SecretKey`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `SecretKey` and `secp256k1::key::SecretKey` have similar names, but are actually distinct types
note: `SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.21.3/src/key.rs:50:1
    |
50  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
note: `secp256k1::key::SecretKey` is defined in crate `secp256k1`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/secp256k1-0.26.0/src/key.rs:67:1
    |
67  | pub struct SecretKey([u8; constants::SECRET_KEY_SIZE]);
    | ^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `secp256k1` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:270:12
    |
270 |     pub fn add_transparent_input(
    |            ^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `LocalTxProver: TxProver` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:225:42
    |
225 |     let (transaction, _) = builder.build(&prover, &fee_rule).unwrap();
    |                                    ----- ^^^^^^^ the trait `TxProver` is not implemented for `LocalTxProver`
    |                                    |
    |                                    required by a bound introduced by this call
    |
note: required by a bound in `zcash_primitives::transaction::builder::Builder::<'a, P, R>::build`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:319:23
    |
317 |     pub fn build<FR: FeeRule>(
    |            ----- required by a bound in this associated function
318 |         self,
319 |         prover: &impl TxProver,
    |                       ^^^^^^^^ required by this bound in `Builder::<'a, P, R>::build`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:240:49
    |
240 |     let note = payment_address.create_note(200, rseed);
    |                                -----------      ^^^^^ expected `zcash_primitives::sapling::note::Rseed`, found `Rseed`
    |                                |
    |                                arguments to this method are incorrect
    |
    = note: `Rseed` and `zcash_primitives::sapling::note::Rseed` have similar names, but are actually distinct types
note: `Rseed` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/note.rs:20:1
    |
20  | pub enum Rseed {
    | ^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::note::Rseed` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/note.rs:20:1
    |
20  | pub enum Rseed {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:85:12
    |
85  |     pub fn create_note(&self, value: u64, rseed: Rseed) -> Note {
    |            ^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:242:32
    |
242 |     tree.append(Node::from_cmu(&note.cmu())).unwrap();
    |                 -------------- ^^^^^^^^^^^ expected `ExtractedNoteCommitment`, found a different `ExtractedNoteCommitment`
    |                 |
    |                 arguments to this function are incorrect
    |
    = note: `ExtractedNoteCommitment` and `ExtractedNoteCommitment` have similar names, but are actually distinct types
note: `ExtractedNoteCommitment` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/note/commitment.rs:63:1
    |
63  | pub struct ExtractedNoteCommitment(pub(super) bls12_381::Scalar);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `ExtractedNoteCommitment` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/note/commitment.rs:63:1
    |
63  | pub struct ExtractedNoteCommitment(pub(super) bls12_381::Scalar);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: associated function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/tree.rs:79:12
    |
79  |     pub fn from_cmu(value: &ExtractedNoteCommitment) -> Self {
    |            ^^^^^^^^

error[E0308]: arguments to this method are incorrect
   --> uniffi-zcash-test/src/test_data/transaction.rs:246:10
    |
246 |         .add_sapling_spend(
    |          ^^^^^^^^^^^^^^^^^
247 |             extsk,
    |             ----- expected `zcash_primitives::zip32::ExtendedSpendingKey`, found `ExtendedSpendingKey`
248 |             *payment_address.diversifier(),
    |             ------------------------------ expected `zcash_primitives::sapling::Diversifier`, found `zcash_primitives::sapling::keys::Diversifier`
249 |             note,
    |             ---- expected `zcash_primitives::sapling::Note`, found `zcash_primitives::sapling::note::Note`
    |
    = note: `ExtendedSpendingKey` and `zcash_primitives::zip32::ExtendedSpendingKey` have similar names, but are actually distinct types
note: `ExtendedSpendingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32/sapling.rs:234:1
    |
234 | pub struct ExtendedSpendingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::zip32::ExtendedSpendingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32/sapling.rs:234:1
    |
234 | pub struct ExtendedSpendingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
    = note: `zcash_primitives::sapling::keys::Diversifier` and `zcash_primitives::sapling::Diversifier` have similar names, but are actually distinct types
note: `zcash_primitives::sapling::keys::Diversifier` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/keys.rs:275:1
    |
275 | pub struct Diversifier(pub [u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::Diversifier` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/keys.rs:275:1
    |
275 | pub struct Diversifier(pub [u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
    = note: `zcash_primitives::sapling::note::Note` and `zcash_primitives::sapling::Note` have similar names, but are actually distinct types
note: `zcash_primitives::sapling::note::Note` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/note.rs:41:1
    |
41  | pub struct Note {
    | ^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::Note` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/note.rs:41:1
    |
41  | pub struct Note {
    | ^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:236:12
    |
236 |     pub fn add_sapling_spend(
    |            ^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:259:29
    |
259 |                     .to_ovk(zcash_primitives::zip32::Scope::Internal),
    |                      ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::zip32::Scope`, found a different `zcash_primitives::zip32::Scope`
    |                      |
    |                      arguments to this method are incorrect
    |
    = note: `zcash_primitives::zip32::Scope` and `zcash_primitives::zip32::Scope` have similar names, but are actually distinct types
note: `zcash_primitives::zip32::Scope` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32.rs:147:1
    |
147 | pub enum Scope {
    | ^^^^^^^^^^^^^^
note: `zcash_primitives::zip32::Scope` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32.rs:147:1
    |
147 | pub enum Scope {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32/sapling.rs:716:12
    |
716 |     pub fn to_ovk(&self, scope: Scope) -> OutgoingViewingKey {
    |            ^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:257:17
    |
256 |               Some(
    |               ---- arguments to this enum variant are incorrect
257 | /                 key.sapling()
258 | |                     .to_diversifiable_full_viewing_key()
259 | |                     .to_ovk(zcash_primitives::zip32::Scope::Internal),
    | |_____________________________________________________________________^ expected `zcash_primitives::keys::OutgoingViewingKey`, found `zcash_primitives::sapling::keys::OutgoingViewingKey`
    |
    = note: `zcash_primitives::sapling::keys::OutgoingViewingKey` and `zcash_primitives::keys::OutgoingViewingKey` have similar names, but are actually distinct types
note: `zcash_primitives::sapling::keys::OutgoingViewingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/keys.rs:41:1
    |
41  | pub struct OutgoingViewingKey(pub [u8; 32]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::keys::OutgoingViewingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/keys.rs:41:1
    |
41  | pub struct OutgoingViewingKey(pub [u8; 32]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
help: the type constructed contains `zcash_primitives::sapling::keys::OutgoingViewingKey` due to the type of the argument passed
   --> uniffi-zcash-test/src/test_data/transaction.rs:256:13
    |
256 | /              Some(
257 | |/                 key.sapling()
258 | ||                     .to_diversifiable_full_viewing_key()
259 | ||                     .to_ovk(zcash_primitives::zip32::Scope::Internal),
    | ||_____________________________________________________________________- this argument influences the type of `Some`
260 | |              ),
    | |______________^
note: tuple variant defined here
   --> /Users/stoyankirov/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs:571:5
    |
571 |     Some(#[stable(feature = "rust1", since = "1.0.0")] T),
    |     ^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:261:13
    |
255 |         .add_sapling_output(
    |          ------------------ arguments to this method are incorrect
...
261 |             payment_address,
    |             ^^^^^^^^^^^^^^^ expected `PaymentAddress`, found `zcash_primitives::sapling::address::PaymentAddress`
    |
    = note: `zcash_primitives::sapling::address::PaymentAddress` and `PaymentAddress` have similar names, but are actually distinct types
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:248:12
    |
248 |     pub fn add_sapling_output(
    |            ^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `LocalTxProver: TxProver` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:269:42
    |
269 |     let (transaction, _) = builder.build(&prover, &fee_rule).unwrap();
    |                                    ----- ^^^^^^^ the trait `TxProver` is not implemented for `LocalTxProver`
    |                                    |
    |                                    required by a bound introduced by this call
    |
note: required by a bound in `zcash_primitives::transaction::builder::Builder::<'a, P, R>::build`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/transaction/builder.rs:319:23
    |
317 |     pub fn build<FR: FeeRule>(
    |            ----- required by a bound in this associated function
318 |         self,
319 |         prover: &impl TxProver,
    |                       ^^^^^^^^ required by this bound in `Builder::<'a, P, R>::build`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:288:26
    |
288 |     let ovk = fvk.to_ovk(orchard::keys::Scope::External);
    |                   ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `orchard::keys::Scope`, found a different `orchard::keys::Scope`
    |                   |
    |                   arguments to this method are incorrect
    |
    = note: `orchard::keys::Scope` and `orchard::keys::Scope` have similar names, but are actually distinct types
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:293:1
    |
293 | pub enum Scope {
    | ^^^^^^^^^^^^^^
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:294:1
    |
294 | pub enum Scope {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:468:12
    |
468 |     pub fn to_ovk(&self, scope: Scope) -> OutgoingViewingKey {
    |            ^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:290:17
    |
290 |         .to_ivk(orchard::keys::Scope::Internal)
    |          ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `orchard::keys::Scope`, found a different `orchard::keys::Scope`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::keys::Scope` and `orchard::keys::Scope` have similar names, but are actually distinct types
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:293:1
    |
293 | pub enum Scope {
    | ^^^^^^^^^^^^^^
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:294:1
    |
294 | pub enum Scope {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:460:12
    |
460 |     pub fn to_ivk(&self, scope: Scope) -> IncomingViewingKey {
    |            ^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:291:18
    |
291 |         .address(Diversifier::from_bytes([0u8; 11]));
    |          ------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `orchard::keys::Diversifier`, found a different `orchard::keys::Diversifier`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::keys::Diversifier` and `orchard::keys::Diversifier` have similar names, but are actually distinct types
note: `orchard::keys::Diversifier` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:552:1
    |
552 | pub struct Diversifier([u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^
note: `orchard::keys::Diversifier` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:553:1
    |
553 | pub struct Diversifier([u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:704:12
    |
704 |     pub fn address(&self, d: Diversifier) -> Address {
    |            ^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:304:33
    |
304 |     let note = Note::from_parts(address, note_value, nullifier, rseed).unwrap();
    |                ---------------- ^^^^^^^ expected `Address`, found `orchard::address::Address`
    |                |
    |                arguments to this function are incorrect
    |
    = note: `orchard::address::Address` and `Address` have similar names, but are actually distinct types
note: `orchard::address::Address` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/address.rs:19:1
    |
19  | pub struct Address {
    | ^^^^^^^^^^^^^^^^^^
note: `Address` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/address.rs:19:1
    |
19  | pub struct Address {
    | ^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: associated function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/note.rs:129:12
    |
129 |     pub fn from_parts(
    |            ^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:326:29
    |
326 |         .add_recipient(Some(ovk), address, note_value, Some(memo))
    |                        ---- ^^^ expected `orchard::keys::OutgoingViewingKey`, found a different `orchard::keys::OutgoingViewingKey`
    |                        |
    |                        arguments to this enum variant are incorrect
    |
    = note: `orchard::keys::OutgoingViewingKey` and `orchard::keys::OutgoingViewingKey` have similar names, but are actually distinct types
note: `orchard::keys::OutgoingViewingKey` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:745:1
    |
745 | pub struct OutgoingViewingKey([u8; 32]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `orchard::keys::OutgoingViewingKey` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:717:1
    |
717 | pub struct OutgoingViewingKey([u8; 32]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
help: the type constructed contains `orchard::keys::OutgoingViewingKey` due to the type of the argument passed
   --> uniffi-zcash-test/src/test_data/transaction.rs:326:24
    |
326 |         .add_recipient(Some(ovk), address, note_value, Some(memo))
    |                        ^^^^^---^
    |                             |
    |                             this argument influences the type of `Some`
note: tuple variant defined here
   --> /Users/stoyankirov/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs:571:5
    |
571 |     Some(#[stable(feature = "rust1", since = "1.0.0")] T),
    |     ^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:326:35
    |
326 |         .add_recipient(Some(ovk), address, note_value, Some(memo))
    |          -------------            ^^^^^^^ expected `Address`, found `orchard::address::Address`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::address::Address` and `Address` have similar names, but are actually distinct types
note: `orchard::address::Address` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/address.rs:19:1
    |
19  | pub struct Address {
    | ^^^^^^^^^^^^^^^^^^
note: `Address` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/address.rs:19:1
    |
19  | pub struct Address {
    | ^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/builder.rs:276:12
    |
276 |     pub fn add_recipient(
    |            ^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:329:23
    |
329 |     builder.add_spend(fvk.clone(), note, merkle_path).unwrap();
    |             --------- ^^^^^^^^^^^ expected `orchard::keys::FullViewingKey`, found a different `orchard::keys::FullViewingKey`
    |             |
    |             arguments to this method are incorrect
    |
    = note: `orchard::keys::FullViewingKey` and `orchard::keys::FullViewingKey` have similar names, but are actually distinct types
note: `orchard::keys::FullViewingKey` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:312:1
    |
312 | pub struct FullViewingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `orchard::keys::FullViewingKey` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:311:1
    |
311 | pub struct FullViewingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/builder.rs:241:12
    |
241 |     pub fn add_spend(
    |            ^^^^^^^^^

error[E0277]: the trait bound `SpendAuthorizingKey: From<&orchard::keys::SpendingKey>` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:338:59
    |
338 |         .apply_signatures(OsRng, sighash, &[key.orchard().into()])
    |                                                           ^^^^ the trait `From<&orchard::keys::SpendingKey>` is not implemented for `SpendAuthorizingKey`
    |
    = help: the trait `From<&orchard::keys::SpendingKey>` is implemented for `SpendAuthorizingKey`
    = note: required for `&orchard::keys::SpendingKey` to implement `Into<SpendAuthorizingKey>`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:353:14
    |
353 |         Some(authorized_bundle),
    |         ---- ^^^^^^^^^^^^^^^^^ expected `Bundle<_, Amount>`, found `Bundle<Authorized, Amount>`
    |         |
    |         arguments to this enum variant are incorrect
    |
    = note: `orchard::Bundle<orchard::bundle::Authorized, Amount>` and `orchard::bundle::Bundle<_, Amount>` have similar names, but are actually distinct types
note: `orchard::Bundle<orchard::bundle::Authorized, Amount>` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/bundle.rs:133:1
    |
133 | pub struct Bundle<T: Authorization, V> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `orchard::bundle::Bundle<_, Amount>` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.5.0/src/bundle.rs:133:1
    |
133 | pub struct Bundle<T: Authorization, V> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
help: the type constructed contains `orchard::Bundle<orchard::bundle::Authorized, Amount>` due to the type of the argument passed
   --> uniffi-zcash-test/src/test_data/transaction.rs:353:9
    |
353 |         Some(authorized_bundle),
    |         ^^^^^-----------------^
    |              |
    |              this argument influences the type of `Some`
note: tuple variant defined here
   --> /Users/stoyankirov/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs:571:5
    |
571 |     Some(#[stable(feature = "rust1", since = "1.0.0")] T),
    |     ^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::TestNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/transaction.rs:377:45
    |
377 |     let key = UnifiedSpendingKey::from_seed(&TestNetwork, &seed, 0.into()).unwrap();
    |               ----------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::TestNetwork`
    |               |
    |               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedSpendingKey::from_seed`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:149:25
    |
149 |     pub fn from_seed<P: consensus::Parameters>(
    |                         ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedSpendingKey::from_seed`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:396:17
    |
396 |         .to_ivk(Scope::Internal);
    |          ------ ^^^^^^^^^^^^^^^ expected `orchard::keys::Scope`, found a different `orchard::keys::Scope`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::keys::Scope` and `orchard::keys::Scope` have similar names, but are actually distinct types
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.3.0/src/keys.rs:293:1
    |
293 | pub enum Scope {
    | ^^^^^^^^^^^^^^
note: `orchard::keys::Scope` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:294:1
    |
294 | pub enum Scope {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:460:12
    |
460 |     pub fn to_ivk(&self, scope: Scope) -> IncomingViewingKey {
    |            ^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/transaction.rs:401:37
    |
401 |         .decrypt_output_with_key(0, &ivk)
    |          -----------------------    ^^^^ expected `orchard::keys::IncomingViewingKey`, found a different `orchard::keys::IncomingViewingKey`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `orchard::keys::IncomingViewingKey` and `orchard::keys::IncomingViewingKey` have similar names, but are actually distinct types
note: `orchard::keys::IncomingViewingKey` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.4.0/src/keys.rs:650:1
    |
650 | pub struct IncomingViewingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `orchard::keys::IncomingViewingKey` is defined in crate `orchard`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.5.0/src/keys.rs:650:1
    |
650 | pub struct IncomingViewingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `orchard` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/orchard-0.5.0/src/bundle.rs:307:12
    |
307 |     pub fn decrypt_output_with_key(
    |            ^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:17:45
    |
17  |     let usk = UnifiedSpendingKey::from_seed(&MainNetwork, seed, 0.into()).unwrap();
    |               ----------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |               |
    |               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedSpendingKey::from_seed`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:149:25
    |
149 |     pub fn from_seed<P: consensus::Parameters>(
    |                         ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedSpendingKey::from_seed`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:18:60
    |
18  |     let encoded = usk.to_unified_full_viewing_key().encode(&MainNetwork);
    |                                                     ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                     |
    |                                                     required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedFullViewingKey::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:441:22
    |
441 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedFullViewingKey::encode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:41:54
    |
41  |     let recipient_address = RecipientAddress::decode(&MainNetwork, recipient_address).unwrap();
    |                             ------------------------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                             |
    |                             required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `RecipientAddress::decode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:230:22
    |
230 |     pub fn decode<P: consensus::Parameters>(params: &P, s: &str) -> Option<Self> {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `RecipientAddress::decode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:43:78
    |
43  |         writeln!(file, "recipient_address_unified_source:{}", address.encode(&MainNetwork)).unwrap();
    |                                                                       ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                                       |
    |                                                                       required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:169:22
    |
169 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedAddress::encode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:44:81
    |
44  |         writeln!(file, "recipient_address_unified:{}", recipient_address.encode(&MainNetwork)).unwrap();
    |                                                                          ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                                          |
    |                                                                          required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `RecipientAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:236:22
    |
236 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `RecipientAddress::encode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
  --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:49:79
   |
49 |         writeln!(file, "recipient_address_shielded_source:{}", sapling.encode(&MainNetwork)).unwrap();
   |                                                                        ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
   |                                                                        |
   |                                                                        required by a bound introduced by this call
   |
   = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
             zcash_primitives::consensus::MainNetwork
             zcash_primitives::consensus::Network
             zcash_primitives::consensus::TestNetwork
   = note: required for `zcash_primitives::sapling::address::PaymentAddress` to implement `AddressCodec<zcash_primitives::consensus::MainNetwork>`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:50:82
    |
50  |         writeln!(file, "recipient_address_shielded:{}", recipient_address.encode(&MainNetwork)).unwrap();
    |                                                                           ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                                           |
    |                                                                           required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `RecipientAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:236:22
    |
236 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `RecipientAddress::encode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
  --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:55:86
   |
55 |         writeln!(file, "recipient_address_transparent_source:{}", transparent.encode(&MainNetwork)).unwrap();
   |                                                                               ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
   |                                                                               |
   |                                                                               required by a bound introduced by this call
   |
   = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
             zcash_primitives::consensus::MainNetwork
             zcash_primitives::consensus::Network
             zcash_primitives::consensus::TestNetwork
   = note: required for `zcash_primitives::legacy::TransparentAddress` to implement `AddressCodec<zcash_primitives::consensus::MainNetwork>`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:56:85
    |
56  |         writeln!(file, "recipient_address_transparent:{}", recipient_address.encode(&MainNetwork)).unwrap();
    |                                                                              ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                                              |
    |                                                                              required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `RecipientAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:236:22
    |
236 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `RecipientAddress::encode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:65:9
    |
64  |     let ufvk = UnifiedSpendingKey::from_seed(
    |                ----------------------------- required by a bound introduced by this call
65  |         &MainNetwork,
    |         ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedSpendingKey::from_seed`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:149:25
    |
149 |     pub fn from_seed<P: consensus::Parameters>(
    |                         ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedSpendingKey::from_seed`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:69:31
    |
69  |     let encoded = ufvk.encode(&MainNetwork);
    |                        ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                        |
    |                        required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedFullViewingKey::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:441:22
    |
441 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedFullViewingKey::encode`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:74:37
    |
74  |     let ufvk_address = ufvk.address(index).unwrap().encode(&MainNetwork);
    |                             ------- ^^^^^ expected `zcash_primitives::zip32::DiversifierIndex`, found a different `zcash_primitives::zip32::DiversifierIndex`
    |                             |
    |                             arguments to this method are incorrect
    |
    = note: `zcash_primitives::zip32::DiversifierIndex` and `zcash_primitives::zip32::DiversifierIndex` have similar names, but are actually distinct types
note: `zcash_primitives::zip32::DiversifierIndex` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32.rs:86:1
    |
86  | pub struct DiversifierIndex(pub [u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::zip32::DiversifierIndex` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32.rs:86:1
    |
86  | pub struct DiversifierIndex(pub [u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:497:12
    |
497 |     pub fn address(&self, j: DiversifierIndex) -> Option<UnifiedAddress> {
    |            ^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:74:60
    |
74  |     let ufvk_address = ufvk.address(index).unwrap().encode(&MainNetwork);
    |                                                     ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                     |
    |                                                     required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:169:22
    |
169 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedAddress::encode`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:77:82
    |
77  |     let (ufvk_find_address_address, ufvk_find_address_index) = ufvk.find_address(index).unwrap();
    |                                                                     ------------ ^^^^^ expected `zcash_primitives::zip32::DiversifierIndex`, found a different `zcash_primitives::zip32::DiversifierIndex`
    |                                                                     |
    |                                                                     arguments to this method are incorrect
    |
    = note: `zcash_primitives::zip32::DiversifierIndex` and `zcash_primitives::zip32::DiversifierIndex` have similar names, but are actually distinct types
note: `zcash_primitives::zip32::DiversifierIndex` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32.rs:86:1
    |
86  | pub struct DiversifierIndex(pub [u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::zip32::DiversifierIndex` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32.rs:86:1
    |
86  | pub struct DiversifierIndex(pub [u8; 11]);
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:531:12
    |
531 |     pub fn find_address(
    |            ^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:78:78
    |
78  |     let ufvk_find_address_address_encoded = ufvk_find_address_address.encode(&MainNetwork);
    |                                                                       ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                                       |
    |                                                                       required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:169:22
    |
169 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedAddress::encode`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_client_backend.rs:84:84
    |
84  |     let ufvk_default_address_address_encoded = ufvk_default_address_address.encode(&MainNetwork);
    |                                                                             ------ ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                                             |
    |                                                                             required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedAddress::encode`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/address.rs:169:22
    |
169 |     pub fn encode<P: consensus::Parameters>(&self, params: &P) -> String {
    |                      ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedAddress::encode`

error[E0061]: this method takes 1 argument but 2 arguments were supplied
  --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:23:78
   |
23 |     writeln!(file, "{}", format_bytes("apk_derive_external_secret_key", &apk.derive_external_secret_key(0, String::from("kor")).unwrap().serialize_secret())).unwrap();
   |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^  ---------------------
   |                                                                                                          | |
   |                                                                                                          | unexpected argument of type `std::string::String`
   |                                                                                                          help: remove the extra argument
   |
note: method defined here
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/legacy/keys.rs:47:12
   |
47 |     pub fn derive_external_secret_key(
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `serialize_secret` found for struct `secp256k1::key::SecretKey` in the current scope
  --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:23:138
   |
23 |     writeln!(file, "{}", format_bytes("apk_derive_external_secret_key", &apk.derive_external_secret_key(0, String::from("kor")).unwrap().serialize_secret())).unwrap();
   |                                                                                                                                          ^^^^^^^^^^^^^^^^ method not found in `SecretKey`

error[E0599]: no method named `serialize_secret` found for struct `secp256k1::key::SecretKey` in the current scope
  --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:24:117
   |
24 |     writeln!(file, "{}", format_bytes("apk_derive_internal_secret_key", &apk.derive_internal_secret_key(0).unwrap().serialize_secret())).unwrap();
   |                                                                                                                     ^^^^^^^^^^^^^^^^ method not found in `SecretKey`

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:33:102
    |
33  |     writeln!(file, "external_ivk_default_address_address:{}", encoding::encode_transparent_address_p(&MainNetwork, &default_address_address)).unwrap();
    |                                                               -------------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                               |
    |                                                               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_transparent_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:385:40
    |
385 | pub fn encode_transparent_address_p<P: consensus::Parameters>(
    |                                        ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_transparent_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:33:116
    |
33  |     writeln!(file, "external_ivk_default_address_address:{}", encoding::encode_transparent_address_p(&MainNetwork, &default_address_address)).unwrap();
    |                                                               --------------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::legacy::TransparentAddress`, found `TransparentAddress`
    |                                                               |
    |                                                               arguments to this function are incorrect
    |
    = note: `TransparentAddress` and `zcash_primitives::legacy::TransparentAddress` have similar names, but are actually distinct types
note: `TransparentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/legacy.rs:99:1
    |
99  | pub enum TransparentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::legacy::TransparentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy.rs:99:1
    |
99  | pub enum TransparentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:385:8
    |
385 | pub fn encode_transparent_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:40:102
    |
40  |     writeln!(file, "internal_ivk_default_address_address:{}", encoding::encode_transparent_address_p(&MainNetwork, &default_address_address)).unwrap();
    |                                                               -------------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                                               |
    |                                                               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_transparent_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:385:40
    |
385 | pub fn encode_transparent_address_p<P: consensus::Parameters>(
    |                                        ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_transparent_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:40:116
    |
40  |     writeln!(file, "internal_ivk_default_address_address:{}", encoding::encode_transparent_address_p(&MainNetwork, &default_address_address)).unwrap();
    |                                                               --------------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::legacy::TransparentAddress`, found `TransparentAddress`
    |                                                               |
    |                                                               arguments to this function are incorrect
    |
    = note: `TransparentAddress` and `zcash_primitives::legacy::TransparentAddress` have similar names, but are actually distinct types
note: `TransparentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/legacy.rs:99:1
    |
99  | pub enum TransparentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::legacy::TransparentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/legacy.rs:99:1
    |
99  | pub enum TransparentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:385:8
    |
385 | pub fn encode_transparent_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
  --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:47:70
   |
47 |     let extended_private_key = AccountPrivKey::from_extended_privkey(extended_priv_key);
   |                                ------------------------------------- ^^^^^^^^^^^^^^^^^ expected `hdwallet::extended_key::ExtendedPrivKey`, found `ExtendedPrivKey`
   |                                |
   |                                arguments to this function are incorrect
   |
   = note: `ExtendedPrivKey` and `hdwallet::extended_key::ExtendedPrivKey` have similar names, but are actually distinct types
note: `ExtendedPrivKey` is defined in crate `hdwallet`
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hdwallet-0.3.1/src/extended_key.rs:38:1
   |
38 | pub struct ExtendedPrivKey {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `hdwallet::extended_key::ExtendedPrivKey` is defined in crate `hdwallet`
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hdwallet-0.4.1/src/extended_key.rs:38:1
   |
38 | pub struct ExtendedPrivKey {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: perhaps two different versions of crate `hdwallet` are being used?
note: associated function defined here
  --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/legacy/keys.rs:37:12
   |
37 |     pub fn from_extended_privkey(extprivkey: ExtendedPrivKey) -> Self {
   |            ^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `to_bytes` found for struct `jubjub::SubgroupPoint` in the current scope
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:70:75
    |
70  |     let diversifiable_fvk_nk = diversifiable_fvk.to_nk(Scope::External).0.to_bytes();
    |                                                                           ^^^^^^^^ method not found in `SubgroupPoint`
    |
   ::: /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/group-0.13.0/src/lib.rs:152:8
    |
152 |     fn to_bytes(&self) -> Self::Repr;
    |        -------- the method is available for `jubjub::SubgroupPoint` here
    |
    = help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
    |
1   + use group::GroupEncoding;
    |

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:79:72
    |
79  |     let diversifiable_fvk_address = encoding::encode_payment_address_p(&MainNetwork, &diversifiable_fvk.address(1u32.into()).unwrap());
    |                                     ---------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                     |
    |                                     required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_payment_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:36
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |                                    ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_payment_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:79:86
    |
79  |     let diversifiable_fvk_address = encoding::encode_payment_address_p(&MainNetwork, &diversifiable_fvk.address(1u32.into()).unwrap());
    |                                     ----------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::sapling::address::PaymentAddress`, found `PaymentAddress`
    |                                     |
    |                                     arguments to this function are incorrect
    |
    = note: `PaymentAddress` and `zcash_primitives::sapling::address::PaymentAddress` have similar names, but are actually distinct types
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:8
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:85:72
    |
85  |     let dfvk_find_address_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_find_address_address);
    |                                     ---------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                     |
    |                                     required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_payment_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:36
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |                                    ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_payment_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:85:86
    |
85  |     let dfvk_find_address_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_find_address_address);
    |                                     ----------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::sapling::address::PaymentAddress`, found `PaymentAddress`
    |                                     |
    |                                     arguments to this function are incorrect
    |
    = note: `PaymentAddress` and `zcash_primitives::sapling::address::PaymentAddress` have similar names, but are actually distinct types
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:8
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:91:75
    |
91  |     let dfvk_default_address_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_default_address_address);
    |                                        ---------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                        |
    |                                        required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_payment_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:36
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |                                    ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_payment_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:91:89
    |
91  |     let dfvk_default_address_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_default_address_address);
    |                                        ----------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::sapling::address::PaymentAddress`, found `PaymentAddress`
    |                                        |
    |                                        arguments to this function are incorrect
    |
    = note: `PaymentAddress` and `zcash_primitives::sapling::address::PaymentAddress` have similar names, but are actually distinct types
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:8
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:96:71
    |
96  |     let dfvk_diversified_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_diversified_address);
    |                                    ---------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                    |
    |                                    required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_payment_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:36
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |                                    ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_payment_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:96:85
    |
96  |     let dfvk_diversified_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_diversified_address);
    |                                    ----------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::sapling::address::PaymentAddress`, found `PaymentAddress`
    |                                    |
    |                                    arguments to this function are incorrect
    |
    = note: `PaymentAddress` and `zcash_primitives::sapling::address::PaymentAddress` have similar names, but are actually distinct types
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:8
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:102:74
    |
102 |     let dfvk_change_address_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_change_address_address);
    |                                       ---------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                       |
    |                                       required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_payment_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:36
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |                                    ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_payment_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:102:88
    |
102 |     let dfvk_change_address_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_change_address_address);
    |                                       ----------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::sapling::address::PaymentAddress`, found `PaymentAddress`
    |                                       |
    |                                       arguments to this function are incorrect
    |
    = note: `PaymentAddress` and `zcash_primitives::sapling::address::PaymentAddress` have similar names, but are actually distinct types
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:8
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:106:78
    |
106 |     let dfvk_diversified_change_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_diversified_change_address);
    |                                           ---------------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |                                           |
    |                                           required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `encode_payment_address_p`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:36
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |                                    ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `encode_payment_address_p`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:106:92
    |
106 |     let dfvk_diversified_change_address = encoding::encode_payment_address_p(&MainNetwork, &dfvk_diversified_change_address);
    |                                           ----------------------------------               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::sapling::address::PaymentAddress`, found `PaymentAddress`
    |                                           |
    |                                           arguments to this function are incorrect
    |
    = note: `PaymentAddress` and `zcash_primitives::sapling::address::PaymentAddress` have similar names, but are actually distinct types
note: `PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
note: `zcash_primitives::sapling::address::PaymentAddress` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/sapling/address.rs:15:1
    |
15  | pub struct PaymentAddress {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:275:8
    |
275 | pub fn encode_payment_address_p<P: consensus::Parameters>(
    |        ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:126:9
    |
124 |     let sapling_fvk_encoded = encoding::encode_extended_full_viewing_key(
    |                               ------------------------------------------ arguments to this function are incorrect
125 |         MainNetwork.hrp_sapling_extended_full_viewing_key(),
126 |         &sapling_fvk,
    |         ^^^^^^^^^^^^ expected `ExtendedFullViewingKey`, found `zcash_primitives::zip32::ExtendedFullViewingKey`
    |
    = note: `zcash_primitives::zip32::ExtendedFullViewingKey` and `ExtendedFullViewingKey` have similar names, but are actually distinct types
note: `zcash_primitives::zip32::ExtendedFullViewingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32/sapling.rs:481:1
    |
481 | pub struct ExtendedFullViewingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `ExtendedFullViewingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32/sapling.rs:481:1
    |
481 | pub struct ExtendedFullViewingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:224:8
    |
224 | pub fn encode_extended_full_viewing_key(hrp: &str, extfvk: &ExtendedFullViewingKey) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `zcash_primitives::consensus::MainNetwork: zcash_primitives::consensus::Parameters` is not satisfied
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:156:45
    |
156 |     let usk = UnifiedSpendingKey::from_seed(&MainNetwork, seed, 0.into()).unwrap();
    |               ----------------------------- ^^^^^^^^^^^^ the trait `zcash_primitives::consensus::Parameters` is not implemented for `zcash_primitives::consensus::MainNetwork`
    |               |
    |               required by a bound introduced by this call
    |
    = help: the following other types implement trait `zcash_primitives::consensus::Parameters`:
              zcash_primitives::consensus::MainNetwork
              zcash_primitives::consensus::Network
              zcash_primitives::consensus::TestNetwork
note: required by a bound in `UnifiedSpendingKey::from_seed`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/keys.rs:149:25
    |
149 |     pub fn from_seed<P: consensus::Parameters>(
    |                         ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `UnifiedSpendingKey::from_seed`

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:160:17
    |
160 |         .to_ovk(zcash_primitives::zip32::Scope::External)
    |          ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `zcash_primitives::zip32::Scope`, found a different `zcash_primitives::zip32::Scope`
    |          |
    |          arguments to this method are incorrect
    |
    = note: `zcash_primitives::zip32::Scope` and `zcash_primitives::zip32::Scope` have similar names, but are actually distinct types
note: `zcash_primitives::zip32::Scope` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32.rs:147:1
    |
147 | pub enum Scope {
    | ^^^^^^^^^^^^^^
note: `zcash_primitives::zip32::Scope` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32.rs:147:1
    |
147 | pub enum Scope {
    | ^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: method defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32/sapling.rs:716:12
    |
716 |     pub fn to_ovk(&self, scope: Scope) -> OutgoingViewingKey {
    |            ^^^^^^

error[E0308]: mismatched types
   --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:180:107
    |
180 |     let encoded = encoding::encode_extended_spending_key(MainNetwork.hrp_sapling_extended_spending_key(), &esk);
    |                   -------------------------------------- arguments to this function are incorrect         ^^^^ expected `ExtendedSpendingKey`, found `zcash_primitives::zip32::ExtendedSpendingKey`
    |
    = note: `zcash_primitives::zip32::ExtendedSpendingKey` and `ExtendedSpendingKey` have similar names, but are actually distinct types
note: `zcash_primitives::zip32::ExtendedSpendingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.12.0/src/zip32/sapling.rs:234:1
    |
234 | pub struct ExtendedSpendingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `ExtendedSpendingKey` is defined in crate `zcash_primitives`
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_primitives-0.11.0/src/zip32/sapling.rs:234:1
    |
234 | pub struct ExtendedSpendingKey {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `zcash_primitives` are being used?
note: function defined here
   --> /Users/stoyankirov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/zcash_client_backend-0.9.0/src/encoding.rs:190:8
    |
190 | pub fn encode_extended_spending_key(hrp: &str, extsk: &ExtendedSpendingKey) -> String {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `group::GroupEncoding`
 --> uniffi-zcash-test/src/test_data/zcash_primitives.rs:3:5
  |
3 | use group::GroupEncoding;
  |     ^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `legacy::keys::IncomingViewingKey`
  --> uniffi-zcash-test/src/test_data/transaction.rs:16:5
   |
16 |     legacy::keys::IncomingViewingKey,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0061, E0277, E0308, E0599, E0603.
For more information about an error, try `rustc --explain E0061`.
warning: `uniffi-zcash-test` (lib) generated 3 warnings
error: could not compile `uniffi-zcash-test` (lib) due to 84 previous errors; 3 warnings emitted
warning: build failed, waiting for other jobs to finish...