diff --git a/.cargo/mutants.toml b/.cargo/mutants.toml index 87cffbcf21..455bc8e76d 100644 --- a/.cargo/mutants.toml +++ b/.cargo/mutants.toml @@ -1,5 +1,5 @@ additional_cargo_args = ["--all-features"] -examine_globs = ["units/src/**/*.rs", "primitives/src/**/*.rs"] +examine_globs = ["consensus_encoding/src/**/*.rs", "units/src/**/*.rs", "primitives/src/**/*.rs"] exclude_globs = [ "units/src/amount/verification.rs" # kani tests ] @@ -9,28 +9,58 @@ exclude_re = [ "impl fmt::Debug", ".*Error", "deserialize", # Skip serde mutation tests + "serde_details::", # Skip serde mutation tests "Iterator", # Mutating operations in an iterator can result in an infinite loop - "match arm", "match guard", # New addition in cargo-mutants 25.0.1 deletes match arms and replaces match guards even in excluded functions + "::decoder", # Mutant replacing Default::default() is equivalent to returning new() + "::read_limit", # Function is for optimization and does not need to be tested. + # ----------------------------------Crate-specific exclusions---------------------------------- - # Units + # units # src/amount/mod.rs - "parse_signed_to_satoshi", # Can't kill all mutants since there is no denomination smaller than Satoshi - "fmt_satoshi_in", # Related to formatting/display - "dec_width", # Replacing num /= 10 with num %=10 in a loop causes a timeout due to infinite loop + "units/.* parse_signed_to_satoshi", # Can't kill all mutants since there is no denomination smaller than Satoshi + "units/.* fmt_satoshi_in", # Related to formatting/display + "units/.* dec_width", # Replacing num /= 10 with num %=10 in a loop causes a timeout due to infinite loop # src/locktime/relative.rs - "Time::to_consensus_u32", # Mutant from replacing | with ^, this returns the same value since the XOR is taken against the u16 with an all-zero bitmask - "FeeRate::fee_vb", # Deprecated - "FeeRate::fee_wu", # Deprecated - "SignedAmount::checked_abs", # Deprecated + "units/.* LockTime::to_consensus_u32", # Mutant from replacing | with ^, this returns the same value since the XOR is taken against the u16 with an all-zero bitmask + "units/.* FeeRate::fee_vb", # Deprecated + "units/.* FeeRate::fee_wu", # Deprecated + "units/.* SignedAmount::checked_abs", # Deprecated + "units/.* NumberOfBlocks::to_consensus_u32", # Deprecated + "units/.* NumberOfBlocks::value", # Deprecated + "units/.* NumberOf512Seconds::to_consensus_u32", # Deprecated + "units/.* NumberOf512Seconds::value", # Deprecated + "units/.* MedianTimePast::to_consensus_u32", # Deprecated + "units/.* Height::to_consensus_u32", # Deprecated + "units/.* Sequence::to_hex", # Deprecated + "units/.* Sequence::from_512_second_intervals", # Mutant from replacing | with ^, this returns the same value since the XOR is taken against the u16 with an all-zero bitmask # primitives - "Sequence::from_512_second_intervals", # Mutant from replacing | with ^, this returns the same value since the XOR is taken against the u16 with an all-zero bitmask - "Opcode::classify", # Not possible to kill all mutants without individually checking every opcode classification - "Block::cached_witness_root", # Skip getters - "Block::transactions", # Skip getters - "Script::to_bytes", # Deprecated - "decode_cursor", # Mutating operations in decode_cursor can result in an infinite loop - "fmt_debug", # Mutants from formatting/display changes - "fmt_debug_pretty", # Mutants from formatting/display changes + "primitives/.* Opcode::classify", # Not possible to kill all mutants without individually checking every opcode classification + "primitives/.* Block::cached_witness_root", # Skip getters + "primitives/.* Block::transactions", # Skip getters + "primitives/.* Script::to_bytes", # Deprecated + "primitives/.* decode_cursor", # Mutating operations in decode_cursor can result in an infinite loop + "primitives/.* fmt_debug", # Mutants from formatting/display changes + "primitives/.* fmt_debug_pretty", # Mutants from formatting/display changes + "primitives/.* CompactTarget::to_hex", # Deprecated + "primitives/.* Script::to_hex", # Deprecated + "primitives/.* Script::to_hex", # Deprecated + "primitives/.* ScriptBuf::to_hex", # Deprecated + "primitives/.* ScriptBuf::to_hex", # Deprecated + "primitives/.* >::current_chunk", # Replacing the return with Some(vec![]) causes an infinite loop. + "primitives/.* >::advance", # Replacing the return with true causes an infinite loop. + "primitives/.* ::push_bytes", # Replacing == with != causes an infinite loop + "primitives/.* WitnessDecoder::resize_if_needed", # Replacing *= with += still resizes the buffer making the mutant untestable. + "primitives/.* replace \\+ with \\* in MerkleNode::calculate_root", # Replacing + with * causes an infinite loop + "primitives/.* replace == with != in MerkleNode::calculate_root", # Replacing == with != isn't caught unless alloc is disabled. + + # consensus_encoding - most of these are for mutations in the logic used to determine when to stop encoding or decoding. + "consensus_encoding/.* >::push_bytes", # Mutations cause an infinite loop + "consensus_encoding/.* ::end", # Mutations cause an infinite loop + "consensus_encoding/.* encode_to_vec", # Mutations cause an infinite loop + "consensus_encoding/.* encode_to_writer", # Mutations cause an infinite loop + "consensus_encoding/.* decode_from_slice", # Mutations cause an infinite loop + "consensus_encoding/.* decode_from_read", # Mutations cause an infinite loop + "consensus_encoding/.* ::push_bytes", # Mutations cause an infinite loop ] diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 453228e1c2..bf17342789 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,3 +6,7 @@ updates: schedule: # Check for updates to GitHub Actions every week interval: "weekly" + # Defines a cooldown period for dependency updates, + # allowing updates to be delayed for a configurable number of days. + cooldown: + default-days: 60 diff --git a/.github/workflows/README.md b/.github/workflows/README.md index f93b40cd1c..5bb18672f2 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -28,7 +28,13 @@ Run from rust.yml unless stated otherwise. Unfortunately we are now exceeding th 14. `ASAN` 15. `WASM` 16. `Kani` -17. `Coveralls` - run by `coveralls.yml` -18. `release` - run by `release.yml` -19. `labeler` - run by `manage-pr.yml` -20. `Shellcheck` - run by `shellcheck.yml` +17. `API` +18. `Policy` - enforce repository coding policy. +19. `Re-exports` +20. `DiffMutants` +21. `release` - run by `release.yml` +22. `labeler` - run by `manage-pr.yml` +23. `Shellcheck` - run by `shellcheck.yml` + +If any change touches the `.github/` directory then the `zizmor`, run by `zizmor.yml`, will be +triggered for that PR. diff --git a/.github/workflows/cargo-semver-checks-version b/.github/workflows/cargo-semver-checks-version index 72a8a6313b..bcce5d06b8 100644 --- a/.github/workflows/cargo-semver-checks-version +++ b/.github/workflows/cargo-semver-checks-version @@ -1 +1 @@ -0.41.0 +0.45.0 diff --git a/.github/workflows/coveralls.yml b/.github/workflows/coveralls.yml deleted file mode 100644 index 688481ef81..0000000000 --- a/.github/workflows/coveralls.yml +++ /dev/null @@ -1,24 +0,0 @@ -on: - - push - - pull_request - -name: Code coverage with llvm-cov - -jobs: - Coveralls: - name: Code coverage - stable toolchain - runs-on: ubuntu-24.04 - strategy: - fail-fast: false - steps: - - name: Checkout Crate - uses: actions/checkout@v4 - - name: Checkout Toolchain - # https://github.com/dtolnay/rust-toolchain - uses: dtolnay/rust-toolchain@stable - - name: Install cargo-llvm-cov - uses: taiki-e/install-action@cargo-llvm-cov - - name: Generate code coverage for tests - run: cargo llvm-cov --ignore-filename-regex fuzz --all-features --workspace --lcov --output-path lcov.info - - name: Upload report to coveralls - uses: coverallsapp/github-action@v2 diff --git a/.github/workflows/cron-daily-fuzz.yml b/.github/workflows/cron-daily-fuzz.yml index 253be2af24..50658c9f18 100644 --- a/.github/workflows/cron-daily-fuzz.yml +++ b/.github/workflows/cron-daily-fuzz.yml @@ -7,40 +7,59 @@ on: # - 6am CET # - 4pm AEDT - cron: '00 05 * * *' +permissions: {} jobs: fuzz: if: ${{ !github.event.act }} runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: # We only get 20 jobs at a time, we probably don't want to go # over that limit with fuzzing because of the hour run time. fuzz_target: [ - bitcoin_deserialize_address, + bitcoin_arbitrary_block, + bitcoin_arbitrary_script, + bitcoin_arbitrary_transaction, + bitcoin_arbitrary_witness, bitcoin_deserialize_block, bitcoin_deserialize_prefilled_transaction, bitcoin_deserialize_psbt, bitcoin_deserialize_script, bitcoin_deserialize_transaction, bitcoin_deserialize_witness, - bitcoin_deser_net_msg, - bitcoin_outpoint_string, + bitcoin_parse_address, + bitcoin_parse_outpoint, bitcoin_script_bytes_to_asm_fmt, + consensus_encoding_decode_array, + consensus_encoding_decode_byte_vec, + consensus_encoding_decode_compact_size, + consensus_encoding_decode_decoder2, hashes_json, hashes_ripemd160, hashes_sha1, hashes_sha256, - hashes_sha512_256, hashes_sha512, - units_deserialize_amount, + hashes_sha512_256, + p2p_arbitrary_addrv2, + p2p_deserialize_addrv2, + p2p_deserialize_raw_net_msg, + units_arbitrary_weight, + units_parse_amount, + units_parse_int, + units_standard_checks, ] steps: - name: Install test dependencies run: sudo apt-get update -y && sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc libiberty-dev - - uses: actions/checkout@v4 - - uses: actions/cache@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + id: cache-fuzz with: path: | @@ -48,9 +67,9 @@ jobs: fuzz/target target key: cache-${{ matrix.target }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable with: - toolchain: '1.65.0' + toolchain: '1.74.0' - name: fuzz run: | if [[ "${{ matrix.fuzz_target }}" =~ ^bitcoin ]]; then @@ -59,7 +78,7 @@ jobs: echo "Using RUSTFLAGS $RUSTFLAGS" cd fuzz && ./fuzz.sh "${{ matrix.fuzz_target }}" - run: echo "${{ matrix.fuzz_target }}" >executed_${{ matrix.fuzz_target }} - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: executed_${{ matrix.fuzz_target }} path: executed_${{ matrix.fuzz_target }} @@ -68,9 +87,13 @@ jobs: if: ${{ !github.event.act }} needs: fuzz runs-on: ubuntu-24.04 + permissions: + contents: read steps: - - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 - name: Display structure of downloaded files run: ls -R - run: find executed_* -type f -exec cat {} + | sort > executed diff --git a/.github/workflows/cron-daily-kani.yml b/.github/workflows/cron-daily-kani.yml index 61ef6e3957..18191a5bc3 100644 --- a/.github/workflows/cron-daily-kani.yml +++ b/.github/workflows/cron-daily-kani.yml @@ -3,12 +3,17 @@ name: Kani CI on: schedule: - cron: '59 23 * * *' # midnight every day. +permissions: {} jobs: run-kani: runs-on: ubuntu-24.04 + permissions: + contents: read steps: - name: 'Checkout your code.' - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: 'Run Kani on your code.' - uses: model-checking/kani-github-action@v1.1 + uses: model-checking/kani-github-action@f838096619a707b0f6b2118cf435eaccfa33e51f # v1.1 diff --git a/.github/workflows/cron-weekly-cargo-mutants.yml b/.github/workflows/cron-weekly-cargo-mutants.yml index 74ec346299..1b0a989fd7 100644 --- a/.github/workflows/cron-weekly-cargo-mutants.yml +++ b/.github/workflows/cron-weekly-cargo-mutants.yml @@ -3,16 +3,22 @@ on: schedule: - cron: "0 0 * * 0" # runs weekly on Sunday at 00:00 workflow_dispatch: # allows manual triggering +permissions: {} jobs: cargo-mutants: runs-on: ubuntu-24.04 + permissions: + contents: read + issues: write steps: - - uses: actions/checkout@v4 - - uses: taiki-e/install-action@v2 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - uses: taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45 with: tool: cargo-mutants - run: cargo mutants --in-place --no-shuffle - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 if: always() with: name: mutants.out @@ -22,13 +28,15 @@ jobs: run: | if [ -s mutants.out/missed.txt ]; then echo "New missed mutants found" + MUTANTS_VERSION=$(cargo mutants --version) gh issue create \ --title "New Mutants Found" \ --body "$(cat <> $GITHUB_ENV - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: author: Fmt Bot title: Automated nightly rustfmt (${{ env.date }}) @@ -26,3 +32,4 @@ jobs: Automated nightly `rustfmt` changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action commit-message: ${{ env.date }} automated rustfmt nightly labels: rustfmt + diff --git a/.github/workflows/cron-weekly-update-cargo-semver-checks.yml b/.github/workflows/cron-weekly-update-cargo-semver-checks.yml index 75f706a1cc..4f32e1d934 100644 --- a/.github/workflows/cron-weekly-update-cargo-semver-checks.yml +++ b/.github/workflows/cron-weekly-update-cargo-semver-checks.yml @@ -3,18 +3,24 @@ on: schedule: - cron: "0 0 * * 6" # runs every Saturday at 00:00 workflow_dispatch: # allows manual triggering +permissions: {} jobs: format: name: Update cargo-semver-checks runs-on: ubuntu-24.04 + permissions: + contents: write + pull-requests: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: Update semver-checks to use latest crates.io published version run: | set -x # Grab the latest version of cargo semver-checks from crates.io # that is not yanked. - LATEST_VERSION=$(curl --proto '=https' --tlsv1.3 -sSf https://crates.io/api/v1/crates/cargo-semver-checks/versions | jq -r 'first( .versions[] | select(.yanked == false) ) | .num') + LATEST_VERSION=$(curl --proto '=https' --tlsv1.3 -sSf -H "User-Agent: rust-bitcoin-ci" https://crates.io/api/v1/crates/cargo-semver-checks/versions | jq -r 'first( .versions[] | select(.yanked == false) ) | .num') # Update the latest version in the reference file. echo "${LATEST_VERSION}" > ./.github/workflows/cargo-semver-checks-version echo "cargo_semver_checks_version=${LATEST_VERSION}" >> $GITHUB_ENV @@ -28,7 +34,7 @@ jobs: fi - name: Create Pull Request if: env.changes_made == 'true' - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: token: ${{ secrets.APOELSTRA_CREATE_PR_TOKEN }} author: Update cargo-semver-checks Bot diff --git a/.github/workflows/cron-weekly-update-nightly.yml b/.github/workflows/cron-weekly-update-nightly.yml index b31ad20cc0..5363c666fb 100644 --- a/.github/workflows/cron-weekly-update-nightly.yml +++ b/.github/workflows/cron-weekly-update-nightly.yml @@ -3,13 +3,20 @@ on: schedule: - cron: "5 0 * * 6" # Saturday at 00:05 workflow_dispatch: # allows manual triggering +permissions: {} jobs: format: name: Update nightly rustc runs-on: ubuntu-24.04 + permissions: + contents: write + id-token: write + pull-requests: write steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - uses: dtolnay/rust-toolchain@55d80eb3c5a4228eec5390a083c092095115c6f1 # nightly - name: Update rust.yml to use latest nightly run: | set -x @@ -29,7 +36,7 @@ jobs: fi - name: Create Pull Request if: env.changes_made == 'true' - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: token: ${{ secrets.APOELSTRA_CREATE_PR_TOKEN }} author: Update Nightly Rustc Bot diff --git a/.github/workflows/cron-weekly-update-stable.yml b/.github/workflows/cron-weekly-update-stable.yml index 456ccd9ae4..4c2c3f14ca 100644 --- a/.github/workflows/cron-weekly-update-stable.yml +++ b/.github/workflows/cron-weekly-update-stable.yml @@ -3,13 +3,19 @@ on: schedule: - cron: "0 0 * * 5" # runs every Friday at 00:00 (generally rust releases on Thursday) workflow_dispatch: # allows manual triggering +permissions: {} jobs: format: name: Update stable rustc runs-on: ubuntu-24.04 + permissions: + contents: write + pull-requests: write steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: Update semver-checks.yml to use latest stable run: | set -x @@ -28,7 +34,7 @@ jobs: fi - name: Create Pull Request if: env.changes_made == 'true' - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: token: ${{ secrets.APOELSTRA_CREATE_PR_TOKEN }} author: Update Stable Rustc Bot diff --git a/.github/workflows/cron-zizmor.yml b/.github/workflows/cron-zizmor.yml new file mode 100644 index 0000000000..8d70f3fe3b --- /dev/null +++ b/.github/workflows/cron-zizmor.yml @@ -0,0 +1,33 @@ +name: Automated GitHub Actions Security Analysis with zizmor 🌈 + +on: + schedule: + - cron: "0 0 * * *" # Run every day at midnight + +permissions: {} + +jobs: + zizmor: + name: zizmor latest via PyPI + runs-on: ubuntu-latest + permissions: + security-events: write + steps: + - name: Checkout repository + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4 + with: + persist-credentials: false + + - name: Install the latest version of uv + uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v5 + + - name: Run zizmor 🌈 + run: uvx zizmor --format sarif . > results.sarif + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload SARIF file + uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3 + with: + sarif_file: results.sarif + category: zizmor diff --git a/.github/workflows/gh-release.yml b/.github/workflows/gh-release.yml index 86014a98cf..c8e3301004 100644 --- a/.github/workflows/gh-release.yml +++ b/.github/workflows/gh-release.yml @@ -5,11 +5,17 @@ on: tags: - '*' +permissions: {} + jobs: build: runs-on: ubuntu-24.04 + permissions: + contents: write steps: - - uses: actions/checkout@v4 - - uses: ncipollo/release-action@v1 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0 with: generateReleaseNotes: true diff --git a/.github/workflows/manage-pr.yml b/.github/workflows/manage-pr.yml index 3e92b33f94..b22bd3545e 100644 --- a/.github/workflows/manage-pr.yml +++ b/.github/workflows/manage-pr.yml @@ -1,6 +1,7 @@ name: Manage PR on: - - pull_request_target + - pull_request_target # zizmor: ignore[dangerous-triggers] +permissions: {} jobs: labeler: @@ -10,18 +11,20 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout master - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: path: master + persist-credentials: false - name: Checkout merge commit - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: path: merge ref: "refs/pull/${{ github.event.number }}/merge" + persist-credentials: false - name: Generate label config run: cd master && SCAN_DIR=../merge ./contrib/gen_label_config.sh - name: Update labels - uses: actions/labeler@v5 + uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1 with: configuration-path: master/.github/labeler.yml sync-labels: true diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml index ed9f05a702..718bd0de7f 100644 --- a/.github/workflows/miri.yml +++ b/.github/workflows/miri.yml @@ -8,20 +8,26 @@ on: # yamllint disable-line rule:truthy name: Miri +permissions: {} + jobs: Miri: name: Miri runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Read nightly version" id: read_toolchain run: echo "nightly_version=$(cat nightly-version)" >> $GITHUB_OUTPUT - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ steps.read_toolchain.outputs.nightly_version }} components: miri diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1241ecf9ba..4f8d40c510 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,15 +8,20 @@ on: pull_request: name: Release +permissions: {} jobs: release: name: Release - dry-run runs-on: ubuntu-24.04 + permissions: + contents: write steps: - name: Checkout Crate - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: Checkout Toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: run cargo run: contrib/release.sh diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ea83c99cbc..b6a9f5e6b7 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -8,36 +8,51 @@ on: # yamllint disable-line rule:truthy name: Continuous integration +permissions: {} + jobs: Prepare: runs-on: ubuntu-24.04 + permissions: + contents: read outputs: nightly_version: ${{ steps.read_toolchain.outputs.nightly_version }} + maintainer_tools_version: ${{ steps.read_toolchain.outputs.maintainer_tools_version }} steps: - name: "Checkout repo" - uses: actions/checkout@v4 - - name: "Read nightly version" + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - name: "Read workspace versions" id: read_toolchain - run: echo "nightly_version=$(cat nightly-version)" >> $GITHUB_OUTPUT + run: | + echo "nightly_version=$(cat nightly-version)" >> $GITHUB_OUTPUT + echo "maintainer_tools_version=$(cat maintainer-tools-version)" >> $GITHUB_OUTPUT Stable: # 2 jobs, one per manifest. name: Test - stable toolchain + needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [minimal, recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Set dependencies" run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock - name: "Run test script" @@ -47,21 +62,26 @@ jobs: name: Test - nightly toolchain needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [minimal, recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ needs.Prepare.outputs.nightly_version }} - name: "Set dependencies" @@ -71,24 +91,36 @@ jobs: MSRV: # 2 jobs, one per manifest. name: Test - MSRV toolchain + needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [minimal, recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false + - name: "Free disk space" + uses: endersonmenezes/free-disk-space@6c4664f43348c8c7011b53488d5ca65e9fc5cd1a # v3.0.0 + with: + remove_android: true + remove_dotnet: true + remove_haskell: true - name: "Select toolchain" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable with: - toolchain: "1.63.0" + toolchain: "1.74.0" - name: "Set dependencies" run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock - name: "Run test script" @@ -98,21 +130,26 @@ jobs: name: Lint - nightly toolchain needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ needs.Prepare.outputs.nightly_version }} - name: "Install clippy" @@ -124,22 +161,28 @@ jobs: Docs: name: Docs - stable toolchain + needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Set dependencies" run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock - name: "Run test script" @@ -149,21 +192,26 @@ jobs: name: Docs - nightly toolchain needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ needs.Prepare.outputs.nightly_version }} - name: "Set dependencies" @@ -175,21 +223,26 @@ jobs: name: Bench - nightly toolchain needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Checkout maintainer tools" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: rust-bitcoin/rust-bitcoin-maintainer-tools - ref: c3324024ced9bb1eb854397686919c3ff7d97e1e + ref: ${{ needs.Prepare.outputs.maintainer_tools_version }} path: maintainer-tools + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ needs.Prepare.outputs.nightly_version }} - name: "Set dependencies" @@ -200,11 +253,15 @@ jobs: Arch32bit: name: Test 32-bit version runs-on: ubuntu-24.04 + permissions: + contents: read steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Add architecture i386" run: sudo dpkg --add-architecture i386 - name: "Install i686 gcc" @@ -218,11 +275,15 @@ jobs: name: Cross test - stable toolchain if: ${{ !github.event.act }} runs-on: ubuntu-24.04 + permissions: + contents: read steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Install target" run: rustup target add s390x-unknown-linux-gnu - name: "Install cross" @@ -234,16 +295,20 @@ jobs: name: Embedded - nightly toolchain needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read env: RUSTFLAGS: "-C link-arg=-Tlink.x" CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER: "qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel" steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Set up QEMU" run: sudo apt update && sudo apt install -y qemu-system-arm gcc-arm-none-eabi - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ needs.Prepare.outputs.nightly_version }} targets: thumbv7m-none-eabi @@ -262,15 +327,19 @@ jobs: name: ASAN - nightly toolchain needs: Prepare runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: dep: [recent] steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@v1 + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 with: toolchain: ${{ needs.Prepare.outputs.nightly_version }} - name: "Install rust-src" @@ -283,24 +352,114 @@ jobs: WASM: # hashes crate only. name: WASM - stable toolchain runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false # Note we do not use the recent lock file for wasm testing. steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Select toolchain" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Run wasm script" run: cd hashes && ./contrib/wasm.sh Kani: name: Kani codegen - stable toolchain runs-on: ubuntu-24.04 + permissions: + contents: read steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Build Kani proofs" - uses: model-checking/kani-github-action@v1.1 + uses: model-checking/kani-github-action@f838096619a707b0f6b2118cf435eaccfa33e51f # v1.1 with: args: "--only-codegen" + + API: + needs: Prepare + name: API - nightly toolchain + runs-on: ubuntu-24.04 + permissions: + contents: read + strategy: + fail-fast: false + matrix: + dep: [recent] + steps: + - name: "Checkout repo" + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - name: "Select toolchain" + uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1 + with: + toolchain: ${{ needs.Prepare.outputs.nightly_version }} + - name: "Install cargo-public-api" + run: cargo install --locked cargo-public-api --version 0.50.1 + - name: "Set dependencies" + run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock + - name: "Run API checker script" + run: ./contrib/check-for-api-changes.sh + + Policy: + name: Enforce repo policy - stable toolchain + runs-on: ubuntu-24.04 + permissions: + contents: read + strategy: + fail-fast: false + steps: + - name: "Checkout repo" + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - name: "Select toolchain" + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable + - name: "Run policy script" + run: ./contrib/check-for-policy-violations.sh + + Re-exports: + name: Check re-exports - stable toolchain + runs-on: ubuntu-24.04 + permissions: + contents: read + strategy: + fail-fast: false + steps: + - name: "Checkout repo" + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + - name: "Select toolchain" + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable + - name: "Run primitives API checker script" + run: | + contrib/generate-primitives-re-export-test.sh && (cd ./primitives && cargo test --all-features) + contrib/generate-bitcoin-re-export-test.sh && (cd ./bitcoin && cargo test --all-features) + + DiffMutants: + name: Check cargo mutants in diff - stable toolchain + runs-on: ubuntu-24.04 + steps: + - name: "Checkout repo" + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + fetch-depth: 0 # required for full diff context + - name: "Select toolchain" + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable + - name: "Fetch base branch for diff" + run: git fetch origin master + - name: "Retrieve relative diff" + run: git diff origin/master.. | tee git.diff + - uses: taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45 + with: + tool: cargo-mutants + - run: cargo mutants --no-shuffle --in-diff git.diff diff --git a/.github/workflows/semver-checks-pr-label.yml b/.github/workflows/semver-checks-pr-label.yml index c7f9b1c66c..f525ec6d0e 100644 --- a/.github/workflows/semver-checks-pr-label.yml +++ b/.github/workflows/semver-checks-pr-label.yml @@ -1,22 +1,25 @@ on: # yamllint disable-line rule:truthy - workflow_run: + workflow_run: # zizmor: ignore[dangerous-triggers] workflows: [Check semver breaks] types: [completed] name: Check semver breaks - Label and Comment PR +permissions: {} + jobs: Download: name: Download, Unzip and Add Labels/Comments runs-on: ubuntu-24.04 permissions: + actions: read contents: read pull-requests: write # only run if CI passes on the "Check semver breaks" workflow if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: "Download artifact" - uses: actions/github-script@v7 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | // get all artifacts from the workflow run @@ -52,7 +55,7 @@ jobs: if: ${{ hashFiles('semver-break.zip') != '' }} run: unzip -n semver-break.zip - name: "Comment and add label on PR - Semver break" - uses: actions/github-script@v7 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 if: ${{ hashFiles('semver-break') != '' }} with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/semver-checks.yml b/.github/workflows/semver-checks.yml index 32d01b6b28..2352b9ef40 100644 --- a/.github/workflows/semver-checks.yml +++ b/.github/workflows/semver-checks.yml @@ -2,6 +2,7 @@ on: # yamllint disable-line rule:truthy pull_request: name: Check semver breaks +permissions: {} jobs: PR: @@ -9,18 +10,22 @@ jobs: runs-on: ubuntu-24.04 strategy: fail-fast: false + permissions: + contents: read + pull-requests: write steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-depth: 0 # we need full history for cargo semver-checks + persist-credentials: false - name: "Install Rustup" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Select stable-version" run: | rustup default $(cat ./.github/workflows/stable-version) - name: "Install cargo-binstall" - uses: cargo-bins/cargo-binstall@main + uses: cargo-bins/cargo-binstall@b3f755e95653da9a2d25b99154edfdbd5b356d0a # v1.15.10 - name: "Binstall pinned cargo-semver-checks" run: cargo binstall cargo-semver-checks@$(cat ./.github/workflows/cargo-semver-checks-version) --no-confirm - name: "Run semver checker script" @@ -38,7 +43,7 @@ jobs: echo "$PR_NUMBER" > ./semver-break - name: "Save breaking state" if: ${{ hashFiles('semver-break') != '' }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: semver-break path: semver-break @@ -48,16 +53,21 @@ jobs: runs-on: ubuntu-24.04 strategy: fail-fast: false + permissions: + contents: read + pull-requests: write steps: - name: "Checkout repo" - uses: actions/checkout@v4 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: "Install Rustup" - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@5d458579430fc14a04a08a1e7d3694f545e91ce6 # stable - name: "Select stable-version" run: | rustup default $(cat ./.github/workflows/stable-version) - name: "Install cargo-binstall" - uses: cargo-bins/cargo-binstall@main + uses: cargo-bins/cargo-binstall@b3f755e95653da9a2d25b99154edfdbd5b356d0a # v1.15.10 - name: "Binstall pinned cargo-semver-checks" run: cargo binstall cargo-semver-checks@$(cat ./.github/workflows/cargo-semver-checks-version) --no-confirm - name: "Run semver checker script" diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index dea02c3a04..84a84841c3 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -3,13 +3,18 @@ on: pull_request: branches: - master +permissions: {} jobs: shellcheck: name: Shellcheck runs-on: ubuntu-24.04 + permissions: + contents: read steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false - name: Run ShellCheck - uses: ludeeus/action-shellcheck@2.0.0 + uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0 env: SHELLCHECK_OPTS: -x # allow outside sources diff --git a/.github/workflows/stable-version b/.github/workflows/stable-version index f634271672..7f229af964 100644 --- a/.github/workflows/stable-version +++ b/.github/workflows/stable-version @@ -1 +1 @@ -1.87.0 +1.92.0 diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 0000000000..0aba6efa03 --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,25 @@ +name: GitHub Actions Security Analysis with zizmor 🌈 + +on: + pull_request: + branches: ["**"] + paths: + - '.github/**' + +permissions: {} + +jobs: + zizmor: + name: zizmor latest via PyPI + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4 + with: + persist-credentials: false + + - name: Install the latest version of uv + uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v5 + + - name: Run zizmor 🌈 + run: uvx zizmor . diff --git a/.gitignore b/.gitignore index 48c9cedca4..ab54b690e9 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ mutants.out* # Fuzz artifacts hfuzz_target hfuzz_workspace + +# Local tooling +.maintainer-tools diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..5e74344fb5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,10 @@ +# Note for Automated Agents + +## Commit attribution + +If you generate code for this repository, append a commit trailer: + +Format: +``` +Assisted-by: +``` diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000..eef4bd20cf --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9787a84c4f..c71b450964 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,10 +13,17 @@ changes to this document in a pull request. - [General](#general) - [Communication channels](#communication-channels) - [Asking questions](#asking-questions) +- [Getting Started](#getting-started) + * [Installing Rust](#installing-rust) + * [Building](#building) +- [Development Tools](#development-tools) + * [Just](#just) + * [Githooks](#githooks) + * [Building the docs](#building-the-docs) - [Contribution workflow](#contribution-workflow) * [Preparing PRs](#preparing-prs) * [Peer review](#peer-review) - * [CI and Merging](#merging) + * [CI and Merging](#ci-and-merging) * [Repository maintainers](#repository-maintainers) - [Coding conventions](#coding-conventions) * [Naming conventions](#naming-conventions) @@ -25,6 +32,10 @@ changes to this document in a pull request. * [Policy](#policy) - [Security](#security) - [Testing](#testing) + * [Unit/Integration tests](#unitintegration-tests) + * [Benchmarks](#benchmarks) + * [Mutation tests](#mutation-tests) + * [Code verification](#code-verification) - [Going further](#going-further) @@ -42,6 +53,7 @@ money. That being said, we deeply welcome people contributing for the first time to an open source project or pick up Rust while contributing. Don't be shy, you'll learn. +For a more in depth discussion of our coding policy see [policy.md](./docs/policy.md) ## Communication channels @@ -67,13 +79,65 @@ We have a dedicated developer channel on IRC, #bitcoin-rust@libera.chat where you may get helpful advice if you have questions. +## Getting Started + +### Installing Rust + +Rust can be installed using your package manager of choice or [rustup.rs](https://rustup.rs). The +former way is considered more secure since it typically doesn't involve trust in the CA system. But +you should be aware that the version of Rust shipped by your distribution might be out of date. +Generally this isn't a problem for `rust-bitcoin` since we support much older versions than the +current stable one (see MSRV section in [README.md](./README.md)). + +### Building + +The library can be built and tested using [`cargo`](https://github.com/rust-lang/cargo/): + +``` +git clone git@github.com:rust-bitcoin/rust-bitcoin.git +cd rust-bitcoin +cargo build +``` + +You can run tests with: + +``` +cargo test +``` + +Please refer to the [`cargo` documentation](https://doc.rust-lang.org/stable/cargo/) for more +detailed instructions. + + +## Development Tools + +### Just + +We support [`just`](https://just.systems/man/en/) for running dev workflow commands. Run `just` from +your shell to see a list of available sub-commands. + +### Githooks + +To assist devs in catching errors _before_ running CI we provide some githooks. Copy the hooks in `githooks/` +to your githooks folder or run `just githooks-install` to copy them all. + +### Building the docs + +We build docs with the nightly toolchain, you may wish to use the following shell alias to check +your documentation changes build correctly. + +``` +alias build-docs='RUSTDOCFLAGS="--cfg docsrs" cargo +nightly rustdoc --features="$FEATURES" -- -D rustdoc::broken-intra-doc-links' +``` + + ## Contribution workflow The codebase is maintained using the "contributor workflow" where everyone without exception contributes patch proposals using "pull requests". This facilitates social contribution, easy testing and peer review. -To contribute a patch, the workflow is a as follows: +To contribute a patch, the workflow is as follows: 1. Fork Repository 2. Create topic branch @@ -217,6 +281,10 @@ Use of `unsafe` code is prohibited unless there is a unanimous decision among library maintainers on the exclusion from this rule. In such cases there is a requirement to test unsafe code with sanitizers including Miri. +### Policy + +For broader project policy and guidelines, see [policy.md](./docs/policy.md). + ### API changes All PRs that change the public API of `rust-bitcoin` will be checked on CI for @@ -225,294 +293,66 @@ way that is not backwards compatible, the PR will be flagged as a breaking chang Please check the [`semver-checks` workflow](.github/workflows/semver-checks.yml). Under the hood we use [`cargo-semver-checks`](https://github.com/obi1kenobi/cargo-semver-checks). +## Security -### Policy - -We have various `rust-bitcoin` specific coding styles and conventions that are -grouped here loosely under the term 'policy'. These are things we try to adhere -to but that you should not need to worry too much about if you are a new -contributor. Think of this as a place to collect group knowledge that exists in -the various PRs over the last few years. - -#### Import statements - -We use the following style for import statements, see -(https://github.com/rust-bitcoin/rust-bitcoin/discussions/2088) for the discussion that led to this. - -```rust -// Modules first, as they are part of the project's structure. -pub mod aa_this; -mod bb_private; -pub mod cc_that; - -// Private imports, rustfmt will sort and merge them correctly. -use crate::aa_this::{This, That}; -use crate::bb_that; - -// Public re-exports. -#[rustfmt::skip] // Keeps public re-exports separate, because of this we have to sort manually. -pub use { - crate::aa_aa_this, - crate::bb_bb::That, -} - -// Avoid wildcard imports, except for 3 rules: - -// Rule 1 - test modules. -#[cfg(test)] -mod tests { - use super::*; // OK -} - -// Rule 2 - enum variants. -use LockTime::*; // OK - -// Rule 3 - opcodes. -use opcodes::all::*; // OK - -// Finally here is an example where we don't allow wildcard imports: -use crate::prelude::*; // *NOT* OK -use crate::prelude::{DisplayHex, String, Vec} // OK -``` - -#### Return `Self` - -Use `Self` as the return type instead of naming the type. When constructing the return value use -`Self` or the type name, whichever you prefer. - -```rust -/// A counter that is always smaller than 100. -pub struct Counter(u32); - -impl Counter { - /// Constructs a new `Counter`. - pub fn new() -> Self { Self(0) } - - /// Returns a counter if it is possible to create one from x. - pub fn maybe(x: u32) -> Option { - match x { - x if x >= 100 => None, - c => Some(Counter(c)), - } - } -} - -impl TryFrom for Counter { - type Error = TooBigError; - - fn try_from(x: u32) -> Result { - if x >= 100 { - return Err(TooBigError); - } - Ok(Counter(x)) - } -} -``` - -When constructing the return value for error enums use `Self`. - -```rust -impl From for LongDescriptiveError { - fn from(e: foo::Error) -> Self { Self::Foo(e) } -} -``` - - -#### Errors - -Return as much context as possible with errors e.g., if an error was encountered parsing a string -include the string in the returned error type. If a function consumes costly-to-compute input -(allocations are also considered costly) it should return the input back in the error type. - -More specifically an error should - -- be `non_exhaustive` unless we _really_ never want to change it. -- have private fields unless we are very confident they won't change. -- derive `Debug, Clone, PartialEq, Eq` (and `Copy` iff not `non_exhaustive`). -- implement Display using `write_err!()` macro if a variant contains an inner error source. -- have `Error` suffix on error types (structs and enums). -- not have `Error` suffix on enum variants. -- call `internals::impl_from_infallible!`. -- implement `std::error::Error` if they are public (feature gated on "std"). -- have messages in lower case, except for proper nouns and variable names. - -```rust -/// Documentation for the `Error` type. -#[derive(Debug, Clone, PartialEq, Eq)] -#[non_exhaustive] // Add liberally; if the error type may ever have new variants added. -pub enum Error { - /// Documentation for variant A. - A, - /// Documentation for variant B. - B, -} - -internals::impl_from_infallible!(Error); - -``` - -All errors that live in an `error` module (eg, `foo/error.rs`) and appear in a public function in -`foo` module should be available from `foo` i.e., should be re-exported from `foo/mod.rs`. - -##### `expect` messages - -With respect to `expect` messages, they should follow the -[Rust standard library guidelines](https://doc.rust-lang.org/std/option/enum.Option.html#recommended-message-style). -More specifically, `expect` messages should be used to describe the reason -you expect the operation to succeed. -For example, this `expect` message clearly states why the operation should succeed: - -```rust -/// Serializes the public key to bytes. -pub fn to_bytes(self) -> Vec { - let mut buf = Vec::new(); - self.write_into(&mut buf).expect("vecs don't error"); - buf -} -``` - -Also note that `expect` messages, as with all error messages, should be lower -case, except for proper nouns and variable names. - -
-The details on why we chose this style - -According to the [Rust standard library](https://doc.rust-lang.org/std/error/index.html#common-message-styles), -there are two common styles for how to write `expect` messages: - -- using the message to present information to users encountering a panic - ("expect as error message"); and -- using the message to present information to developers debugging the panic - ("expect as precondition"). - -We opted to use the "expect as precondition" since it clearly states why the -operation should succeed. -This may be better for communicating with developers, since they are the target -audience for the error message and `rust-bitcoin`. - -If you want to know more about the decision error messages and expect messages, -please check: - -- https://github.com/rust-bitcoin/rust-bitcoin/issues/2913 -- https://github.com/rust-bitcoin/rust-bitcoin/issues/3053 -- https://github.com/rust-bitcoin/rust-bitcoin/pull/3019 -
- -#### Rustdocs - -Be liberal with references to BIPs or other documentation; the aim is that devs can learn about -Bitcoin by hacking on this codebase as opposed to having to learn about Bitcoin first and then start -hacking on this codebase. Consider the following format, not all sections will be required for all types. - - -```rust -/// The Bitcoin foobar. -/// -/// Contains all the data used when passing a foobar around the Bitcoin network. -/// -///
-/// FooBar Original Design -/// -/// The foobar was introduced in Bitcoin x.y.z to increase the amount of foo in bar. -/// -///
-/// -/// ### Relevant BIPs -/// -/// * [BIP X - FooBar in Bitcoin](https://github.com/bitcoin/bips/blob/master/bip-0000.mediawiki) -pub struct FooBar { - /// The version in use. - pub version: Version -} -``` - -Do use rustdoc subheadings. Do put an empty newline below each heading e.g., - -```rust -impl FooBar { - /// Constructs a `FooBar` from a [`Baz`]. - /// - /// # Errors - /// - /// Returns an error if `Baz` is not ... - /// - /// # Panics - /// - /// If the `Baz`, converted to a `usize`, is out of bounds. - pub fn from_baz(baz: Baz) -> Result { - ... - } -} -``` - -Add Panics section if any input to the function can trigger a panic. - -Generally we prefer to have non-panicking APIs but it is impractical in some cases. If you're not -sure, feel free to ask. If we determine panicking is more practical it must be documented. Internal -panics that could theoretically occur because of bugs in our code must not be documented. - -Example code within the rustdocs should compile and lint with `just lint` without any errors or -warnings. - -#### Derives - -We try to use standard set of derives if it makes sense: +Security is the primary focus for this library; disclosure of security +vulnerabilities helps prevent user loss of funds. If you believe a vulnerability +may affect other implementations, please disclose this information according to +the [security guidelines](./SECURITY.md), work on which is currently in progress. +Before it is completed, feel free to send disclosure to Andrew Poelstra, +apoelstra@wpsoftware.net, encrypted with his public key from +. -``` -#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] -enum Foo { - Bar, - Baz, -} -``` -For types that do should not form a total or partial order, or that technically do but it does not -make sense to compare them, we use the `Ordered` trait from the -[`ordered`](https://crates.io/crates/ordered) crate. See `absolute::LockTime` for an example. +## Testing -For error types you likely want to use `#[derive(Debug, Clone, PartialEq, Eq)]`. +Related to the security aspect, rust bitcoin developers take testing very +seriously. Due to the modular nature of the project, writing new test cases is +easy and good test coverage of the codebase is an important goal. Refactoring +the project to enable fine-grained unit testing is also an ongoing effort. -See [Errors](#errors) section. +Unit and integration tests are available for those interested, along with benchmarks. For project +developers, especially new contributors looking for something to work on, we do: +- Fuzz testing with [`Honggfuzz`](https://github.com/rust-fuzz/honggfuzz-rs) +- Mutation testing with [`cargo-mutants`](https://github.com/sourcefrog/cargo-mutants) +- Code verification with [`Kani`](https://github.com/model-checking/kani) -#### Attributes +There are always more tests to write and more bugs to find. PRs are extremely welcomed. +Please consider testing code as a first-class citizen. We definitely do take PRs +improving and cleaning up test code. -- `#[track_caller]`: Used on functions that panic on invalid arguments - (see https://rustc-dev-guide.rust-lang.org/backend/implicit-caller-location.html) +### Unit/Integration tests -- `#[cfg(rust_v_1_60)]`: Used to guard code that should only be built in if the toolchain is - compatible. These configuration conditionals are set at build time in `bitcoin/build.rs`. New - version attributes may be added as needed. +Run as for any other Rust project `cargo test --all-features`. +### Benchmarks -#### Licensing +We use a custom Rust compiler configuration conditional to guard the bench mark code. To run the +bench marks use: `RUSTFLAGS='--cfg=bench' cargo +nightly bench`. -We use SPDX license tags, all files should start with +### Mutation tests -``` -// SPDX-License-Identifier: CC0-1.0 -``` +We are doing mutation testing with [cargo-mutants](https://github.com/sourcefrog/cargo-mutants). To run +these tests first install with `cargo install --locked cargo-mutants` then run with `cargo mutants --in-place --no-shuffle`. +Note that running these mutation tests will take on the order of 10's of minutes. -## Security +### Code verification -Security is the primary focus for this library; disclosure of security -vulnerabilities helps prevent user loss of funds. If you believe a vulnerability -may affect other implementations, please disclose this information according to -the [security guidelines](./SECURITY.md), work on which is currently in progress. -Before it is completed, feel free to send disclosure to Andrew Poelstra, -apoelstra@wpsoftware.net, encrypted with his public key from -. +We have started using [kani](https://github.com/model-checking/kani), install with `cargo install --locked kani-verifier` + (no need to run `cargo kani setup`). Run the tests with `cargo kani`. -## Testing +## LLMs, GitHub bot accounts, and AI agents -Related to the security aspect, rust bitcoin developers take testing very -seriously. Due to the modular nature of the project, writing new test cases is -easy and good test coverage of the codebase is an important goal. Refactoring -the project to enable fine-grained unit testing is also an ongoing effort. +This project does not accept contributions from bot GitHub accounts. All +PRs that appear to come from such an account will be closed. -Various methods of testing are in use (e.g. fuzzing, mutation), please see -the [readme](./README.md) for more information. +Patches created by LLMs and AI agents are also viewed with suspicion unless a +human has reviewed them. All LLM generated patches MUST have text in the git log +and in the PR description that indicates the patch was created using an LLM. +First time contributions by way of LLM generated patches are not welcome. Thanks +for your time, please be respectful of ours. ## Going further diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock index 211aa646ab..faf2d41c59 100644 --- a/Cargo-minimal.lock +++ b/Cargo-minimal.lock @@ -10,17 +10,17 @@ checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "base58ck" version = "0.2.0" dependencies = [ "bitcoin-internals", - "bitcoin_hashes 0.16.0", - "hex-conservative 0.3.0", + "bitcoin_hashes", + "hex_lit", ] [[package]] @@ -47,18 +47,19 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.33.0-alpha.0" +version = "0.33.0-beta.0" dependencies = [ "arbitrary", "base58ck", "base64", "bech32", "bincode", + "bitcoin-consensus-encoding", "bitcoin-internals", - "bitcoin-io 0.2.0", + "bitcoin-io", "bitcoin-primitives", "bitcoin-units", - "bitcoin_hashes 0.16.0", + "bitcoin_hashes", "bitcoinconsensus", "hex-conservative 0.3.0", "hex_lit", @@ -72,19 +73,39 @@ dependencies = [ name = "bitcoin-addresses" version = "0.0.0" +[[package]] +name = "bitcoin-bip158" +version = "0.0.0" + +[[package]] +name = "bitcoin-consensus-encoding" +version = "1.0.0-rc.2" +dependencies = [ + "bitcoin-internals", + "hex-conservative 0.3.0", +] + +[[package]] +name = "bitcoin-crypto" +version = "0.0.0" + [[package]] name = "bitcoin-fuzz" version = "0.0.1" dependencies = [ + "arbitrary", "bitcoin", + "bitcoin-consensus-encoding", + "bitcoin-p2p-messages", "honggfuzz", "serde", "serde_json", + "standard_test", ] [[package]] name = "bitcoin-internals" -version = "0.4.0" +version = "0.4.2" dependencies = [ "bincode", "hex-conservative 0.3.0", @@ -94,39 +115,53 @@ dependencies = [ [[package]] name = "bitcoin-io" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +version = "0.3.0" +dependencies = [ + "bitcoin-consensus-encoding", + "bitcoin-internals", + "bitcoin_hashes", +] [[package]] -name = "bitcoin-io" -version = "0.2.0" +name = "bitcoin-p2p-messages" +version = "0.1.0" dependencies = [ + "arbitrary", + "bitcoin", + "bitcoin-consensus-encoding", "bitcoin-internals", - "bitcoin_hashes 0.16.0", + "bitcoin-io", + "bitcoin-primitives", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative 0.3.0", + "hex_lit", ] [[package]] name = "bitcoin-primitives" -version = "0.101.0" +version = "1.0.0-rc.1" dependencies = [ "arbitrary", - "arrayvec", "bincode", + "bitcoin-consensus-encoding", "bitcoin-internals", "bitcoin-units", - "bitcoin_hashes 0.16.0", + "bitcoin_hashes", "hex-conservative 0.3.0", + "hex-conservative 1.0.0", + "hex_lit", "serde", "serde_json", ] [[package]] name = "bitcoin-units" -version = "0.2.0" +version = "1.0.0-rc.3" dependencies = [ "arbitrary", "bincode", + "bitcoin-consensus-encoding", "bitcoin-internals", "serde", "serde_json", @@ -135,18 +170,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" -dependencies = [ - "bitcoin-io 0.1.3", - "hex-conservative 0.2.0", -] - -[[package]] -name = "bitcoin_hashes" -version = "0.16.0" +version = "0.18.0" dependencies = [ + "bitcoin-consensus-encoding", "bitcoin-internals", "hex-conservative 0.3.0", "serde", @@ -162,6 +188,12 @@ dependencies = [ "cc", ] +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + [[package]] name = "byteorder" version = "1.3.0" @@ -176,9 +208,9 @@ checksum = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" [[package]] name = "cfg-if" -version = "0.1.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chacha20-poly1305" @@ -189,33 +221,30 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" +checksum = "71393ecc86efbf00e4ca13953979ba8b94cfe549a4b74cc26d8b62f4d8feac2b" dependencies = [ "cfg-if", "libc", "wasi", + "windows-targets", ] [[package]] name = "hex-conservative" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1aa273bf451e37ed35ced41c71a5e2a4e29064afb104158f2514bcd71c2c986" +checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55" dependencies = [ "arrayvec", ] [[package]] name = "hex-conservative" -version = "0.3.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55" -dependencies = [ - "arrayvec", - "serde", -] +checksum = "9ee770c000993d17c185713463d5ebfbd1af9afae4c17cc295640104383bfbf0" [[package]] name = "hex_lit" @@ -225,13 +254,14 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" [[package]] name = "honggfuzz" -version = "0.5.56" +version = "0.5.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c76b6234c13c9ea73946d1379d33186151148e0da231506b964b44f3d023505" +checksum = "6e8319f3cc8fe416e7aa1ab95dcc04fd49f35397a47d0b2f0f225f6dba346a07" dependencies = [ "lazy_static", "memmap2", "rustc_version", + "semver", ] [[package]] @@ -242,9 +272,9 @@ checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" @@ -254,54 +284,53 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" dependencies = [ "libc", ] [[package]] name = "ppv-lite86" -version = "0.2.8" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741" [[package]] name = "proc-macro2" -version = "1.0.63" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.9" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] [[package]] name = "rand" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76330fb486679b4ace3670f117bbc9e16204005c4bde9c4bd372f45bed34f12" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "libc", "rand_chacha", "rand_core", - "rand_hc", + "zerocopy", ] [[package]] name = "rand_chacha" -version = "0.3.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -309,20 +338,12 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" dependencies = [ "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core", + "zerocopy", ] [[package]] @@ -342,11 +363,10 @@ checksum = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997" [[package]] name = "secp256k1" -version = "0.30.0" +version = "0.32.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +checksum = "3c5fdc7d6e800869d3fd60ff857c479bf0a83ea7bf44b389e64461e844204994" dependencies = [ - "bitcoin_hashes 0.14.0", "rand", "secp256k1-sys", "serde", @@ -354,33 +374,33 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1433bd67156263443f14d603720b082dd3121779323fce20cba2aa07b874bc1b" +checksum = "6d3be00697c88c00fe102af8dc316038cc2062eab8da646e7463f4c0e70ca9fd" dependencies = [ "cc", ] [[package]] name = "semver" -version = "1.0.17" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "76b5842e81eb9bbea19276a9dbbda22ac042532f390a67ab08b895617978abf3" [[package]] name = "serde" -version = "1.0.156" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.156" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" dependencies = [ "proc-macro2", "quote", @@ -407,11 +427,20 @@ dependencies = [ "serde", ] +[[package]] +name = "standard_test" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af4bac6cd647192c3cb6e687af2703eb3a30e9187e555c664520cd848443ae70" +dependencies = [ + "arbitrary", +] + [[package]] name = "syn" -version = "1.0.109" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ "proc-macro2", "quote", @@ -420,12 +449,99 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.13.0+wasi-0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "652cd73449d0b957a2743b70c72d79d34a5fa505696488f4ca90b46f6da94118" +dependencies = [ + "bitflags", + "wit-bindgen-rt", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "wit-bindgen-rt" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "026d24a27f6712541fa534f2954bd9e0eb66172f033c2157c0f31d106255c497" + +[[package]] +name = "zerocopy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df7885ffcb82507a0f213c593e77c5f13d12cb96588d4e835ad7e9423ba034db" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "930ad75608219e8ffdb8962a5433cb2b30064c7ccb564d3b76c2963390b1e435" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo-recent.lock b/Cargo-recent.lock index e886abeca8..690a24f005 100644 --- a/Cargo-recent.lock +++ b/Cargo-recent.lock @@ -19,8 +19,8 @@ name = "base58ck" version = "0.2.0" dependencies = [ "bitcoin-internals", - "bitcoin_hashes 0.16.0", - "hex-conservative 0.3.0", + "bitcoin_hashes", + "hex_lit", ] [[package]] @@ -46,18 +46,19 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.33.0-alpha.0" +version = "0.33.0-beta.0" dependencies = [ "arbitrary", "base58ck", "base64", "bech32", "bincode", + "bitcoin-consensus-encoding", "bitcoin-internals", - "bitcoin-io 0.2.0", + "bitcoin-io", "bitcoin-primitives", "bitcoin-units", - "bitcoin_hashes 0.16.0", + "bitcoin_hashes", "bitcoinconsensus", "hex-conservative 0.3.0", "hex_lit", @@ -71,19 +72,39 @@ dependencies = [ name = "bitcoin-addresses" version = "0.0.0" +[[package]] +name = "bitcoin-bip158" +version = "0.0.0" + +[[package]] +name = "bitcoin-consensus-encoding" +version = "1.0.0-rc.2" +dependencies = [ + "bitcoin-internals", + "hex-conservative 0.3.0", +] + +[[package]] +name = "bitcoin-crypto" +version = "0.0.0" + [[package]] name = "bitcoin-fuzz" version = "0.0.1" dependencies = [ + "arbitrary", "bitcoin", + "bitcoin-consensus-encoding", + "bitcoin-p2p-messages", "honggfuzz", "serde", "serde_json", + "standard_test", ] [[package]] name = "bitcoin-internals" -version = "0.4.0" +version = "0.4.2" dependencies = [ "bincode", "hex-conservative 0.3.0", @@ -93,39 +114,53 @@ dependencies = [ [[package]] name = "bitcoin-io" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +version = "0.3.0" +dependencies = [ + "bitcoin-consensus-encoding", + "bitcoin-internals", + "bitcoin_hashes", +] [[package]] -name = "bitcoin-io" -version = "0.2.0" +name = "bitcoin-p2p-messages" +version = "0.1.0" dependencies = [ + "arbitrary", + "bitcoin", + "bitcoin-consensus-encoding", "bitcoin-internals", - "bitcoin_hashes 0.16.0", + "bitcoin-io", + "bitcoin-primitives", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative 0.3.0", + "hex_lit", ] [[package]] name = "bitcoin-primitives" -version = "0.101.0" +version = "1.0.0-rc.1" dependencies = [ "arbitrary", - "arrayvec", "bincode", + "bitcoin-consensus-encoding", "bitcoin-internals", "bitcoin-units", - "bitcoin_hashes 0.16.0", + "bitcoin_hashes", "hex-conservative 0.3.0", + "hex-conservative 1.0.0", + "hex_lit", "serde", "serde_json", ] [[package]] name = "bitcoin-units" -version = "0.2.0" +version = "1.0.0-rc.3" dependencies = [ "arbitrary", "bincode", + "bitcoin-consensus-encoding", "bitcoin-internals", "serde", "serde_json", @@ -134,18 +169,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" -dependencies = [ - "bitcoin-io 0.1.3", - "hex-conservative 0.2.1", -] - -[[package]] -name = "bitcoin_hashes" -version = "0.16.0" +version = "0.18.0" dependencies = [ + "bitcoin-consensus-encoding", "bitcoin-internals", "hex-conservative 0.3.0", "serde", @@ -191,33 +217,30 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "wasi", + "r-efi", + "wasip2", ] [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55" dependencies = [ "arrayvec", ] [[package]] name = "hex-conservative" -version = "0.3.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afe881d0527571892c4034822e59bb10c6c991cce6abe8199b6f5cf10766f55" -dependencies = [ - "arrayvec", - "serde", -] +checksum = "9ee770c000993d17c185713463d5ebfbd1af9afae4c17cc295640104383bfbf0" [[package]] name = "hex_lit" @@ -227,13 +250,14 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" [[package]] name = "honggfuzz" -version = "0.5.56" +version = "0.5.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c76b6234c13c9ea73946d1379d33186151148e0da231506b964b44f3d023505" +checksum = "6e8319f3cc8fe416e7aa1ab95dcc04fd49f35397a47d0b2f0f225f6dba346a07" dependencies = [ "lazy_static", "memmap2", "rustc_version", + "semver", ] [[package]] @@ -296,22 +320,27 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "rand" -version = "0.8.5" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -319,9 +348,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom", ] @@ -343,11 +372,10 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "secp256k1" -version = "0.30.0" +version = "0.32.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +checksum = "3c5fdc7d6e800869d3fd60ff857c479bf0a83ea7bf44b389e64461e844204994" dependencies = [ - "bitcoin_hashes 0.14.0", "rand", "secp256k1-sys", "serde", @@ -355,9 +383,9 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +checksum = "6d3be00697c88c00fe102af8dc316038cc2062eab8da646e7463f4c0e70ca9fd" dependencies = [ "cc", ] @@ -415,6 +443,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "standard_test" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af4bac6cd647192c3cb6e687af2703eb3a30e9187e555c664520cd848443ae70" +dependencies = [ + "arbitrary", +] + [[package]] name = "syn" version = "2.0.79" @@ -433,10 +470,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "zerocopy" diff --git a/Cargo.toml b/Cargo.toml index 7d9a5d5264..e1efd3af10 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,136 @@ [workspace] -members = ["addresses", "base58", "bitcoin", "chacha20_poly1305", "fuzz", "hashes", "internals", "io", "primitives", "units"] +members = ["addresses", "base58", "bip158", "bitcoin", "chacha20_poly1305", "consensus_encoding", "crypto", "fuzz", "hashes", "internals", "io", "p2p", "primitives", "units"] +exclude = ["benches"] resolver = "2" -# Keep this patch for hashes because secp256k1 depends on bitcoin-hashes via crates.io -# This allows testing changes to hashes with secp256k1 -# See https://github.com/rust-bitcoin/rust-bitcoin/pull/4284#pullrequestreview-2714442229 -[patch.crates-io.bitcoin_hashes] -path = "hashes" +[workspace.lints.rust] +unexpected_cfgs = { level = "deny", check-cfg = ['cfg(kani)'] } + +[workspace.lints.clippy] +# Exclude lints we don't think are valuable. +needless_question_mark = "allow" # https://github.com/rust-bitcoin/rust-bitcoin/pull/2134 +manual_range_contains = "allow" # More readable than clippy's format. +# Exhaustive list of pedantic clippy lints +assigning_clones = "warn" +bool_to_int_with_if = "warn" +borrow_as_ptr = "warn" +case_sensitive_file_extension_comparisons = "warn" +cast_lossless = "warn" +cast_possible_truncation = "allow" # All casts should include a code comment (except test code). +cast_possible_wrap = "allow" # Same as above re code comment. +cast_precision_loss = "warn" +cast_ptr_alignment = "warn" +cast_sign_loss = "allow" # All casts should include a code comment (except in test code). +checked_conversions = "warn" +cloned_instead_of_copied = "warn" +copy_iterator = "warn" +default_trait_access = "warn" +doc_link_with_quotes = "warn" +doc_markdown = "warn" +empty_enum = "warn" +enum_glob_use = "warn" +expl_impl_clone_on_copy = "warn" +explicit_deref_methods = "warn" +explicit_into_iter_loop = "warn" +explicit_iter_loop = "warn" +filter_map_next = "warn" +flat_map_option = "warn" +float_cmp = "allow" # Bitcoin floats are typically limited to 8 decimal places and we want them exact. +fn_params_excessive_bools = "warn" +from_iter_instead_of_collect = "warn" +if_not_else = "warn" +ignored_unit_patterns = "warn" +implicit_clone = "warn" +implicit_hasher = "warn" +inconsistent_struct_constructor = "warn" +index_refutable_slice = "warn" +inefficient_to_string = "warn" +inline_always = "warn" +into_iter_without_iter = "warn" +invalid_upcast_comparisons = "warn" +items_after_statements = "warn" +iter_filter_is_ok = "warn" +iter_filter_is_some = "warn" +iter_not_returning_iterator = "warn" +iter_without_into_iter = "warn" +large_digit_groups = "warn" +large_futures = "warn" +large_stack_arrays = "warn" +large_types_passed_by_value = "warn" +linkedlist = "warn" +macro_use_imports = "warn" +manual_assert = "warn" +manual_instant_elapsed = "warn" +manual_is_power_of_two = "warn" +manual_is_variant_and = "warn" +manual_let_else = "warn" +manual_ok_or = "warn" +manual_string_new = "warn" +many_single_char_names = "warn" +map_unwrap_or = "warn" +match_bool = "allow" # Adds extra indentation and LOC. +match_same_arms = "allow" # Collapses things that are conceptually unrelated to each other. +match_wild_err_arm = "warn" +match_wildcard_for_single_variants = "warn" +maybe_infinite_iter = "warn" +mismatching_type_param_order = "warn" +missing_errors_doc = "warn" +missing_fields_in_debug = "warn" +missing_panics_doc = "warn" +must_use_candidate = "allow" # Useful for audit but many false positives. +mut_mut = "warn" +naive_bytecount = "warn" +needless_bitwise_bool = "warn" +needless_continue = "warn" +needless_for_each = "warn" +needless_pass_by_value = "warn" +needless_raw_string_hashes = "warn" +no_effect_underscore_binding = "warn" +no_mangle_with_rust_abi = "warn" +option_as_ref_cloned = "warn" +option_option = "warn" +ptr_as_ptr = "warn" +ptr_cast_constness = "warn" +pub_underscore_fields = "warn" +range_minus_one = "warn" +range_plus_one = "warn" +redundant_clone = "warn" +redundant_closure_for_method_calls = "warn" +redundant_else = "warn" +ref_as_ptr = "warn" +ref_binding_to_reference = "warn" +ref_option = "warn" +ref_option_ref = "warn" +return_self_not_must_use = "warn" +same_functions_in_if_condition = "warn" +semicolon_if_nothing_returned = "warn" +should_panic_without_expect = "warn" +similar_names = "allow" # Too many (subjectively) false positives. +single_char_pattern = "warn" +single_match_else = "warn" +stable_sort_primitive = "warn" +str_split_at_newline = "warn" +string_add_assign = "warn" +struct_excessive_bools = "warn" +struct_field_names = "allow" # dumb +too_many_lines = "warn" +transmute_ptr_to_ptr = "warn" +trivially_copy_pass_by_ref = "warn" +unchecked_duration_subtraction = "warn" +unicode_not_nfc = "warn" +uninlined_format_args = "allow" # This is a subjective style choice. +unnecessary_box_returns = "warn" +unnecessary_join = "warn" +unnecessary_literal_bound = "warn" +unnecessary_wraps = "warn" +unnested_or_patterns = "warn" +unreadable_literal = "warn" +unsafe_derive_deserialize = "warn" +unused_async = "warn" +unused_self = "warn" +use_self = "warn" +used_underscore_binding = "warn" +used_underscore_items = "warn" +verbose_bit_mask = "warn" +wildcard_imports = "warn" +zero_sized_map_values = "warn" diff --git a/README.md b/README.md index 1a287bdac3..5f32f528c3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ CC0 1.0 Universal Licensed CI Status API Docs - Rustc Version 1.63.0+ + Rustc Version 1.74.0+ Chat on IRC kani

@@ -25,7 +25,7 @@ Supports (or should support) * De/serialization of Bitcoin protocol network messages * De/serialization of blocks and transactions * Script de/serialization -* Private keys and address creation, de/serialization and validation (including full BIP32 support) +* Private keys and address creation, de/serialization and validation (including full BIP-0032 support) * PSBT v0 de/serialization and all but the Input Finalizer role. Use [rust-miniscript](https://docs.rs/miniscript/latest/miniscript/psbt/index.html) to finalize. For JSONRPC interaction with Bitcoin Core, it is recommended to use @@ -76,10 +76,19 @@ For more information, please see [`CONTRIBUTING.md`](./CONTRIBUTING.md). ## Minimum Supported Rust Version (MSRV) -This library should compile with any combination of features on **Rust 1.63.0**. +This library should compile with any combination of features on **Rust 1.74.0**. Use `Cargo-minimal.lock` to build the MSRV by copying to `Cargo.lock` and building. +## No-std support + +The `std` cargo feature is enabled by default. To build this project without the Rust standard +library, use the `--no-default-features` flag or set `default-features = false` in your dependency +declaration when adding it to your project. + +For embedded device examples, see [`bitcoin/embedded`](https://github.com/rust-bitcoin/rust-bitcoin/tree/master/bitcoin/embedded) +or [`hashes/embedded`](https://github.com/rust-bitcoin/rust-bitcoin/tree/master/hashes/embedded). + ## External dependencies We integrate with a few external libraries, most notably `serde`. These @@ -93,110 +102,6 @@ of "our CI didn't fail with these versions". Specifically, we do not guarantee that the committed hashes are free from malware. It is your responsibility to review them. -## Installing Rust - -Rust can be installed using your package manager of choice or [rustup.rs](https://rustup.rs). The -former way is considered more secure since it typically doesn't involve trust in the CA system. But -you should be aware that the version of Rust shipped by your distribution might be out of date. -Generally this isn't a problem for `rust-bitcoin` since we support much older versions than the -current stable one (see MSRV section). - -## Building - -The library can be built and tested using [`cargo`](https://github.com/rust-lang/cargo/): - -``` -git clone git@github.com:rust-bitcoin/rust-bitcoin.git -cd rust-bitcoin -cargo build -``` - -You can run tests with: - -``` -cargo test -``` - -Please refer to the [`cargo` documentation](https://doc.rust-lang.org/stable/cargo/) for more -detailed instructions. - -### No-std support - -The `std` cargo feature is enabled by default. To build this project without the Rust standard -library, use the `--no-default-features` flag or set `default-features = false` in your dependency -declaration when adding it to your project. - -For embedded device examples, see [`bitcoin/embedded`](https://github.com/rust-bitcoin/rust-bitcoin/tree/master/bitcoin/embedded) -or [`hashes/embedded`](https://github.com/rust-bitcoin/rust-bitcoin/tree/master/hashes/embedded). - -### Just - -We support [`just`](https://just.systems/man/en/) for running dev workflow commands. Run `just` from -your shell to see a list of available sub-commands. - -### Building the docs - -We build docs with the nightly toolchain, you may wish to use the following shell alias to check -your documentation changes build correctly. - -``` -alias build-docs='RUSTDOCFLAGS="--cfg docsrs" cargo +nightly rustdoc --features="$FEATURES" -- -D rustdoc::broken-intra-doc-links' -``` - -## Testing - -Unit and integration tests are available for those interested, along with benchmarks. For project -developers, especially new contributors looking for something to work on, we do: - -- Fuzz testing with [`Honggfuzz`](https://github.com/rust-fuzz/honggfuzz-rs) -- Mutation testing with [`cargo-mutants`](https://github.com/sourcefrog/cargo-mutants) -- Code verification with [`Kani`](https://github.com/model-checking/kani) - -There are always more tests to write and more bugs to find. PRs are extremely welcomed. -Please consider testing code as a first-class citizen. We definitely do take PRs -improving and cleaning up test code. - -### Unit/Integration tests - -Run as for any other Rust project `cargo test --all-features`. - -### Benchmarks - -We use a custom Rust compiler configuration conditional to guard the bench mark code. To run the -bench marks use: `RUSTFLAGS='--cfg=bench' cargo +nightly bench`. - -### Mutation tests - -We are doing mutation testing with [cargo-mutants](https://github.com/sourcefrog/cargo-mutants). To run -these tests first install with `cargo install --locked cargo-mutants` then run with `cargo mutants --in-place --no-shuffle`. -Note that running these mutation tests will take on the order of 10's of minutes. - -### Code verification - -We have started using [kani](https://github.com/model-checking/kani), install with `cargo install --locked kani-verifier` - (no need to run `cargo kani setup`). Run the tests with `cargo kani`. - -## Pull Requests - -Every PR needs at least two reviews to get merged. During the review phase, maintainers and -contributors are likely to leave comments and request changes. Please try to address them, otherwise -your PR might get closed without merging after a longer time of inactivity. If your PR isn't ready -for review yet please mark it by prefixing the title with `WIP: `. - -### CI Pipeline - -The CI pipeline requires approval before being run on each MR. - -In order to speed up the review process the CI pipeline can be run locally using -[act](https://github.com/nektos/act). The `fuzz` and `Cross` jobs will be skipped when using `act` -due to caching being unsupported at this time. We do not *actively* support `act` but will merge PRs -fixing `act` issues. - -### Githooks - -To assist devs in catching errors _before_ running CI we provide some githooks. Copy the hooks in `githooks/` -to your githooks folder or run `just githooks-install` to copy them all. - ## Policy on Altcoins/Altchains Since the altcoin landscape includes projects which [frequently appear and disappear, and are poorly @@ -211,12 +116,17 @@ Our code is public domain so by all means fork it and go wild :) Release notes are done per crate, see: -- [`bitcoin` CHANGELOG](bitcoin/CHANGELOG.md) - [`addresses` CHANGELOG](addresses/CHANGELOG.md) - [`base58` CHANGELOG](base58/CHANGELOG.md) +- [`bip158` CHANGELOG](bip158/CHANGELOG.md) +- [`bitcoin` CHANGELOG](bitcoin/CHANGELOG.md) +- [`chacha20_poly1305` CHANGELOG](chacha20_poly1305/CHANGELOG.md) +- [`consensus_encoding` CHANGELOG](consensus_encoding/CHANGELOG.md) +- [`crypto` CHANGELOG](crypto/CHANGELOG.md) - [`hashes` CHANGELOG](hashes/CHANGELOG.md) - [`internals` CHANGELOG](internals/CHANGELOG.md) - [`io` CHANGELOG](io/CHANGELOG.md) +- [`p2p` CHANGELOG](p2p/CHANGELOG.md) - [`primitives` CHANGELOG](primitives/CHANGELOG.md) - [`units` CHANGELOG](units/CHANGELOG.md) diff --git a/addresses/Cargo.toml b/addresses/Cargo.toml index 8e38252990..bc9066de22 100644 --- a/addresses/Cargo.toml +++ b/addresses/Cargo.toml @@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies"] keywords = ["bitcoin", "types"] readme = "README.md" edition = "2021" -rust-version = "1.63.0" +rust-version = "1.74.0" exclude = ["tests", "contrib"] [features] @@ -24,3 +24,7 @@ alloc = [] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] + +[lints.clippy] +redundant_clone = "warn" +use_self = "warn" diff --git a/addresses/README.md b/addresses/README.md index aaf09cc287..a7fdf225a1 100644 --- a/addresses/README.md +++ b/addresses/README.md @@ -1,7 +1,3 @@ # Bitcoin Receive Types and logic required to receive bitcoin - i.e., bitcoin addresses. - -## Minimum Supported Rust Version (MSRV) - -This library should always compile with any combination of features on **Rust 1.63.0**. diff --git a/addresses/contrib/extra_lints.sh b/addresses/contrib/extra_lints.sh new file mode 100755 index 0000000000..5e7f0c948d --- /dev/null +++ b/addresses/contrib/extra_lints.sh @@ -0,0 +1,4 @@ +# No shebang, this file should not be executed. +# shellcheck disable=SC2148 + +cargo clippy --all-targets --no-default-features --keep-going -- -D warnings diff --git a/addresses/src/lib.rs b/addresses/src/lib.rs index 06c99f4e99..74884fd449 100644 --- a/addresses/src/lib.rs +++ b/addresses/src/lib.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: CC0-1.0 -//! # Bitcoin Addresses +//! Bitcoin Addresses //! //! Bitcoin addresses do not appear on chain; rather, they are conventions used by Bitcoin (wallet) //! software to communicate where coins should be sent and are based on the output type e.g., P2WPKH. @@ -11,9 +11,8 @@ // NB: This crate is empty if `alloc` is not enabled. #![cfg(feature = "alloc")] -#![cfg_attr(all(not(test), not(feature = "std")), no_std)] +#![no_std] // Experimental features we need. -#![cfg_attr(docsrs, feature(doc_auto_cfg))] #![doc(test(attr(warn(unused))))] // Coding conventions. #![warn(deprecated_in_future)] @@ -21,7 +20,7 @@ // Exclude lints we don't think are valuable. #![allow(clippy::needless_question_mark)] // https://github.com/rust-bitcoin/rust-bitcoin/pull/2134 #![allow(clippy::manual_range_contains)] // More readable than clippy's format. -#![allow(clippy::uninlined_format_args)] // Allow `format!("{}", x)`instead of enforcing `format!("{x}")` +#![allow(clippy::uninlined_format_args)] // Allow `format!("{}", x)` instead of enforcing `format!("{x}")` extern crate alloc; diff --git a/api/consensus_encoding/all-features.txt b/api/consensus_encoding/all-features.txt new file mode 100644 index 0000000000..ee67d857a9 --- /dev/null +++ b/api/consensus_encoding/all-features.txt @@ -0,0 +1,462 @@ +impl bitcoin_consensus_encoding::ByteVecDecoder +impl bitcoin_consensus_encoding::CompactSizeDecoder +impl bitcoin_consensus_encoding::CompactSizeEncoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::ByteVecDecoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::CompactSizeDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::BytesEncoder<'_> +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::clone::Clone for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::clone::Clone for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::clone::Clone for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::clone::Clone for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::clone::Clone for bitcoin_consensus_encoding::UnexpectedEofError +impl core::cmp::Eq for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::cmp::Eq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::convert::From for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::default::Default for bitcoin_consensus_encoding::ByteVecDecoder +impl core::default::Default for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::error::Error for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::error::Error for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::error::Error for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::error::Error for bitcoin_consensus_encoding::UnexpectedEofError +impl core::fmt::Debug for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::fmt::Debug for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::fmt::Debug for bitcoin_consensus_encoding::UnexpectedEofError +impl core::fmt::Display for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::fmt::Display for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::fmt::Display for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::fmt::Display for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Freeze for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Freeze for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Freeze for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Send for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Send for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Send for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Send for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Sync for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Sync for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Sync for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Unpin for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Unpin for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Unpin for bitcoin_consensus_encoding::UnexpectedEofError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ByteVecDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::UnexpectedEofError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ByteVecDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::UnexpectedEofError +impl<'e, T: bitcoin_consensus_encoding::Encodable> bitcoin_consensus_encoding::SliceEncoder<'e, T> +impl<'e, T> core::marker::Freeze for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Freeze +impl<'e, T> core::marker::Send for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Send, T: core::marker::Sync +impl<'e, T> core::marker::Sync for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Sync, T: core::marker::Sync +impl<'e, T> core::marker::Unpin for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Unpin +impl<'e, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl<'e, T> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl<'s, T: bitcoin_consensus_encoding::Encodable + 's> bitcoin_consensus_encoding::EncodableByteIter<'s, T> +impl<'s, T: bitcoin_consensus_encoding::Encodable + 's> core::iter::traits::iterator::Iterator for bitcoin_consensus_encoding::EncodableByteIter<'s, T> +impl<'s, T> core::marker::Freeze for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Freeze +impl<'s, T> core::marker::Send for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Send +impl<'s, T> core::marker::Sync for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Sync +impl<'s, T> core::marker::Unpin for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Unpin +impl<'s, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::panic::unwind_safe::RefUnwindSafe +impl<'s, T> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::panic::unwind_safe::UnwindSafe +impl<'sl> bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Freeze for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Send for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Sync for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Unpin for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder6 +impl core::error::Error for bitcoin_consensus_encoding::Decoder6Error where A: core::error::Error + 'static, B: core::error::Error + 'static, C: core::error::Error + 'static, D: core::error::Error + 'static, E: core::error::Error + 'static, F: core::error::Error + 'static +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder6Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display, D: core::fmt::Display, E: core::fmt::Display, F: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, C: core::marker::Freeze, F: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze, F: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Freeze, F: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, C: core::marker::Send, F: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send, D: core::marker::Send, E: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send, E: core::marker::Send, F: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Send, F: core::marker::Send, A: core::marker::Send, B: core::marker::Send, D: core::marker::Send, E: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder6Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, C: core::marker::Sync, F: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync, F: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Sync, F: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, C: core::marker::Unpin, F: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin, F: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Unpin, F: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder6 where ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder6Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder6 where C: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder6 where ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder6Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder6 where C: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder4 +impl core::error::Error for bitcoin_consensus_encoding::Decoder4Error where A: core::error::Error + 'static, B: core::error::Error + 'static, C: core::error::Error + 'static, D: core::error::Error + 'static +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder4Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display, D: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze, ::Output: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send, ::Output: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder4Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync, ::Output: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin, ::Output: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder4 where ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder4Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder4 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder4 where ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder4Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder4 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder3 +impl core::error::Error for bitcoin_consensus_encoding::Decoder3Error where A: core::error::Error + 'static, B: core::error::Error + 'static, C: core::error::Error + 'static +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder3Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Send, A: core::marker::Send, B: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder3Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder3 where C: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder3Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder3 where C: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder3 where C: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder3Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder3 where C: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder2 +impl core::error::Error for bitcoin_consensus_encoding::Decoder2Error where A: core::error::Error + 'static, B: core::error::Error + 'static +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder2Error where A: core::fmt::Display, B: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Freeze, B: core::marker::Freeze, ::Output: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Send, B: core::marker::Send, ::Output: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Send, B: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Send, B: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder2Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Sync, B: core::marker::Sync, ::Output: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Unpin, B: core::marker::Unpin, ::Output: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Unpin, B: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Unpin, B: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder2 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder2Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder2 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder2 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder2Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder2 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder6 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder4 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder3 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder2 +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder6Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder4Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder3Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder2Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder6Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder4Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder3Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder2Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder6Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder4Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder3Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder2Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder6Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder4Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder3Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder2Error +impl core::fmt::Debug for bitcoin_consensus_encoding::ReadError +impl core::fmt::Display for bitcoin_consensus_encoding::ReadError +impl !core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ReadError +impl !core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ReadError +impl core::convert::From for bitcoin_consensus_encoding::ReadError +impl core::error::Error for bitcoin_consensus_encoding::ReadError where D: core::fmt::Debug + core::fmt::Display + core::error::Error + 'static +impl core::marker::Freeze for bitcoin_consensus_encoding::ReadError where D: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::ReadError where D: core::marker::Send +impl core::marker::Sync for bitcoin_consensus_encoding::ReadError where D: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::ReadError where D: core::marker::Unpin +impl core::clone::Clone for bitcoin_consensus_encoding::VecDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::VecDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::VecDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::VecDecoderError +impl core::convert::From for bitcoin_consensus_encoding::VecDecoderError +impl core::error::Error for bitcoin_consensus_encoding::VecDecoderError where Err: core::error::Error + 'static +impl core::fmt::Display for bitcoin_consensus_encoding::VecDecoderError where Err: core::fmt::Display + core::fmt::Debug +impl core::marker::Freeze for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::VecDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::VecDecoderError where Err: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::VecDecoderError where Err: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::VecDecoder +impl bitcoin_consensus_encoding::VecDecoder +impl core::default::Default for bitcoin_consensus_encoding::VecDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::SliceEncoder<'_, T> +impl bitcoin_consensus_encoding::Encoder for core::option::Option +impl core::marker::Freeze for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Send, T: core::marker::Send +impl core::marker::Sync for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::ArrayDecoder +impl bitcoin_consensus_encoding::ArrayEncoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::ArrayDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::ArrayEncoder +impl core::default::Default for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Send for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Send for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Sync for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ArrayEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ArrayDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ArrayEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ArrayDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ArrayEncoder +pub bitcoin_consensus_encoding::Decoder2Error::First(A) +pub bitcoin_consensus_encoding::Decoder2Error::Second(B) +pub bitcoin_consensus_encoding::Decoder3Error::First(A) +pub bitcoin_consensus_encoding::Decoder3Error::Second(B) +pub bitcoin_consensus_encoding::Decoder3Error::Third(C) +pub bitcoin_consensus_encoding::Decoder4Error::First(A) +pub bitcoin_consensus_encoding::Decoder4Error::Fourth(D) +pub bitcoin_consensus_encoding::Decoder4Error::Second(B) +pub bitcoin_consensus_encoding::Decoder4Error::Third(C) +pub bitcoin_consensus_encoding::Decoder6Error::Fifth(E) +pub bitcoin_consensus_encoding::Decoder6Error::First(A) +pub bitcoin_consensus_encoding::Decoder6Error::Fourth(D) +pub bitcoin_consensus_encoding::Decoder6Error::Second(B) +pub bitcoin_consensus_encoding::Decoder6Error::Sixth(F) +pub bitcoin_consensus_encoding::Decoder6Error::Third(C) +pub bitcoin_consensus_encoding::ReadError::Decode(D) +pub bitcoin_consensus_encoding::ReadError::Io(std::io::error::Error) +pub const fn bitcoin_consensus_encoding::ArrayDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::ArrayEncoder::without_length_prefix(arr: [u8; N]) -> Self +pub const fn bitcoin_consensus_encoding::ByteVecDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::BytesEncoder<'sl>::without_length_prefix(sl: &'sl [u8]) -> Self +pub const fn bitcoin_consensus_encoding::CompactSizeDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::CompactSizeDecoder::new_with_limit(limit: usize) -> Self +pub const fn bitcoin_consensus_encoding::Decoder2::new(first: A, second: B) -> Self +pub const fn bitcoin_consensus_encoding::Decoder3::new(dec_1: A, dec_2: B, dec_3: C) -> Self +pub const fn bitcoin_consensus_encoding::Decoder4::new(dec_1: A, dec_2: B, dec_3: C, dec_4: D) -> Self +pub const fn bitcoin_consensus_encoding::Decoder6::new(dec_1: A, dec_2: B, dec_3: C, dec_4: D, dec_5: E, dec_6: F) -> Self +pub const fn bitcoin_consensus_encoding::Encoder2::new(enc_1: A, enc_2: B) -> Self +pub const fn bitcoin_consensus_encoding::Encoder3::new(enc_1: A, enc_2: B, enc_3: C) -> Self +pub const fn bitcoin_consensus_encoding::Encoder4::new(enc_1: A, enc_2: B, enc_3: C, enc_4: D) -> Self +pub const fn bitcoin_consensus_encoding::Encoder6::new(enc_1: A, enc_2: B, enc_3: C, enc_4: D, enc_5: E, enc_6: F) -> Self +pub const fn bitcoin_consensus_encoding::VecDecoder::new() -> Self +pub enum bitcoin_consensus_encoding::Decoder2Error +pub enum bitcoin_consensus_encoding::Decoder3Error +pub enum bitcoin_consensus_encoding::Decoder4Error +pub enum bitcoin_consensus_encoding::Decoder6Error +pub enum bitcoin_consensus_encoding::ReadError +pub fn bitcoin_consensus_encoding::ArrayDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::ArrayDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::ArrayDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::ArrayDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::ArrayEncoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::ArrayEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::ByteVecDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::ByteVecDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::ByteVecDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::ByteVecDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::clone(&self) -> bitcoin_consensus_encoding::ByteVecDecoderError +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::eq(&self, other: &bitcoin_consensus_encoding::ByteVecDecoderError) -> bool +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::BytesEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::BytesEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::clone(&self) -> bitcoin_consensus_encoding::CompactSizeDecoder +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::clone(&self) -> bitcoin_consensus_encoding::CompactSizeDecoderError +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::eq(&self, other: &bitcoin_consensus_encoding::CompactSizeDecoderError) -> bool +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::new(value: usize) -> Self +pub fn bitcoin_consensus_encoding::Decodable::decoder() -> Self::Decoder +pub fn bitcoin_consensus_encoding::Decoder2::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder2::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder2::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder2Error::clone(&self) -> bitcoin_consensus_encoding::Decoder2Error +pub fn bitcoin_consensus_encoding::Decoder2Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder2Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder2Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder2Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::Decoder3::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder3::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder3::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder3Error::clone(&self) -> bitcoin_consensus_encoding::Decoder3Error +pub fn bitcoin_consensus_encoding::Decoder3Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder3Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder3Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder3Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::Decoder4::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder4::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder4::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder4Error::clone(&self) -> bitcoin_consensus_encoding::Decoder4Error +pub fn bitcoin_consensus_encoding::Decoder4Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder4Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder4Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder4Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::Decoder6::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder6::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder6::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder6Error::clone(&self) -> bitcoin_consensus_encoding::Decoder6Error +pub fn bitcoin_consensus_encoding::Decoder6Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder6Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder6Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder6Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::Decoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Encodable::encoder(&self) -> Self::Encoder +pub fn bitcoin_consensus_encoding::EncodableByteIter<'s, T>::new(encodable: &'s T) -> Self +pub fn bitcoin_consensus_encoding::EncodableByteIter<'s, T>::next(&mut self) -> core::option::Option +pub fn bitcoin_consensus_encoding::Encoder2::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder2::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder3::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder3::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder4::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder4::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder6::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder6::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::LengthPrefixExceedsMaxError::clone(&self) -> bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +pub fn bitcoin_consensus_encoding::LengthPrefixExceedsMaxError::eq(&self, other: &bitcoin_consensus_encoding::LengthPrefixExceedsMaxError) -> bool +pub fn bitcoin_consensus_encoding::LengthPrefixExceedsMaxError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::ReadError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::ReadError::from(e: std::io::error::Error) -> Self +pub fn bitcoin_consensus_encoding::ReadError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::SliceEncoder<'_, T>::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::SliceEncoder<'_, T>::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::SliceEncoder<'e, T>::without_length_prefix(sl: &'e [T]) -> Self +pub fn bitcoin_consensus_encoding::UnexpectedEofError::clone(&self) -> bitcoin_consensus_encoding::UnexpectedEofError +pub fn bitcoin_consensus_encoding::UnexpectedEofError::eq(&self, other: &bitcoin_consensus_encoding::UnexpectedEofError) -> bool +pub fn bitcoin_consensus_encoding::UnexpectedEofError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::VecDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::VecDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::VecDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::VecDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::VecDecoderError::clone(&self) -> bitcoin_consensus_encoding::VecDecoderError +pub fn bitcoin_consensus_encoding::VecDecoderError::eq(&self, other: &bitcoin_consensus_encoding::VecDecoderError) -> bool +pub fn bitcoin_consensus_encoding::VecDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::VecDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_consensus_encoding::VecDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_consensus_encoding::decode_from_read(reader: R) -> core::result::Result::Decoder as bitcoin_consensus_encoding::Decoder>::Error>> where T: bitcoin_consensus_encoding::Decodable, R: std::io::BufRead +pub fn bitcoin_consensus_encoding::decode_from_read_unbuffered(reader: R) -> core::result::Result::Decoder as bitcoin_consensus_encoding::Decoder>::Error>> where T: bitcoin_consensus_encoding::Decodable, R: std::io::Read +pub fn bitcoin_consensus_encoding::decode_from_read_unbuffered_with(reader: R) -> core::result::Result::Decoder as bitcoin_consensus_encoding::Decoder>::Error>> where T: bitcoin_consensus_encoding::Decodable, R: std::io::Read +pub fn bitcoin_consensus_encoding::decode_from_slice(bytes: &[u8]) -> core::result::Result::Decoder as bitcoin_consensus_encoding::Decoder>::Error> where T: bitcoin_consensus_encoding::Decodable +pub fn bitcoin_consensus_encoding::encode_to_vec(object: &T) -> alloc::vec::Vec where T: bitcoin_consensus_encoding::Encodable + ?core::marker::Sized +pub fn bitcoin_consensus_encoding::encode_to_writer(object: &T, writer: W) -> core::result::Result<(), std::io::error::Error> where T: bitcoin_consensus_encoding::Encodable + ?core::marker::Sized, W: std::io::Write +pub fn core::option::Option::advance(&mut self) -> bool +pub fn core::option::Option::current_chunk(&self) -> &[u8] +pub macro bitcoin_consensus_encoding::encoder_newtype! +pub mod bitcoin_consensus_encoding +pub struct bitcoin_consensus_encoding::ArrayDecoder +pub struct bitcoin_consensus_encoding::ArrayEncoder +pub struct bitcoin_consensus_encoding::ByteVecDecoder +pub struct bitcoin_consensus_encoding::ByteVecDecoderError(_) +pub struct bitcoin_consensus_encoding::BytesEncoder<'sl> +pub struct bitcoin_consensus_encoding::CompactSizeDecoder +pub struct bitcoin_consensus_encoding::CompactSizeDecoderError(_) +pub struct bitcoin_consensus_encoding::CompactSizeEncoder +pub struct bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::EncodableByteIter<'s, T: bitcoin_consensus_encoding::Encodable + 's> +pub struct bitcoin_consensus_encoding::Encoder2 +pub struct bitcoin_consensus_encoding::Encoder3 +pub struct bitcoin_consensus_encoding::Encoder4 +pub struct bitcoin_consensus_encoding::Encoder6 +pub struct bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +pub struct bitcoin_consensus_encoding::SliceEncoder<'e, T: bitcoin_consensus_encoding::Encodable> +pub struct bitcoin_consensus_encoding::UnexpectedEofError +pub struct bitcoin_consensus_encoding::VecDecoder +pub struct bitcoin_consensus_encoding::VecDecoderError(_) +pub trait bitcoin_consensus_encoding::Decodable +pub trait bitcoin_consensus_encoding::Decoder: core::marker::Sized +pub trait bitcoin_consensus_encoding::Encodable +pub trait bitcoin_consensus_encoding::Encoder +pub type bitcoin_consensus_encoding::ArrayDecoder::Error = bitcoin_consensus_encoding::UnexpectedEofError +pub type bitcoin_consensus_encoding::ArrayDecoder::Output = [u8; N] +pub type bitcoin_consensus_encoding::ByteVecDecoder::Error = bitcoin_consensus_encoding::ByteVecDecoderError +pub type bitcoin_consensus_encoding::ByteVecDecoder::Output = alloc::vec::Vec +pub type bitcoin_consensus_encoding::CompactSizeDecoder::Error = bitcoin_consensus_encoding::CompactSizeDecoderError +pub type bitcoin_consensus_encoding::CompactSizeDecoder::Output = usize +pub type bitcoin_consensus_encoding::Decodable::Decoder: bitcoin_consensus_encoding::Decoder +pub type bitcoin_consensus_encoding::Decoder2::Error = bitcoin_consensus_encoding::Decoder2Error<::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder2::Output = (::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder3::Error = bitcoin_consensus_encoding::Decoder3Error<::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder3::Output = (::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder4::Error = bitcoin_consensus_encoding::Decoder4Error<::Error, ::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder4::Output = (::Output, ::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder6::Error = bitcoin_consensus_encoding::Decoder6Error<::Error, ::Error, ::Error, ::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder6::Output = (::Output, ::Output, ::Output, ::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder::Error +pub type bitcoin_consensus_encoding::Decoder::Output +pub type bitcoin_consensus_encoding::Encodable::Encoder<'s> where Self: 's: bitcoin_consensus_encoding::Encoder +pub type bitcoin_consensus_encoding::EncodableByteIter<'s, T>::Item = u8 +pub type bitcoin_consensus_encoding::VecDecoder::Error = bitcoin_consensus_encoding::VecDecoderError<<::Decoder as bitcoin_consensus_encoding::Decoder>::Error> +pub type bitcoin_consensus_encoding::VecDecoder::Output = alloc::vec::Vec diff --git a/api/consensus_encoding/alloc-only.txt b/api/consensus_encoding/alloc-only.txt new file mode 100644 index 0000000000..9b8591549b --- /dev/null +++ b/api/consensus_encoding/alloc-only.txt @@ -0,0 +1,426 @@ +impl bitcoin_consensus_encoding::ByteVecDecoder +impl bitcoin_consensus_encoding::CompactSizeDecoder +impl bitcoin_consensus_encoding::CompactSizeEncoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::ByteVecDecoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::CompactSizeDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::BytesEncoder<'_> +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::clone::Clone for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::clone::Clone for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::clone::Clone for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::clone::Clone for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::clone::Clone for bitcoin_consensus_encoding::UnexpectedEofError +impl core::cmp::Eq for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::cmp::Eq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::convert::From for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::default::Default for bitcoin_consensus_encoding::ByteVecDecoder +impl core::default::Default for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::fmt::Debug for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::fmt::Debug for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::fmt::Debug for bitcoin_consensus_encoding::UnexpectedEofError +impl core::fmt::Display for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::fmt::Display for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::fmt::Display for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::fmt::Display for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Freeze for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Freeze for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Freeze for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Send for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Send for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Send for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Send for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Sync for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Sync for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Sync for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Unpin for bitcoin_consensus_encoding::ByteVecDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Unpin for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::marker::Unpin for bitcoin_consensus_encoding::UnexpectedEofError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ByteVecDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::UnexpectedEofError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ByteVecDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ByteVecDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::UnexpectedEofError +impl<'e, T: bitcoin_consensus_encoding::Encodable> bitcoin_consensus_encoding::SliceEncoder<'e, T> +impl<'e, T> core::marker::Freeze for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Freeze +impl<'e, T> core::marker::Send for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Send, T: core::marker::Sync +impl<'e, T> core::marker::Sync for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Sync, T: core::marker::Sync +impl<'e, T> core::marker::Unpin for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Unpin +impl<'e, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl<'e, T> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl<'s, T: bitcoin_consensus_encoding::Encodable + 's> bitcoin_consensus_encoding::EncodableByteIter<'s, T> +impl<'s, T: bitcoin_consensus_encoding::Encodable + 's> core::iter::traits::iterator::Iterator for bitcoin_consensus_encoding::EncodableByteIter<'s, T> +impl<'s, T> core::marker::Freeze for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Freeze +impl<'s, T> core::marker::Send for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Send +impl<'s, T> core::marker::Sync for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Sync +impl<'s, T> core::marker::Unpin for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Unpin +impl<'s, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::panic::unwind_safe::RefUnwindSafe +impl<'s, T> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::panic::unwind_safe::UnwindSafe +impl<'sl> bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Freeze for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Send for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Sync for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Unpin for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder6 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder6Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display, D: core::fmt::Display, E: core::fmt::Display, F: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, C: core::marker::Freeze, F: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze, F: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Freeze, F: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, C: core::marker::Send, F: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send, D: core::marker::Send, E: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send, E: core::marker::Send, F: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Send, F: core::marker::Send, A: core::marker::Send, B: core::marker::Send, D: core::marker::Send, E: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder6Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, C: core::marker::Sync, F: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync, F: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Sync, F: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, C: core::marker::Unpin, F: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin, F: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Unpin, F: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder6 where ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder6Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder6 where C: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder6 where ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder6Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder6 where C: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder4 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder4Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display, D: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze, ::Output: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send, ::Output: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder4Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync, ::Output: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin, ::Output: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder4 where ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder4Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder4 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder4 where ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder4Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder4 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder3 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder3Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Send, A: core::marker::Send, B: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder3Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder3 where C: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder3Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder3 where C: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder3 where C: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder3Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder3 where C: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder2 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder2Error where A: core::fmt::Display, B: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Freeze, B: core::marker::Freeze, ::Output: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Send, B: core::marker::Send, ::Output: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Send, B: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Send, B: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder2Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Sync, B: core::marker::Sync, ::Output: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Unpin, B: core::marker::Unpin, ::Output: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Unpin, B: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Unpin, B: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder2 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder2Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder2 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder2 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder2Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder2 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder6 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder4 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder3 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder2 +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder6Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder4Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder3Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder2Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder6Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder4Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder3Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder2Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder6Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder4Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder3Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder2Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder6Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder4Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder3Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder2Error +impl core::clone::Clone for bitcoin_consensus_encoding::VecDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::VecDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::VecDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::VecDecoderError +impl core::convert::From for bitcoin_consensus_encoding::VecDecoderError +impl core::fmt::Display for bitcoin_consensus_encoding::VecDecoderError where Err: core::fmt::Display + core::fmt::Debug +impl core::marker::Freeze for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::VecDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::VecDecoderError where Err: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::VecDecoderError where Err: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::VecDecoderError where Err: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::VecDecoder +impl bitcoin_consensus_encoding::VecDecoder +impl core::default::Default for bitcoin_consensus_encoding::VecDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::SliceEncoder<'_, T> +impl bitcoin_consensus_encoding::Encoder for core::option::Option +impl core::marker::Freeze for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Send, T: core::marker::Send +impl core::marker::Sync for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::VecDecoder where ::Decoder: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::ArrayDecoder +impl bitcoin_consensus_encoding::ArrayEncoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::ArrayDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::ArrayEncoder +impl core::default::Default for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Send for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Send for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Sync for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ArrayEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ArrayDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ArrayEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ArrayDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ArrayEncoder +pub bitcoin_consensus_encoding::Decoder2Error::First(A) +pub bitcoin_consensus_encoding::Decoder2Error::Second(B) +pub bitcoin_consensus_encoding::Decoder3Error::First(A) +pub bitcoin_consensus_encoding::Decoder3Error::Second(B) +pub bitcoin_consensus_encoding::Decoder3Error::Third(C) +pub bitcoin_consensus_encoding::Decoder4Error::First(A) +pub bitcoin_consensus_encoding::Decoder4Error::Fourth(D) +pub bitcoin_consensus_encoding::Decoder4Error::Second(B) +pub bitcoin_consensus_encoding::Decoder4Error::Third(C) +pub bitcoin_consensus_encoding::Decoder6Error::Fifth(E) +pub bitcoin_consensus_encoding::Decoder6Error::First(A) +pub bitcoin_consensus_encoding::Decoder6Error::Fourth(D) +pub bitcoin_consensus_encoding::Decoder6Error::Second(B) +pub bitcoin_consensus_encoding::Decoder6Error::Sixth(F) +pub bitcoin_consensus_encoding::Decoder6Error::Third(C) +pub const fn bitcoin_consensus_encoding::ArrayDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::ArrayEncoder::without_length_prefix(arr: [u8; N]) -> Self +pub const fn bitcoin_consensus_encoding::ByteVecDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::BytesEncoder<'sl>::without_length_prefix(sl: &'sl [u8]) -> Self +pub const fn bitcoin_consensus_encoding::CompactSizeDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::CompactSizeDecoder::new_with_limit(limit: usize) -> Self +pub const fn bitcoin_consensus_encoding::Decoder2::new(first: A, second: B) -> Self +pub const fn bitcoin_consensus_encoding::Decoder3::new(dec_1: A, dec_2: B, dec_3: C) -> Self +pub const fn bitcoin_consensus_encoding::Decoder4::new(dec_1: A, dec_2: B, dec_3: C, dec_4: D) -> Self +pub const fn bitcoin_consensus_encoding::Decoder6::new(dec_1: A, dec_2: B, dec_3: C, dec_4: D, dec_5: E, dec_6: F) -> Self +pub const fn bitcoin_consensus_encoding::Encoder2::new(enc_1: A, enc_2: B) -> Self +pub const fn bitcoin_consensus_encoding::Encoder3::new(enc_1: A, enc_2: B, enc_3: C) -> Self +pub const fn bitcoin_consensus_encoding::Encoder4::new(enc_1: A, enc_2: B, enc_3: C, enc_4: D) -> Self +pub const fn bitcoin_consensus_encoding::Encoder6::new(enc_1: A, enc_2: B, enc_3: C, enc_4: D, enc_5: E, enc_6: F) -> Self +pub const fn bitcoin_consensus_encoding::VecDecoder::new() -> Self +pub enum bitcoin_consensus_encoding::Decoder2Error +pub enum bitcoin_consensus_encoding::Decoder3Error +pub enum bitcoin_consensus_encoding::Decoder4Error +pub enum bitcoin_consensus_encoding::Decoder6Error +pub fn bitcoin_consensus_encoding::ArrayDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::ArrayDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::ArrayDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::ArrayDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::ArrayEncoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::ArrayEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::ByteVecDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::ByteVecDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::ByteVecDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::ByteVecDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::clone(&self) -> bitcoin_consensus_encoding::ByteVecDecoderError +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::eq(&self, other: &bitcoin_consensus_encoding::ByteVecDecoderError) -> bool +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::ByteVecDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_consensus_encoding::BytesEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::BytesEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::clone(&self) -> bitcoin_consensus_encoding::CompactSizeDecoder +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::clone(&self) -> bitcoin_consensus_encoding::CompactSizeDecoderError +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::eq(&self, other: &bitcoin_consensus_encoding::CompactSizeDecoderError) -> bool +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::new(value: usize) -> Self +pub fn bitcoin_consensus_encoding::Decodable::decoder() -> Self::Decoder +pub fn bitcoin_consensus_encoding::Decoder2::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder2::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder2::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder2Error::clone(&self) -> bitcoin_consensus_encoding::Decoder2Error +pub fn bitcoin_consensus_encoding::Decoder2Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder2Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder2Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder3::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder3::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder3::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder3Error::clone(&self) -> bitcoin_consensus_encoding::Decoder3Error +pub fn bitcoin_consensus_encoding::Decoder3Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder3Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder3Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder4::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder4::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder4::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder4Error::clone(&self) -> bitcoin_consensus_encoding::Decoder4Error +pub fn bitcoin_consensus_encoding::Decoder4Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder4Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder4Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder6::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder6::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder6::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder6Error::clone(&self) -> bitcoin_consensus_encoding::Decoder6Error +pub fn bitcoin_consensus_encoding::Decoder6Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder6Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder6Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Encodable::encoder(&self) -> Self::Encoder +pub fn bitcoin_consensus_encoding::EncodableByteIter<'s, T>::new(encodable: &'s T) -> Self +pub fn bitcoin_consensus_encoding::EncodableByteIter<'s, T>::next(&mut self) -> core::option::Option +pub fn bitcoin_consensus_encoding::Encoder2::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder2::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder3::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder3::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder4::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder4::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder6::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder6::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::LengthPrefixExceedsMaxError::clone(&self) -> bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +pub fn bitcoin_consensus_encoding::LengthPrefixExceedsMaxError::eq(&self, other: &bitcoin_consensus_encoding::LengthPrefixExceedsMaxError) -> bool +pub fn bitcoin_consensus_encoding::LengthPrefixExceedsMaxError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::SliceEncoder<'_, T>::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::SliceEncoder<'_, T>::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::SliceEncoder<'e, T>::without_length_prefix(sl: &'e [T]) -> Self +pub fn bitcoin_consensus_encoding::UnexpectedEofError::clone(&self) -> bitcoin_consensus_encoding::UnexpectedEofError +pub fn bitcoin_consensus_encoding::UnexpectedEofError::eq(&self, other: &bitcoin_consensus_encoding::UnexpectedEofError) -> bool +pub fn bitcoin_consensus_encoding::UnexpectedEofError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::VecDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::VecDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::VecDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::VecDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::VecDecoderError::clone(&self) -> bitcoin_consensus_encoding::VecDecoderError +pub fn bitcoin_consensus_encoding::VecDecoderError::eq(&self, other: &bitcoin_consensus_encoding::VecDecoderError) -> bool +pub fn bitcoin_consensus_encoding::VecDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::VecDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_consensus_encoding::decode_from_slice(bytes: &[u8]) -> core::result::Result::Decoder as bitcoin_consensus_encoding::Decoder>::Error> where T: bitcoin_consensus_encoding::Decodable +pub fn bitcoin_consensus_encoding::encode_to_vec(object: &T) -> alloc::vec::Vec where T: bitcoin_consensus_encoding::Encodable + ?core::marker::Sized +pub fn core::option::Option::advance(&mut self) -> bool +pub fn core::option::Option::current_chunk(&self) -> &[u8] +pub macro bitcoin_consensus_encoding::encoder_newtype! +pub mod bitcoin_consensus_encoding +pub struct bitcoin_consensus_encoding::ArrayDecoder +pub struct bitcoin_consensus_encoding::ArrayEncoder +pub struct bitcoin_consensus_encoding::ByteVecDecoder +pub struct bitcoin_consensus_encoding::ByteVecDecoderError(_) +pub struct bitcoin_consensus_encoding::BytesEncoder<'sl> +pub struct bitcoin_consensus_encoding::CompactSizeDecoder +pub struct bitcoin_consensus_encoding::CompactSizeDecoderError(_) +pub struct bitcoin_consensus_encoding::CompactSizeEncoder +pub struct bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::EncodableByteIter<'s, T: bitcoin_consensus_encoding::Encodable + 's> +pub struct bitcoin_consensus_encoding::Encoder2 +pub struct bitcoin_consensus_encoding::Encoder3 +pub struct bitcoin_consensus_encoding::Encoder4 +pub struct bitcoin_consensus_encoding::Encoder6 +pub struct bitcoin_consensus_encoding::LengthPrefixExceedsMaxError +pub struct bitcoin_consensus_encoding::SliceEncoder<'e, T: bitcoin_consensus_encoding::Encodable> +pub struct bitcoin_consensus_encoding::UnexpectedEofError +pub struct bitcoin_consensus_encoding::VecDecoder +pub struct bitcoin_consensus_encoding::VecDecoderError(_) +pub trait bitcoin_consensus_encoding::Decodable +pub trait bitcoin_consensus_encoding::Decoder: core::marker::Sized +pub trait bitcoin_consensus_encoding::Encodable +pub trait bitcoin_consensus_encoding::Encoder +pub type bitcoin_consensus_encoding::ArrayDecoder::Error = bitcoin_consensus_encoding::UnexpectedEofError +pub type bitcoin_consensus_encoding::ArrayDecoder::Output = [u8; N] +pub type bitcoin_consensus_encoding::ByteVecDecoder::Error = bitcoin_consensus_encoding::ByteVecDecoderError +pub type bitcoin_consensus_encoding::ByteVecDecoder::Output = alloc::vec::Vec +pub type bitcoin_consensus_encoding::CompactSizeDecoder::Error = bitcoin_consensus_encoding::CompactSizeDecoderError +pub type bitcoin_consensus_encoding::CompactSizeDecoder::Output = usize +pub type bitcoin_consensus_encoding::Decodable::Decoder: bitcoin_consensus_encoding::Decoder +pub type bitcoin_consensus_encoding::Decoder2::Error = bitcoin_consensus_encoding::Decoder2Error<::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder2::Output = (::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder3::Error = bitcoin_consensus_encoding::Decoder3Error<::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder3::Output = (::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder4::Error = bitcoin_consensus_encoding::Decoder4Error<::Error, ::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder4::Output = (::Output, ::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder6::Error = bitcoin_consensus_encoding::Decoder6Error<::Error, ::Error, ::Error, ::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder6::Output = (::Output, ::Output, ::Output, ::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder::Error +pub type bitcoin_consensus_encoding::Decoder::Output +pub type bitcoin_consensus_encoding::Encodable::Encoder<'s> where Self: 's: bitcoin_consensus_encoding::Encoder +pub type bitcoin_consensus_encoding::EncodableByteIter<'s, T>::Item = u8 +pub type bitcoin_consensus_encoding::VecDecoder::Error = bitcoin_consensus_encoding::VecDecoderError<<::Decoder as bitcoin_consensus_encoding::Decoder>::Error> +pub type bitcoin_consensus_encoding::VecDecoder::Output = alloc::vec::Vec diff --git a/api/consensus_encoding/no-features.txt b/api/consensus_encoding/no-features.txt new file mode 100644 index 0000000000..a11b460895 --- /dev/null +++ b/api/consensus_encoding/no-features.txt @@ -0,0 +1,339 @@ +impl bitcoin_consensus_encoding::CompactSizeDecoder +impl bitcoin_consensus_encoding::CompactSizeEncoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::CompactSizeDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::BytesEncoder<'_> +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::clone::Clone for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::clone::Clone for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::clone::Clone for bitcoin_consensus_encoding::UnexpectedEofError +impl core::cmp::Eq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::cmp::Eq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::cmp::PartialEq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::default::Default for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::fmt::Debug for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::fmt::Debug for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::fmt::Debug for bitcoin_consensus_encoding::UnexpectedEofError +impl core::fmt::Display for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::fmt::Display for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Freeze for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Freeze for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Send for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Send for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Sync for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Sync for bitcoin_consensus_encoding::UnexpectedEofError +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::marker::Unpin for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::marker::Unpin for bitcoin_consensus_encoding::UnexpectedEofError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::UnexpectedEofError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::CompactSizeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::UnexpectedEofError +impl<'e, T: bitcoin_consensus_encoding::Encodable> bitcoin_consensus_encoding::SliceEncoder<'e, T> +impl<'e, T> core::marker::Freeze for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Freeze +impl<'e, T> core::marker::Send for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Send, T: core::marker::Sync +impl<'e, T> core::marker::Sync for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Sync, T: core::marker::Sync +impl<'e, T> core::marker::Unpin for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::marker::Unpin +impl<'e, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl<'e, T> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::SliceEncoder<'e, T> where ::Encoder: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl<'s, T: bitcoin_consensus_encoding::Encodable + 's> bitcoin_consensus_encoding::EncodableByteIter<'s, T> +impl<'s, T: bitcoin_consensus_encoding::Encodable + 's> core::iter::traits::iterator::Iterator for bitcoin_consensus_encoding::EncodableByteIter<'s, T> +impl<'s, T> core::marker::Freeze for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Freeze +impl<'s, T> core::marker::Send for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Send +impl<'s, T> core::marker::Sync for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Sync +impl<'s, T> core::marker::Unpin for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::marker::Unpin +impl<'s, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::panic::unwind_safe::RefUnwindSafe +impl<'s, T> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::EncodableByteIter<'s, T> where ::Encoder: core::panic::unwind_safe::UnwindSafe +impl<'sl> bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Freeze for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Send for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Sync for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::marker::Unpin for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl<'sl> core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::BytesEncoder<'sl> +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder6 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder6Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display, D: core::fmt::Display, E: core::fmt::Display, F: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, C: core::marker::Freeze, F: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze, F: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Freeze, F: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, D: core::marker::Freeze, E: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, C: core::marker::Send, F: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send, D: core::marker::Send, E: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send, E: core::marker::Send, F: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Send, F: core::marker::Send, A: core::marker::Send, B: core::marker::Send, D: core::marker::Send, E: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder6Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, C: core::marker::Sync, F: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync, F: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Sync, F: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, D: core::marker::Sync, E: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder6 where ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, C: core::marker::Unpin, F: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder6Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin, F: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder6 where C: core::marker::Unpin, F: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, D: core::marker::Unpin, E: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder6 where ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder6Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder6 where C: core::panic::unwind_safe::RefUnwindSafe, F: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, E: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder6 where ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder6Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder6 where C: core::panic::unwind_safe::UnwindSafe, F: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, E: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder4 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder4Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display, D: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze, ::Output: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze, D: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send, ::Output: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send, D: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder4Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync, ::Output: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync, D: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder4 where ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin, ::Output: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder4Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder4 where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin, D: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder4 where ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder4Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder4 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe, D: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder4 where ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder4Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder4 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe, D: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder3 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder3Error where A: core::fmt::Display, B: core::fmt::Display, C: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Freeze, ::Output: core::marker::Freeze, ::Output: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Freeze, B: core::marker::Freeze, C: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Freeze, A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Send, ::Output: core::marker::Send, ::Output: core::marker::Send, A: core::marker::Send, B: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Send, B: core::marker::Send, C: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Send, A: core::marker::Send, B: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder3Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Sync, ::Output: core::marker::Sync, ::Output: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Sync, B: core::marker::Sync, C: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Sync, A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder3 where C: core::marker::Unpin, ::Output: core::marker::Unpin, ::Output: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder3Error where A: core::marker::Unpin, B: core::marker::Unpin, C: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder3 where C: core::marker::Unpin, A: core::marker::Unpin, B: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder3 where C: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder3Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, C: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder3 where C: core::panic::unwind_safe::RefUnwindSafe, A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder3 where C: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder3Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, C: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder3 where C: core::panic::unwind_safe::UnwindSafe, A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +impl bitcoin_consensus_encoding::Encoder2 +impl core::fmt::Display for bitcoin_consensus_encoding::Decoder2Error where A: core::fmt::Display, B: core::fmt::Display +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Freeze, B: core::marker::Freeze, ::Output: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Freeze for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Freeze, B: core::marker::Freeze +impl core::marker::Send for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Send, B: core::marker::Send, ::Output: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Send, B: core::marker::Send +impl core::marker::Send for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Send, B: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_consensus_encoding::Decoder2Error +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Sync, B: core::marker::Sync, ::Output: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Sync for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Sync, B: core::marker::Sync +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder2 where A: core::marker::Unpin, B: core::marker::Unpin, ::Output: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Decoder2Error where A: core::marker::Unpin, B: core::marker::Unpin +impl core::marker::Unpin for bitcoin_consensus_encoding::Encoder2 where A: core::marker::Unpin, B: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder2 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe, ::Output: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Decoder2Error where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::Encoder2 where A: core::panic::unwind_safe::RefUnwindSafe, B: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder2 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe, ::Output: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Decoder2Error where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::Encoder2 where A: core::panic::unwind_safe::UnwindSafe, B: core::panic::unwind_safe::UnwindSafe +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder6 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder4 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder3 +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::Encoder2 +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder6Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder4Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder3Error +impl core::clone::Clone for bitcoin_consensus_encoding::Decoder2Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder6Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder4Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder3Error +impl core::cmp::Eq for bitcoin_consensus_encoding::Decoder2Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder6Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder4Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder3Error +impl core::cmp::PartialEq for bitcoin_consensus_encoding::Decoder2Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder6Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder4Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder3Error +impl core::fmt::Debug for bitcoin_consensus_encoding::Decoder2Error +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::SliceEncoder<'_, T> +impl bitcoin_consensus_encoding::Encoder for core::option::Option +impl bitcoin_consensus_encoding::ArrayDecoder +impl bitcoin_consensus_encoding::ArrayEncoder +impl bitcoin_consensus_encoding::Decoder for bitcoin_consensus_encoding::ArrayDecoder +impl bitcoin_consensus_encoding::Encoder for bitcoin_consensus_encoding::ArrayEncoder +impl core::default::Default for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Freeze for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Send for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Send for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Sync for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Sync for bitcoin_consensus_encoding::ArrayEncoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ArrayDecoder +impl core::marker::Unpin for bitcoin_consensus_encoding::ArrayEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ArrayDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_consensus_encoding::ArrayEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ArrayDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_consensus_encoding::ArrayEncoder +pub bitcoin_consensus_encoding::Decoder2Error::First(A) +pub bitcoin_consensus_encoding::Decoder2Error::Second(B) +pub bitcoin_consensus_encoding::Decoder3Error::First(A) +pub bitcoin_consensus_encoding::Decoder3Error::Second(B) +pub bitcoin_consensus_encoding::Decoder3Error::Third(C) +pub bitcoin_consensus_encoding::Decoder4Error::First(A) +pub bitcoin_consensus_encoding::Decoder4Error::Fourth(D) +pub bitcoin_consensus_encoding::Decoder4Error::Second(B) +pub bitcoin_consensus_encoding::Decoder4Error::Third(C) +pub bitcoin_consensus_encoding::Decoder6Error::Fifth(E) +pub bitcoin_consensus_encoding::Decoder6Error::First(A) +pub bitcoin_consensus_encoding::Decoder6Error::Fourth(D) +pub bitcoin_consensus_encoding::Decoder6Error::Second(B) +pub bitcoin_consensus_encoding::Decoder6Error::Sixth(F) +pub bitcoin_consensus_encoding::Decoder6Error::Third(C) +pub const fn bitcoin_consensus_encoding::ArrayDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::ArrayEncoder::without_length_prefix(arr: [u8; N]) -> Self +pub const fn bitcoin_consensus_encoding::BytesEncoder<'sl>::without_length_prefix(sl: &'sl [u8]) -> Self +pub const fn bitcoin_consensus_encoding::CompactSizeDecoder::new() -> Self +pub const fn bitcoin_consensus_encoding::CompactSizeDecoder::new_with_limit(limit: usize) -> Self +pub const fn bitcoin_consensus_encoding::Decoder2::new(first: A, second: B) -> Self +pub const fn bitcoin_consensus_encoding::Decoder3::new(dec_1: A, dec_2: B, dec_3: C) -> Self +pub const fn bitcoin_consensus_encoding::Decoder4::new(dec_1: A, dec_2: B, dec_3: C, dec_4: D) -> Self +pub const fn bitcoin_consensus_encoding::Decoder6::new(dec_1: A, dec_2: B, dec_3: C, dec_4: D, dec_5: E, dec_6: F) -> Self +pub const fn bitcoin_consensus_encoding::Encoder2::new(enc_1: A, enc_2: B) -> Self +pub const fn bitcoin_consensus_encoding::Encoder3::new(enc_1: A, enc_2: B, enc_3: C) -> Self +pub const fn bitcoin_consensus_encoding::Encoder4::new(enc_1: A, enc_2: B, enc_3: C, enc_4: D) -> Self +pub const fn bitcoin_consensus_encoding::Encoder6::new(enc_1: A, enc_2: B, enc_3: C, enc_4: D, enc_5: E, enc_6: F) -> Self +pub enum bitcoin_consensus_encoding::Decoder2Error +pub enum bitcoin_consensus_encoding::Decoder3Error +pub enum bitcoin_consensus_encoding::Decoder4Error +pub enum bitcoin_consensus_encoding::Decoder6Error +pub fn bitcoin_consensus_encoding::ArrayDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::ArrayDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::ArrayDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::ArrayDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::ArrayEncoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::ArrayEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::BytesEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::BytesEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::clone(&self) -> bitcoin_consensus_encoding::CompactSizeDecoder +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::default() -> Self +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::CompactSizeDecoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::clone(&self) -> bitcoin_consensus_encoding::CompactSizeDecoderError +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::eq(&self, other: &bitcoin_consensus_encoding::CompactSizeDecoderError) -> bool +pub fn bitcoin_consensus_encoding::CompactSizeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::CompactSizeEncoder::new(value: usize) -> Self +pub fn bitcoin_consensus_encoding::Decodable::decoder() -> Self::Decoder +pub fn bitcoin_consensus_encoding::Decoder2::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder2::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder2::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder2Error::clone(&self) -> bitcoin_consensus_encoding::Decoder2Error +pub fn bitcoin_consensus_encoding::Decoder2Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder2Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder2Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder3::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder3::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder3::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder3Error::clone(&self) -> bitcoin_consensus_encoding::Decoder3Error +pub fn bitcoin_consensus_encoding::Decoder3Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder3Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder3Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder4::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder4::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder4::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder4Error::clone(&self) -> bitcoin_consensus_encoding::Decoder4Error +pub fn bitcoin_consensus_encoding::Decoder4Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder4Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder4Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder6::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder6::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder6::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Decoder6Error::clone(&self) -> bitcoin_consensus_encoding::Decoder6Error +pub fn bitcoin_consensus_encoding::Decoder6Error::eq(&self, other: &bitcoin_consensus_encoding::Decoder6Error) -> bool +pub fn bitcoin_consensus_encoding::Decoder6Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::Decoder::end(self) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_consensus_encoding::Decoder::read_limit(&self) -> usize +pub fn bitcoin_consensus_encoding::Encodable::encoder(&self) -> Self::Encoder +pub fn bitcoin_consensus_encoding::EncodableByteIter<'s, T>::new(encodable: &'s T) -> Self +pub fn bitcoin_consensus_encoding::EncodableByteIter<'s, T>::next(&mut self) -> core::option::Option +pub fn bitcoin_consensus_encoding::Encoder2::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder2::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder3::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder3::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder4::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder4::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder6::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder6::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::Encoder::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::Encoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::SliceEncoder<'_, T>::advance(&mut self) -> bool +pub fn bitcoin_consensus_encoding::SliceEncoder<'_, T>::current_chunk(&self) -> &[u8] +pub fn bitcoin_consensus_encoding::SliceEncoder<'e, T>::without_length_prefix(sl: &'e [T]) -> Self +pub fn bitcoin_consensus_encoding::UnexpectedEofError::clone(&self) -> bitcoin_consensus_encoding::UnexpectedEofError +pub fn bitcoin_consensus_encoding::UnexpectedEofError::eq(&self, other: &bitcoin_consensus_encoding::UnexpectedEofError) -> bool +pub fn bitcoin_consensus_encoding::UnexpectedEofError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_consensus_encoding::decode_from_slice(bytes: &[u8]) -> core::result::Result::Decoder as bitcoin_consensus_encoding::Decoder>::Error> where T: bitcoin_consensus_encoding::Decodable +pub fn core::option::Option::advance(&mut self) -> bool +pub fn core::option::Option::current_chunk(&self) -> &[u8] +pub macro bitcoin_consensus_encoding::encoder_newtype! +pub mod bitcoin_consensus_encoding +pub struct bitcoin_consensus_encoding::ArrayDecoder +pub struct bitcoin_consensus_encoding::ArrayEncoder +pub struct bitcoin_consensus_encoding::BytesEncoder<'sl> +pub struct bitcoin_consensus_encoding::CompactSizeDecoder +pub struct bitcoin_consensus_encoding::CompactSizeDecoderError(_) +pub struct bitcoin_consensus_encoding::CompactSizeEncoder +pub struct bitcoin_consensus_encoding::Decoder2 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder3 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder4 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::Decoder6 where A: bitcoin_consensus_encoding::Decoder, B: bitcoin_consensus_encoding::Decoder, C: bitcoin_consensus_encoding::Decoder, D: bitcoin_consensus_encoding::Decoder, E: bitcoin_consensus_encoding::Decoder, F: bitcoin_consensus_encoding::Decoder +pub struct bitcoin_consensus_encoding::EncodableByteIter<'s, T: bitcoin_consensus_encoding::Encodable + 's> +pub struct bitcoin_consensus_encoding::Encoder2 +pub struct bitcoin_consensus_encoding::Encoder3 +pub struct bitcoin_consensus_encoding::Encoder4 +pub struct bitcoin_consensus_encoding::Encoder6 +pub struct bitcoin_consensus_encoding::SliceEncoder<'e, T: bitcoin_consensus_encoding::Encodable> +pub struct bitcoin_consensus_encoding::UnexpectedEofError +pub trait bitcoin_consensus_encoding::Decodable +pub trait bitcoin_consensus_encoding::Decoder: core::marker::Sized +pub trait bitcoin_consensus_encoding::Encodable +pub trait bitcoin_consensus_encoding::Encoder +pub type bitcoin_consensus_encoding::ArrayDecoder::Error = bitcoin_consensus_encoding::UnexpectedEofError +pub type bitcoin_consensus_encoding::ArrayDecoder::Output = [u8; N] +pub type bitcoin_consensus_encoding::CompactSizeDecoder::Error = bitcoin_consensus_encoding::CompactSizeDecoderError +pub type bitcoin_consensus_encoding::CompactSizeDecoder::Output = usize +pub type bitcoin_consensus_encoding::Decodable::Decoder: bitcoin_consensus_encoding::Decoder +pub type bitcoin_consensus_encoding::Decoder2::Error = bitcoin_consensus_encoding::Decoder2Error<::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder2::Output = (::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder3::Error = bitcoin_consensus_encoding::Decoder3Error<::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder3::Output = (::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder4::Error = bitcoin_consensus_encoding::Decoder4Error<::Error, ::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder4::Output = (::Output, ::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder6::Error = bitcoin_consensus_encoding::Decoder6Error<::Error, ::Error, ::Error, ::Error, ::Error, ::Error> +pub type bitcoin_consensus_encoding::Decoder6::Output = (::Output, ::Output, ::Output, ::Output, ::Output, ::Output) +pub type bitcoin_consensus_encoding::Decoder::Error +pub type bitcoin_consensus_encoding::Decoder::Output +pub type bitcoin_consensus_encoding::Encodable::Encoder<'s> where Self: 's: bitcoin_consensus_encoding::Encoder +pub type bitcoin_consensus_encoding::EncodableByteIter<'s, T>::Item = u8 diff --git a/api/internals/all-features.txt b/api/internals/all-features.txt new file mode 100644 index 0000000000..5e41c489a8 --- /dev/null +++ b/api/internals/all-features.txt @@ -0,0 +1,230 @@ +impl bitcoin_internals::ToU64 for u16 +impl bitcoin_internals::ToU64 for u32 +impl bitcoin_internals::ToU64 for u64 +impl bitcoin_internals::ToU64 for u8 +impl bitcoin_internals::ToU64 for usize +impl bitcoin_internals::error::input_string::InputString +impl bitcoin_internals::serde::IntoDeError for core::convert::Infallible +impl bitcoin_internals::serde::IntoDeError for core::num::error::ParseIntError +impl core::clone::Clone for bitcoin_internals::error::input_string::InputString +impl core::clone::Clone for bitcoin_internals::script::PushDataLenLen +impl core::cmp::Eq for bitcoin_internals::error::input_string::InputString +impl core::cmp::Eq for bitcoin_internals::script::PushDataLenLen +impl core::cmp::Ord for bitcoin_internals::error::input_string::InputString +impl core::cmp::Ord for bitcoin_internals::script::PushDataLenLen +impl core::cmp::PartialEq for bitcoin_internals::error::input_string::InputString +impl core::cmp::PartialEq for bitcoin_internals::script::PushDataLenLen +impl core::cmp::PartialOrd for bitcoin_internals::error::input_string::InputString +impl core::cmp::PartialOrd for bitcoin_internals::script::PushDataLenLen +impl core::convert::From<&str> for bitcoin_internals::error::input_string::InputString +impl core::convert::From> for bitcoin_internals::error::input_string::InputString +impl core::convert::From> for bitcoin_internals::error::input_string::InputString +impl core::convert::From for bitcoin_internals::error::input_string::InputString +impl core::fmt::Debug for bitcoin_internals::error::input_string::InputString +impl core::fmt::Debug for bitcoin_internals::script::EarlyEndOfScriptError +impl core::fmt::Debug for bitcoin_internals::script::PushDataLenLen +impl core::hash::Hash for bitcoin_internals::error::input_string::InputString +impl core::hash::Hash for bitcoin_internals::script::PushDataLenLen +impl core::marker::Copy for bitcoin_internals::script::PushDataLenLen +impl core::marker::Freeze for bitcoin_internals::error::input_string::InputString +impl core::marker::Freeze for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Freeze for bitcoin_internals::script::PushDataLenLen +impl core::marker::Send for bitcoin_internals::error::input_string::InputString +impl core::marker::Send for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Send for bitcoin_internals::script::PushDataLenLen +impl core::marker::StructuralPartialEq for bitcoin_internals::error::input_string::InputString +impl core::marker::StructuralPartialEq for bitcoin_internals::script::PushDataLenLen +impl core::marker::Sync for bitcoin_internals::error::input_string::InputString +impl core::marker::Sync for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Sync for bitcoin_internals::script::PushDataLenLen +impl core::marker::Unpin for bitcoin_internals::error::input_string::InputString +impl core::marker::Unpin for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Unpin for bitcoin_internals::script::PushDataLenLen +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::error::input_string::InputString +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::script::EarlyEndOfScriptError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::script::PushDataLenLen +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::error::input_string::InputString +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::script::EarlyEndOfScriptError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::script::PushDataLenLen +impl serde::ser::Serialize for bitcoin_internals::serde::SerializeBytesAsHex<'_> +impl<'a, T> core::marker::Freeze for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: ?core::marker::Sized +impl<'a, T> core::marker::Send for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::marker::Sync + ?core::marker::Sized +impl<'a, T> core::marker::Sync for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::marker::Sync + ?core::marker::Sized +impl<'a, T> core::marker::Unpin for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: ?core::marker::Sized +impl<'a, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::panic::unwind_safe::RefUnwindSafe + ?core::marker::Sized +impl<'a, T> core::panic::unwind_safe::UnwindSafe for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::panic::unwind_safe::RefUnwindSafe + ?core::marker::Sized +impl<'a> core::marker::Freeze for bitcoin_internals::serde::SerializeBytesAsHex<'a> +impl<'a> core::marker::Send for bitcoin_internals::serde::SerializeBytesAsHex<'a> +impl<'a> core::marker::Sync for bitcoin_internals::serde::SerializeBytesAsHex<'a> +impl<'a> core::marker::Unpin for bitcoin_internals::serde::SerializeBytesAsHex<'a> +impl<'a> core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::serde::SerializeBytesAsHex<'a> +impl<'a> core::panic::unwind_safe::UnwindSafe for bitcoin_internals::serde::SerializeBytesAsHex<'a> +impl) -> core::fmt::Result> core::fmt::Debug for bitcoin_internals::wrap_debug::WrapDebug +impl core::marker::Freeze for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Freeze +impl core::marker::Send for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Send +impl core::marker::Sync for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Sync +impl core::marker::Unpin for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::wrap_debug::WrapDebug where F: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::wrap_debug::WrapDebug where F: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Freeze +impl core::marker::Send for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Send +impl core::marker::Sync for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::array_vec::ArrayVec where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::array_vec::ArrayVec where T: core::panic::unwind_safe::UnwindSafe +impl core::fmt::Display for bitcoin_internals::error::input_string::CannotParse<'_, T> +impl core::cmp::Eq for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::Ord for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq<[T; LEN]> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for [T; LEN] +impl core::cmp::PartialEq<[T]> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for [T] +impl core::cmp::PartialOrd> for bitcoin_internals::array_vec::ArrayVec +impl core::fmt::Debug for bitcoin_internals::array_vec::ArrayVec +impl core::hash::Hash for bitcoin_internals::array_vec::ArrayVec +impl core::marker::Copy for bitcoin_internals::array_vec::ArrayVec +impl bitcoin_internals::array_vec::ArrayVec +impl core::clone::Clone for bitcoin_internals::array_vec::ArrayVec +impl core::default::Default for bitcoin_internals::array_vec::ArrayVec +impl core::ops::deref::Deref for bitcoin_internals::array_vec::ArrayVec +impl core::ops::deref::DerefMut for bitcoin_internals::array_vec::ArrayVec +impl bitcoin_internals::slice::SliceExt for [T] +impl bitcoin_internals::array::ArrayExt for [T; N] +pub bitcoin_internals::script::PushDataLenLen::Four = 4 +pub bitcoin_internals::script::PushDataLenLen::One = 1 +pub bitcoin_internals::script::PushDataLenLen::Two = 2 +pub const bitcoin_internals::compact_size::MAX_ENCODABLE_VALUE: u64 +pub const bitcoin_internals::compact_size::MAX_ENCODING_SIZE: usize +pub const fn bitcoin_internals::array_vec::ArrayVec::as_slice(&self) -> &[T] +pub const fn bitcoin_internals::array_vec::ArrayVec::from_slice(slice: &[T]) -> Self +pub const fn bitcoin_internals::array_vec::ArrayVec::new() -> Self +pub const fn bitcoin_internals::compact_size::encoded_size_const(value: u64) -> usize +pub const fn bitcoin_internals::const_casts::i16_to_i64(value: i16) -> i64 +pub const fn bitcoin_internals::const_casts::u16_to_u32(value: u16) -> u32 +pub const fn bitcoin_internals::const_casts::u16_to_u64(value: u16) -> u64 +pub const fn bitcoin_internals::const_casts::u32_to_u64(value: u32) -> u64 +pub enum bitcoin_internals::script::PushDataLenLen +pub extern crate bitcoin_internals::bincode +pub extern crate bitcoin_internals::serde_json +pub fn [T; LEN]::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn [T; N]::split_array(&self) -> (&[Self::Item; LEFT], &[Self::Item; RIGHT]) +pub fn [T; N]::sub_array(&self) -> &[Self::Item; LEN] +pub fn [T]::bitcoin_as_chunks(&self) -> (&[[Self::Item; N]], &[Self::Item]) +pub fn [T]::bitcoin_as_chunks_mut(&mut self) -> (&mut [[Self::Item; N]], &mut [Self::Item]) +pub fn [T]::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn [T]::get_array(&self, offset: usize) -> core::option::Option<&[Self::Item; ARRAY_LEN]> +pub fn [T]::split_first_chunk(&self) -> core::option::Option<(&[Self::Item; ARRAY_LEN], &[Self::Item])> +pub fn [T]::split_last_chunk(&self) -> core::option::Option<(&[Self::Item], &[Self::Item; ARRAY_LEN])> +pub fn bitcoin_internals::ToU64::to_u64(self) -> u64 +pub fn bitcoin_internals::array::ArrayExt::first(&self) -> &Self::Item +pub fn bitcoin_internals::array::ArrayExt::get_static(&self) -> &Self::Item +pub fn bitcoin_internals::array::ArrayExt::split_array(&self) -> (&[Self::Item; LEFT], &[Self::Item; RIGHT]) +pub fn bitcoin_internals::array::ArrayExt::split_first(&self) -> (&Self::Item, &[Self::Item; RIGHT]) +pub fn bitcoin_internals::array::ArrayExt::split_last(&self) -> (&Self::Item, &[Self::Item; LEFT]) +pub fn bitcoin_internals::array::ArrayExt::sub_array(&self) -> &[Self::Item; LEN] +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::partial_cmp(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> core::option::Option +pub fn bitcoin_internals::array_vec::ArrayVec::as_mut_slice(&mut self) -> &mut [T] +pub fn bitcoin_internals::array_vec::ArrayVec::clone(&self) -> Self +pub fn bitcoin_internals::array_vec::ArrayVec::cmp(&self, other: &Self) -> core::cmp::Ordering +pub fn bitcoin_internals::array_vec::ArrayVec::default() -> Self +pub fn bitcoin_internals::array_vec::ArrayVec::deref(&self) -> &Self::Target +pub fn bitcoin_internals::array_vec::ArrayVec::deref_mut(&mut self) -> &mut Self::Target +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &[T; LEN]) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &[T]) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::extend_from_slice(&mut self, slice: &[T]) +pub fn bitcoin_internals::array_vec::ArrayVec::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::array_vec::ArrayVec::hash(&self, state: &mut H) +pub fn bitcoin_internals::array_vec::ArrayVec::pop(&mut self) -> core::option::Option +pub fn bitcoin_internals::array_vec::ArrayVec::push(&mut self, element: T) +pub fn bitcoin_internals::compact_size::decode_unchecked(slice: &mut &[u8]) -> u64 +pub fn bitcoin_internals::compact_size::encode(value: impl bitcoin_internals::ToU64) -> bitcoin_internals::array_vec::ArrayVec +pub fn bitcoin_internals::compact_size::encoded_size(value: impl bitcoin_internals::ToU64) -> usize +pub fn bitcoin_internals::error::input_string::CannotParse<'_, T>::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::error::input_string::InputString::clone(&self) -> bitcoin_internals::error::input_string::InputString +pub fn bitcoin_internals::error::input_string::InputString::cmp(&self, other: &bitcoin_internals::error::input_string::InputString) -> core::cmp::Ordering +pub fn bitcoin_internals::error::input_string::InputString::display_cannot_parse<'a, T>(&'a self, what: &'a T) -> bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::fmt::Display + ?core::marker::Sized +pub fn bitcoin_internals::error::input_string::InputString::eq(&self, other: &bitcoin_internals::error::input_string::InputString) -> bool +pub fn bitcoin_internals::error::input_string::InputString::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::error::input_string::InputString::from(input: &str) -> Self +pub fn bitcoin_internals::error::input_string::InputString::from(input: alloc::borrow::Cow<'_, str>) -> Self +pub fn bitcoin_internals::error::input_string::InputString::from(input: alloc::boxed::Box) -> Self +pub fn bitcoin_internals::error::input_string::InputString::from(input: alloc::string::String) -> Self +pub fn bitcoin_internals::error::input_string::InputString::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_internals::error::input_string::InputString::partial_cmp(&self, other: &bitcoin_internals::error::input_string::InputString) -> core::option::Option +pub fn bitcoin_internals::error::input_string::InputString::unknown_variant(&self, what: &T, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result where T: core::fmt::Display + ?core::marker::Sized +pub fn bitcoin_internals::script::EarlyEndOfScriptError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::script::PushDataLenLen::clone(&self) -> bitcoin_internals::script::PushDataLenLen +pub fn bitcoin_internals::script::PushDataLenLen::cmp(&self, other: &bitcoin_internals::script::PushDataLenLen) -> core::cmp::Ordering +pub fn bitcoin_internals::script::PushDataLenLen::eq(&self, other: &bitcoin_internals::script::PushDataLenLen) -> bool +pub fn bitcoin_internals::script::PushDataLenLen::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::script::PushDataLenLen::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_internals::script::PushDataLenLen::partial_cmp(&self, other: &bitcoin_internals::script::PushDataLenLen) -> core::option::Option +pub fn bitcoin_internals::script::read_push_data_len(data: &mut core::slice::iter::Iter<'_, u8>, size: bitcoin_internals::script::PushDataLenLen) -> core::result::Result +pub fn bitcoin_internals::serde::IntoDeError::into_de_error(self, expected: core::option::Option<&dyn serde::de::Expected>) -> E +pub fn bitcoin_internals::serde::IntoDeError::try_into_de_error(self, expected: core::option::Option<&dyn serde::de::Expected>) -> core::result::Result where E: serde::de::Error +pub fn bitcoin_internals::serde::SerializeBytesAsHex<'_>::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_internals::slice::SliceExt::bitcoin_as_chunks(&self) -> (&[[Self::Item; N]], &[Self::Item]) +pub fn bitcoin_internals::slice::SliceExt::bitcoin_as_chunks_mut(&mut self) -> (&mut [[Self::Item; N]], &mut [Self::Item]) +pub fn bitcoin_internals::slice::SliceExt::get_array(&self, offset: usize) -> core::option::Option<&[Self::Item; ARRAY_LEN]> +pub fn bitcoin_internals::slice::SliceExt::split_first_chunk(&self) -> core::option::Option<(&[Self::Item; ARRAY_LEN], &[Self::Item])> +pub fn bitcoin_internals::slice::SliceExt::split_last_chunk(&self) -> core::option::Option<(&[Self::Item], &[Self::Item; ARRAY_LEN])> +pub fn bitcoin_internals::wrap_debug::WrapDebug::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn core::convert::Infallible::into_de_error(self, _expected: core::option::Option<&dyn serde::de::Expected>) -> E +pub fn core::num::error::ParseIntError::into_de_error(self, expected: core::option::Option<&dyn serde::de::Expected>) -> E +pub fn core::num::error::ParseIntError::try_into_de_error(self, expected: core::option::Option<&dyn serde::de::Expected>) -> core::result::Result where E: serde::de::Error +pub fn u16::to_u64(self) -> u64 +pub fn u32::to_u64(self) -> u64 +pub fn u64::to_u64(self) -> u64 +pub fn u8::to_u64(self) -> u64 +pub fn usize::to_u64(self) -> u64 +pub macro bitcoin_internals::concat_bytes_to_arr! +pub macro bitcoin_internals::cond_const! +pub macro bitcoin_internals::const_assert! +pub macro bitcoin_internals::const_tools::concat_bytes_to_arr! +pub macro bitcoin_internals::const_tools::cond_const! +pub macro bitcoin_internals::const_tools::copy_byte_array_from_slice! +pub macro bitcoin_internals::copy_byte_array_from_slice! +pub macro bitcoin_internals::impl_array_newtype! +pub macro bitcoin_internals::impl_parse! +pub macro bitcoin_internals::impl_parse_and_serde! +pub macro bitcoin_internals::impl_to_hex_from_lower_hex! +pub macro bitcoin_internals::parse_error_type! +pub macro bitcoin_internals::rust_version! +pub macro bitcoin_internals::serde_round_trip! +pub macro bitcoin_internals::serde_string_deserialize_impl! +pub macro bitcoin_internals::serde_string_impl! +pub macro bitcoin_internals::serde_string_serialize_impl! +pub macro bitcoin_internals::serde_struct_human_string_impl! +pub macro bitcoin_internals::transparent_newtype! +pub macro bitcoin_internals::write_err! +pub mod bitcoin_internals +pub mod bitcoin_internals::array +pub mod bitcoin_internals::array_vec +pub mod bitcoin_internals::compact_size +pub mod bitcoin_internals::const_casts +pub mod bitcoin_internals::const_tools +pub mod bitcoin_internals::error +pub mod bitcoin_internals::error::input_string +pub mod bitcoin_internals::macros +pub mod bitcoin_internals::script +pub mod bitcoin_internals::serde +pub mod bitcoin_internals::slice +pub mod bitcoin_internals::wrap_debug +pub struct bitcoin_internals::array_vec::ArrayVec +pub struct bitcoin_internals::error::InputString(_) +pub struct bitcoin_internals::error::input_string::CannotParse<'a, T: core::fmt::Display + ?core::marker::Sized> +pub struct bitcoin_internals::error::input_string::InputString(_) +pub struct bitcoin_internals::script::EarlyEndOfScriptError +pub struct bitcoin_internals::serde::SerializeBytesAsHex<'a>(pub &'a [u8]) +pub struct bitcoin_internals::wrap_debug::WrapDebug) -> core::fmt::Result>(pub F) +pub trait bitcoin_internals::ToU64 +pub trait bitcoin_internals::array::ArrayExt +pub trait bitcoin_internals::serde::IntoDeError: core::marker::Sized +pub trait bitcoin_internals::slice::SliceExt +pub type [T; N]::Item = T +pub type [T]::Item = T +pub type bitcoin_internals::array::ArrayExt::Item +pub type bitcoin_internals::array_vec::ArrayVec::Target = [T] +pub type bitcoin_internals::slice::SliceExt::Item diff --git a/api/internals/alloc-only.txt b/api/internals/alloc-only.txt new file mode 100644 index 0000000000..11461afd2b --- /dev/null +++ b/api/internals/alloc-only.txt @@ -0,0 +1,205 @@ +impl bitcoin_internals::ToU64 for u16 +impl bitcoin_internals::ToU64 for u32 +impl bitcoin_internals::ToU64 for u64 +impl bitcoin_internals::ToU64 for u8 +impl bitcoin_internals::ToU64 for usize +impl bitcoin_internals::error::input_string::InputString +impl core::clone::Clone for bitcoin_internals::error::input_string::InputString +impl core::clone::Clone for bitcoin_internals::script::PushDataLenLen +impl core::cmp::Eq for bitcoin_internals::error::input_string::InputString +impl core::cmp::Eq for bitcoin_internals::script::PushDataLenLen +impl core::cmp::Ord for bitcoin_internals::error::input_string::InputString +impl core::cmp::Ord for bitcoin_internals::script::PushDataLenLen +impl core::cmp::PartialEq for bitcoin_internals::error::input_string::InputString +impl core::cmp::PartialEq for bitcoin_internals::script::PushDataLenLen +impl core::cmp::PartialOrd for bitcoin_internals::error::input_string::InputString +impl core::cmp::PartialOrd for bitcoin_internals::script::PushDataLenLen +impl core::convert::From<&str> for bitcoin_internals::error::input_string::InputString +impl core::convert::From> for bitcoin_internals::error::input_string::InputString +impl core::convert::From> for bitcoin_internals::error::input_string::InputString +impl core::convert::From for bitcoin_internals::error::input_string::InputString +impl core::fmt::Debug for bitcoin_internals::error::input_string::InputString +impl core::fmt::Debug for bitcoin_internals::script::EarlyEndOfScriptError +impl core::fmt::Debug for bitcoin_internals::script::PushDataLenLen +impl core::hash::Hash for bitcoin_internals::error::input_string::InputString +impl core::hash::Hash for bitcoin_internals::script::PushDataLenLen +impl core::marker::Copy for bitcoin_internals::script::PushDataLenLen +impl core::marker::Freeze for bitcoin_internals::error::input_string::InputString +impl core::marker::Freeze for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Freeze for bitcoin_internals::script::PushDataLenLen +impl core::marker::Send for bitcoin_internals::error::input_string::InputString +impl core::marker::Send for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Send for bitcoin_internals::script::PushDataLenLen +impl core::marker::StructuralPartialEq for bitcoin_internals::error::input_string::InputString +impl core::marker::StructuralPartialEq for bitcoin_internals::script::PushDataLenLen +impl core::marker::Sync for bitcoin_internals::error::input_string::InputString +impl core::marker::Sync for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Sync for bitcoin_internals::script::PushDataLenLen +impl core::marker::Unpin for bitcoin_internals::error::input_string::InputString +impl core::marker::Unpin for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Unpin for bitcoin_internals::script::PushDataLenLen +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::error::input_string::InputString +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::script::EarlyEndOfScriptError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::script::PushDataLenLen +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::error::input_string::InputString +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::script::EarlyEndOfScriptError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::script::PushDataLenLen +impl<'a, T> core::marker::Freeze for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: ?core::marker::Sized +impl<'a, T> core::marker::Send for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::marker::Sync + ?core::marker::Sized +impl<'a, T> core::marker::Sync for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::marker::Sync + ?core::marker::Sized +impl<'a, T> core::marker::Unpin for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: ?core::marker::Sized +impl<'a, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::panic::unwind_safe::RefUnwindSafe + ?core::marker::Sized +impl<'a, T> core::panic::unwind_safe::UnwindSafe for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::panic::unwind_safe::RefUnwindSafe + ?core::marker::Sized +impl) -> core::fmt::Result> core::fmt::Debug for bitcoin_internals::wrap_debug::WrapDebug +impl core::marker::Freeze for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Freeze +impl core::marker::Send for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Send +impl core::marker::Sync for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Sync +impl core::marker::Unpin for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::wrap_debug::WrapDebug where F: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::wrap_debug::WrapDebug where F: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Freeze +impl core::marker::Send for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Send +impl core::marker::Sync for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::array_vec::ArrayVec where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::array_vec::ArrayVec where T: core::panic::unwind_safe::UnwindSafe +impl core::fmt::Display for bitcoin_internals::error::input_string::CannotParse<'_, T> +impl core::cmp::Eq for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::Ord for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq<[T; LEN]> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for [T; LEN] +impl core::cmp::PartialEq<[T]> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for [T] +impl core::cmp::PartialOrd> for bitcoin_internals::array_vec::ArrayVec +impl core::fmt::Debug for bitcoin_internals::array_vec::ArrayVec +impl core::hash::Hash for bitcoin_internals::array_vec::ArrayVec +impl core::marker::Copy for bitcoin_internals::array_vec::ArrayVec +impl bitcoin_internals::array_vec::ArrayVec +impl core::clone::Clone for bitcoin_internals::array_vec::ArrayVec +impl core::default::Default for bitcoin_internals::array_vec::ArrayVec +impl core::ops::deref::Deref for bitcoin_internals::array_vec::ArrayVec +impl core::ops::deref::DerefMut for bitcoin_internals::array_vec::ArrayVec +impl bitcoin_internals::slice::SliceExt for [T] +impl bitcoin_internals::array::ArrayExt for [T; N] +pub bitcoin_internals::script::PushDataLenLen::Four = 4 +pub bitcoin_internals::script::PushDataLenLen::One = 1 +pub bitcoin_internals::script::PushDataLenLen::Two = 2 +pub const bitcoin_internals::compact_size::MAX_ENCODABLE_VALUE: u64 +pub const bitcoin_internals::compact_size::MAX_ENCODING_SIZE: usize +pub const fn bitcoin_internals::array_vec::ArrayVec::as_slice(&self) -> &[T] +pub const fn bitcoin_internals::array_vec::ArrayVec::from_slice(slice: &[T]) -> Self +pub const fn bitcoin_internals::array_vec::ArrayVec::new() -> Self +pub const fn bitcoin_internals::compact_size::encoded_size_const(value: u64) -> usize +pub const fn bitcoin_internals::const_casts::i16_to_i64(value: i16) -> i64 +pub const fn bitcoin_internals::const_casts::u16_to_u32(value: u16) -> u32 +pub const fn bitcoin_internals::const_casts::u16_to_u64(value: u16) -> u64 +pub const fn bitcoin_internals::const_casts::u32_to_u64(value: u32) -> u64 +pub enum bitcoin_internals::script::PushDataLenLen +pub fn [T; LEN]::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn [T; N]::split_array(&self) -> (&[Self::Item; LEFT], &[Self::Item; RIGHT]) +pub fn [T; N]::sub_array(&self) -> &[Self::Item; LEN] +pub fn [T]::bitcoin_as_chunks(&self) -> (&[[Self::Item; N]], &[Self::Item]) +pub fn [T]::bitcoin_as_chunks_mut(&mut self) -> (&mut [[Self::Item; N]], &mut [Self::Item]) +pub fn [T]::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn [T]::get_array(&self, offset: usize) -> core::option::Option<&[Self::Item; ARRAY_LEN]> +pub fn [T]::split_first_chunk(&self) -> core::option::Option<(&[Self::Item; ARRAY_LEN], &[Self::Item])> +pub fn [T]::split_last_chunk(&self) -> core::option::Option<(&[Self::Item], &[Self::Item; ARRAY_LEN])> +pub fn bitcoin_internals::ToU64::to_u64(self) -> u64 +pub fn bitcoin_internals::array::ArrayExt::first(&self) -> &Self::Item +pub fn bitcoin_internals::array::ArrayExt::get_static(&self) -> &Self::Item +pub fn bitcoin_internals::array::ArrayExt::split_array(&self) -> (&[Self::Item; LEFT], &[Self::Item; RIGHT]) +pub fn bitcoin_internals::array::ArrayExt::split_first(&self) -> (&Self::Item, &[Self::Item; RIGHT]) +pub fn bitcoin_internals::array::ArrayExt::split_last(&self) -> (&Self::Item, &[Self::Item; LEFT]) +pub fn bitcoin_internals::array::ArrayExt::sub_array(&self) -> &[Self::Item; LEN] +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::partial_cmp(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> core::option::Option +pub fn bitcoin_internals::array_vec::ArrayVec::as_mut_slice(&mut self) -> &mut [T] +pub fn bitcoin_internals::array_vec::ArrayVec::clone(&self) -> Self +pub fn bitcoin_internals::array_vec::ArrayVec::cmp(&self, other: &Self) -> core::cmp::Ordering +pub fn bitcoin_internals::array_vec::ArrayVec::default() -> Self +pub fn bitcoin_internals::array_vec::ArrayVec::deref(&self) -> &Self::Target +pub fn bitcoin_internals::array_vec::ArrayVec::deref_mut(&mut self) -> &mut Self::Target +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &[T; LEN]) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &[T]) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::extend_from_slice(&mut self, slice: &[T]) +pub fn bitcoin_internals::array_vec::ArrayVec::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::array_vec::ArrayVec::hash(&self, state: &mut H) +pub fn bitcoin_internals::array_vec::ArrayVec::pop(&mut self) -> core::option::Option +pub fn bitcoin_internals::array_vec::ArrayVec::push(&mut self, element: T) +pub fn bitcoin_internals::compact_size::decode_unchecked(slice: &mut &[u8]) -> u64 +pub fn bitcoin_internals::compact_size::encode(value: impl bitcoin_internals::ToU64) -> bitcoin_internals::array_vec::ArrayVec +pub fn bitcoin_internals::compact_size::encoded_size(value: impl bitcoin_internals::ToU64) -> usize +pub fn bitcoin_internals::error::input_string::CannotParse<'_, T>::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::error::input_string::InputString::clone(&self) -> bitcoin_internals::error::input_string::InputString +pub fn bitcoin_internals::error::input_string::InputString::cmp(&self, other: &bitcoin_internals::error::input_string::InputString) -> core::cmp::Ordering +pub fn bitcoin_internals::error::input_string::InputString::display_cannot_parse<'a, T>(&'a self, what: &'a T) -> bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::fmt::Display + ?core::marker::Sized +pub fn bitcoin_internals::error::input_string::InputString::eq(&self, other: &bitcoin_internals::error::input_string::InputString) -> bool +pub fn bitcoin_internals::error::input_string::InputString::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::error::input_string::InputString::from(input: &str) -> Self +pub fn bitcoin_internals::error::input_string::InputString::from(input: alloc::borrow::Cow<'_, str>) -> Self +pub fn bitcoin_internals::error::input_string::InputString::from(input: alloc::boxed::Box) -> Self +pub fn bitcoin_internals::error::input_string::InputString::from(input: alloc::string::String) -> Self +pub fn bitcoin_internals::error::input_string::InputString::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_internals::error::input_string::InputString::partial_cmp(&self, other: &bitcoin_internals::error::input_string::InputString) -> core::option::Option +pub fn bitcoin_internals::error::input_string::InputString::unknown_variant(&self, what: &T, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result where T: core::fmt::Display + ?core::marker::Sized +pub fn bitcoin_internals::script::EarlyEndOfScriptError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::script::PushDataLenLen::clone(&self) -> bitcoin_internals::script::PushDataLenLen +pub fn bitcoin_internals::script::PushDataLenLen::cmp(&self, other: &bitcoin_internals::script::PushDataLenLen) -> core::cmp::Ordering +pub fn bitcoin_internals::script::PushDataLenLen::eq(&self, other: &bitcoin_internals::script::PushDataLenLen) -> bool +pub fn bitcoin_internals::script::PushDataLenLen::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::script::PushDataLenLen::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_internals::script::PushDataLenLen::partial_cmp(&self, other: &bitcoin_internals::script::PushDataLenLen) -> core::option::Option +pub fn bitcoin_internals::script::read_push_data_len(data: &mut core::slice::iter::Iter<'_, u8>, size: bitcoin_internals::script::PushDataLenLen) -> core::result::Result +pub fn bitcoin_internals::slice::SliceExt::bitcoin_as_chunks(&self) -> (&[[Self::Item; N]], &[Self::Item]) +pub fn bitcoin_internals::slice::SliceExt::bitcoin_as_chunks_mut(&mut self) -> (&mut [[Self::Item; N]], &mut [Self::Item]) +pub fn bitcoin_internals::slice::SliceExt::get_array(&self, offset: usize) -> core::option::Option<&[Self::Item; ARRAY_LEN]> +pub fn bitcoin_internals::slice::SliceExt::split_first_chunk(&self) -> core::option::Option<(&[Self::Item; ARRAY_LEN], &[Self::Item])> +pub fn bitcoin_internals::slice::SliceExt::split_last_chunk(&self) -> core::option::Option<(&[Self::Item], &[Self::Item; ARRAY_LEN])> +pub fn bitcoin_internals::wrap_debug::WrapDebug::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn u16::to_u64(self) -> u64 +pub fn u32::to_u64(self) -> u64 +pub fn u64::to_u64(self) -> u64 +pub fn u8::to_u64(self) -> u64 +pub fn usize::to_u64(self) -> u64 +pub macro bitcoin_internals::concat_bytes_to_arr! +pub macro bitcoin_internals::cond_const! +pub macro bitcoin_internals::const_assert! +pub macro bitcoin_internals::const_tools::concat_bytes_to_arr! +pub macro bitcoin_internals::const_tools::cond_const! +pub macro bitcoin_internals::const_tools::copy_byte_array_from_slice! +pub macro bitcoin_internals::copy_byte_array_from_slice! +pub macro bitcoin_internals::impl_array_newtype! +pub macro bitcoin_internals::impl_parse! +pub macro bitcoin_internals::impl_parse_and_serde! +pub macro bitcoin_internals::impl_to_hex_from_lower_hex! +pub macro bitcoin_internals::parse_error_type! +pub macro bitcoin_internals::rust_version! +pub macro bitcoin_internals::transparent_newtype! +pub macro bitcoin_internals::write_err! +pub mod bitcoin_internals +pub mod bitcoin_internals::array +pub mod bitcoin_internals::array_vec +pub mod bitcoin_internals::compact_size +pub mod bitcoin_internals::const_casts +pub mod bitcoin_internals::const_tools +pub mod bitcoin_internals::error +pub mod bitcoin_internals::error::input_string +pub mod bitcoin_internals::macros +pub mod bitcoin_internals::script +pub mod bitcoin_internals::slice +pub mod bitcoin_internals::wrap_debug +pub struct bitcoin_internals::array_vec::ArrayVec +pub struct bitcoin_internals::error::InputString(_) +pub struct bitcoin_internals::error::input_string::CannotParse<'a, T: core::fmt::Display + ?core::marker::Sized> +pub struct bitcoin_internals::error::input_string::InputString(_) +pub struct bitcoin_internals::script::EarlyEndOfScriptError +pub struct bitcoin_internals::wrap_debug::WrapDebug) -> core::fmt::Result>(pub F) +pub trait bitcoin_internals::ToU64 +pub trait bitcoin_internals::array::ArrayExt +pub trait bitcoin_internals::slice::SliceExt +pub type [T; N]::Item = T +pub type [T]::Item = T +pub type bitcoin_internals::array::ArrayExt::Item +pub type bitcoin_internals::array_vec::ArrayVec::Target = [T] +pub type bitcoin_internals::slice::SliceExt::Item diff --git a/api/internals/no-features.txt b/api/internals/no-features.txt new file mode 100644 index 0000000000..2e5175c096 --- /dev/null +++ b/api/internals/no-features.txt @@ -0,0 +1,199 @@ +impl bitcoin_internals::ToU64 for u16 +impl bitcoin_internals::ToU64 for u32 +impl bitcoin_internals::ToU64 for u64 +impl bitcoin_internals::ToU64 for u8 +impl bitcoin_internals::ToU64 for usize +impl bitcoin_internals::error::input_string::InputString +impl core::clone::Clone for bitcoin_internals::error::input_string::InputString +impl core::clone::Clone for bitcoin_internals::script::PushDataLenLen +impl core::cmp::Eq for bitcoin_internals::error::input_string::InputString +impl core::cmp::Eq for bitcoin_internals::script::PushDataLenLen +impl core::cmp::Ord for bitcoin_internals::error::input_string::InputString +impl core::cmp::Ord for bitcoin_internals::script::PushDataLenLen +impl core::cmp::PartialEq for bitcoin_internals::error::input_string::InputString +impl core::cmp::PartialEq for bitcoin_internals::script::PushDataLenLen +impl core::cmp::PartialOrd for bitcoin_internals::error::input_string::InputString +impl core::cmp::PartialOrd for bitcoin_internals::script::PushDataLenLen +impl core::convert::From<&str> for bitcoin_internals::error::input_string::InputString +impl core::fmt::Debug for bitcoin_internals::error::input_string::InputString +impl core::fmt::Debug for bitcoin_internals::script::EarlyEndOfScriptError +impl core::fmt::Debug for bitcoin_internals::script::PushDataLenLen +impl core::hash::Hash for bitcoin_internals::error::input_string::InputString +impl core::hash::Hash for bitcoin_internals::script::PushDataLenLen +impl core::marker::Copy for bitcoin_internals::script::PushDataLenLen +impl core::marker::Freeze for bitcoin_internals::error::input_string::InputString +impl core::marker::Freeze for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Freeze for bitcoin_internals::script::PushDataLenLen +impl core::marker::Send for bitcoin_internals::error::input_string::InputString +impl core::marker::Send for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Send for bitcoin_internals::script::PushDataLenLen +impl core::marker::StructuralPartialEq for bitcoin_internals::error::input_string::InputString +impl core::marker::StructuralPartialEq for bitcoin_internals::script::PushDataLenLen +impl core::marker::Sync for bitcoin_internals::error::input_string::InputString +impl core::marker::Sync for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Sync for bitcoin_internals::script::PushDataLenLen +impl core::marker::Unpin for bitcoin_internals::error::input_string::InputString +impl core::marker::Unpin for bitcoin_internals::script::EarlyEndOfScriptError +impl core::marker::Unpin for bitcoin_internals::script::PushDataLenLen +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::error::input_string::InputString +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::script::EarlyEndOfScriptError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::script::PushDataLenLen +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::error::input_string::InputString +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::script::EarlyEndOfScriptError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::script::PushDataLenLen +impl<'a, T> core::marker::Freeze for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: ?core::marker::Sized +impl<'a, T> core::marker::Send for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::marker::Sync + ?core::marker::Sized +impl<'a, T> core::marker::Sync for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::marker::Sync + ?core::marker::Sized +impl<'a, T> core::marker::Unpin for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: ?core::marker::Sized +impl<'a, T> core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::panic::unwind_safe::RefUnwindSafe + ?core::marker::Sized +impl<'a, T> core::panic::unwind_safe::UnwindSafe for bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::panic::unwind_safe::RefUnwindSafe + ?core::marker::Sized +impl) -> core::fmt::Result> core::fmt::Debug for bitcoin_internals::wrap_debug::WrapDebug +impl core::marker::Freeze for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Freeze +impl core::marker::Send for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Send +impl core::marker::Sync for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Sync +impl core::marker::Unpin for bitcoin_internals::wrap_debug::WrapDebug where F: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::wrap_debug::WrapDebug where F: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::wrap_debug::WrapDebug where F: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Freeze +impl core::marker::Send for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Send +impl core::marker::Sync for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_internals::array_vec::ArrayVec where T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_internals::array_vec::ArrayVec where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_internals::array_vec::ArrayVec where T: core::panic::unwind_safe::UnwindSafe +impl core::fmt::Display for bitcoin_internals::error::input_string::CannotParse<'_, T> +impl core::cmp::Eq for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::Ord for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq<[T; LEN]> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for [T; LEN] +impl core::cmp::PartialEq<[T]> for bitcoin_internals::array_vec::ArrayVec +impl core::cmp::PartialEq> for [T] +impl core::cmp::PartialOrd> for bitcoin_internals::array_vec::ArrayVec +impl core::fmt::Debug for bitcoin_internals::array_vec::ArrayVec +impl core::hash::Hash for bitcoin_internals::array_vec::ArrayVec +impl core::marker::Copy for bitcoin_internals::array_vec::ArrayVec +impl bitcoin_internals::array_vec::ArrayVec +impl core::clone::Clone for bitcoin_internals::array_vec::ArrayVec +impl core::default::Default for bitcoin_internals::array_vec::ArrayVec +impl core::ops::deref::Deref for bitcoin_internals::array_vec::ArrayVec +impl core::ops::deref::DerefMut for bitcoin_internals::array_vec::ArrayVec +impl bitcoin_internals::slice::SliceExt for [T] +impl bitcoin_internals::array::ArrayExt for [T; N] +pub bitcoin_internals::script::PushDataLenLen::Four = 4 +pub bitcoin_internals::script::PushDataLenLen::One = 1 +pub bitcoin_internals::script::PushDataLenLen::Two = 2 +pub const bitcoin_internals::compact_size::MAX_ENCODABLE_VALUE: u64 +pub const bitcoin_internals::compact_size::MAX_ENCODING_SIZE: usize +pub const fn bitcoin_internals::array_vec::ArrayVec::as_slice(&self) -> &[T] +pub const fn bitcoin_internals::array_vec::ArrayVec::from_slice(slice: &[T]) -> Self +pub const fn bitcoin_internals::array_vec::ArrayVec::new() -> Self +pub const fn bitcoin_internals::compact_size::encoded_size_const(value: u64) -> usize +pub const fn bitcoin_internals::const_casts::i16_to_i64(value: i16) -> i64 +pub const fn bitcoin_internals::const_casts::u16_to_u32(value: u16) -> u32 +pub const fn bitcoin_internals::const_casts::u16_to_u64(value: u16) -> u64 +pub const fn bitcoin_internals::const_casts::u32_to_u64(value: u32) -> u64 +pub enum bitcoin_internals::script::PushDataLenLen +pub fn [T; LEN]::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn [T; N]::split_array(&self) -> (&[Self::Item; LEFT], &[Self::Item; RIGHT]) +pub fn [T; N]::sub_array(&self) -> &[Self::Item; LEN] +pub fn [T]::bitcoin_as_chunks(&self) -> (&[[Self::Item; N]], &[Self::Item]) +pub fn [T]::bitcoin_as_chunks_mut(&mut self) -> (&mut [[Self::Item; N]], &mut [Self::Item]) +pub fn [T]::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn [T]::get_array(&self, offset: usize) -> core::option::Option<&[Self::Item; ARRAY_LEN]> +pub fn [T]::split_first_chunk(&self) -> core::option::Option<(&[Self::Item; ARRAY_LEN], &[Self::Item])> +pub fn [T]::split_last_chunk(&self) -> core::option::Option<(&[Self::Item], &[Self::Item; ARRAY_LEN])> +pub fn bitcoin_internals::ToU64::to_u64(self) -> u64 +pub fn bitcoin_internals::array::ArrayExt::first(&self) -> &Self::Item +pub fn bitcoin_internals::array::ArrayExt::get_static(&self) -> &Self::Item +pub fn bitcoin_internals::array::ArrayExt::split_array(&self) -> (&[Self::Item; LEFT], &[Self::Item; RIGHT]) +pub fn bitcoin_internals::array::ArrayExt::split_first(&self) -> (&Self::Item, &[Self::Item; RIGHT]) +pub fn bitcoin_internals::array::ArrayExt::split_last(&self) -> (&Self::Item, &[Self::Item; LEFT]) +pub fn bitcoin_internals::array::ArrayExt::sub_array(&self) -> &[Self::Item; LEN] +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::partial_cmp(&self, other: &bitcoin_internals::array_vec::ArrayVec) -> core::option::Option +pub fn bitcoin_internals::array_vec::ArrayVec::as_mut_slice(&mut self) -> &mut [T] +pub fn bitcoin_internals::array_vec::ArrayVec::clone(&self) -> Self +pub fn bitcoin_internals::array_vec::ArrayVec::cmp(&self, other: &Self) -> core::cmp::Ordering +pub fn bitcoin_internals::array_vec::ArrayVec::default() -> Self +pub fn bitcoin_internals::array_vec::ArrayVec::deref(&self) -> &Self::Target +pub fn bitcoin_internals::array_vec::ArrayVec::deref_mut(&mut self) -> &mut Self::Target +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &[T; LEN]) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::eq(&self, other: &[T]) -> bool +pub fn bitcoin_internals::array_vec::ArrayVec::extend_from_slice(&mut self, slice: &[T]) +pub fn bitcoin_internals::array_vec::ArrayVec::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::array_vec::ArrayVec::hash(&self, state: &mut H) +pub fn bitcoin_internals::array_vec::ArrayVec::pop(&mut self) -> core::option::Option +pub fn bitcoin_internals::array_vec::ArrayVec::push(&mut self, element: T) +pub fn bitcoin_internals::compact_size::decode_unchecked(slice: &mut &[u8]) -> u64 +pub fn bitcoin_internals::compact_size::encode(value: impl bitcoin_internals::ToU64) -> bitcoin_internals::array_vec::ArrayVec +pub fn bitcoin_internals::compact_size::encoded_size(value: impl bitcoin_internals::ToU64) -> usize +pub fn bitcoin_internals::error::input_string::CannotParse<'_, T>::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::error::input_string::InputString::clone(&self) -> bitcoin_internals::error::input_string::InputString +pub fn bitcoin_internals::error::input_string::InputString::cmp(&self, other: &bitcoin_internals::error::input_string::InputString) -> core::cmp::Ordering +pub fn bitcoin_internals::error::input_string::InputString::display_cannot_parse<'a, T>(&'a self, what: &'a T) -> bitcoin_internals::error::input_string::CannotParse<'a, T> where T: core::fmt::Display + ?core::marker::Sized +pub fn bitcoin_internals::error::input_string::InputString::eq(&self, other: &bitcoin_internals::error::input_string::InputString) -> bool +pub fn bitcoin_internals::error::input_string::InputString::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::error::input_string::InputString::from(input: &str) -> Self +pub fn bitcoin_internals::error::input_string::InputString::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_internals::error::input_string::InputString::partial_cmp(&self, other: &bitcoin_internals::error::input_string::InputString) -> core::option::Option +pub fn bitcoin_internals::error::input_string::InputString::unknown_variant(&self, what: &T, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result where T: core::fmt::Display + ?core::marker::Sized +pub fn bitcoin_internals::script::EarlyEndOfScriptError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::script::PushDataLenLen::clone(&self) -> bitcoin_internals::script::PushDataLenLen +pub fn bitcoin_internals::script::PushDataLenLen::cmp(&self, other: &bitcoin_internals::script::PushDataLenLen) -> core::cmp::Ordering +pub fn bitcoin_internals::script::PushDataLenLen::eq(&self, other: &bitcoin_internals::script::PushDataLenLen) -> bool +pub fn bitcoin_internals::script::PushDataLenLen::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_internals::script::PushDataLenLen::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_internals::script::PushDataLenLen::partial_cmp(&self, other: &bitcoin_internals::script::PushDataLenLen) -> core::option::Option +pub fn bitcoin_internals::script::read_push_data_len(data: &mut core::slice::iter::Iter<'_, u8>, size: bitcoin_internals::script::PushDataLenLen) -> core::result::Result +pub fn bitcoin_internals::slice::SliceExt::bitcoin_as_chunks(&self) -> (&[[Self::Item; N]], &[Self::Item]) +pub fn bitcoin_internals::slice::SliceExt::bitcoin_as_chunks_mut(&mut self) -> (&mut [[Self::Item; N]], &mut [Self::Item]) +pub fn bitcoin_internals::slice::SliceExt::get_array(&self, offset: usize) -> core::option::Option<&[Self::Item; ARRAY_LEN]> +pub fn bitcoin_internals::slice::SliceExt::split_first_chunk(&self) -> core::option::Option<(&[Self::Item; ARRAY_LEN], &[Self::Item])> +pub fn bitcoin_internals::slice::SliceExt::split_last_chunk(&self) -> core::option::Option<(&[Self::Item], &[Self::Item; ARRAY_LEN])> +pub fn bitcoin_internals::wrap_debug::WrapDebug::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn u16::to_u64(self) -> u64 +pub fn u32::to_u64(self) -> u64 +pub fn u64::to_u64(self) -> u64 +pub fn u8::to_u64(self) -> u64 +pub fn usize::to_u64(self) -> u64 +pub macro bitcoin_internals::concat_bytes_to_arr! +pub macro bitcoin_internals::cond_const! +pub macro bitcoin_internals::const_assert! +pub macro bitcoin_internals::const_tools::concat_bytes_to_arr! +pub macro bitcoin_internals::const_tools::cond_const! +pub macro bitcoin_internals::const_tools::copy_byte_array_from_slice! +pub macro bitcoin_internals::copy_byte_array_from_slice! +pub macro bitcoin_internals::impl_array_newtype! +pub macro bitcoin_internals::impl_parse! +pub macro bitcoin_internals::impl_parse_and_serde! +pub macro bitcoin_internals::impl_to_hex_from_lower_hex! +pub macro bitcoin_internals::parse_error_type! +pub macro bitcoin_internals::rust_version! +pub macro bitcoin_internals::transparent_newtype! +pub macro bitcoin_internals::write_err! +pub mod bitcoin_internals +pub mod bitcoin_internals::array +pub mod bitcoin_internals::array_vec +pub mod bitcoin_internals::compact_size +pub mod bitcoin_internals::const_casts +pub mod bitcoin_internals::const_tools +pub mod bitcoin_internals::error +pub mod bitcoin_internals::error::input_string +pub mod bitcoin_internals::macros +pub mod bitcoin_internals::script +pub mod bitcoin_internals::slice +pub mod bitcoin_internals::wrap_debug +pub struct bitcoin_internals::array_vec::ArrayVec +pub struct bitcoin_internals::error::InputString(_) +pub struct bitcoin_internals::error::input_string::CannotParse<'a, T: core::fmt::Display + ?core::marker::Sized> +pub struct bitcoin_internals::error::input_string::InputString(_) +pub struct bitcoin_internals::script::EarlyEndOfScriptError +pub struct bitcoin_internals::wrap_debug::WrapDebug) -> core::fmt::Result>(pub F) +pub trait bitcoin_internals::ToU64 +pub trait bitcoin_internals::array::ArrayExt +pub trait bitcoin_internals::slice::SliceExt +pub type [T; N]::Item = T +pub type [T]::Item = T +pub type bitcoin_internals::array::ArrayExt::Item +pub type bitcoin_internals::array_vec::ArrayVec::Target = [T] +pub type bitcoin_internals::slice::SliceExt::Item diff --git a/api/primitives/all-features.txt b/api/primitives/all-features.txt new file mode 100644 index 0000000000..bd3927650a --- /dev/null +++ b/api/primitives/all-features.txt @@ -0,0 +1,2116 @@ +#[non_exhaustive] pub enum bitcoin_primitives::block::HeaderDecoderError +#[non_exhaustive] pub enum bitcoin_primitives::block::InvalidBlockError +#[non_exhaustive] pub enum bitcoin_primitives::transaction::ParseOutPointError +#[repr(transparent)] pub struct bitcoin_primitives::script::Script(_, _) +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::BlockHash +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::TxMerkleNode +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::WitnessMerkleNode +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Block +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Header +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Version +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::pow::CompactTarget +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::OutPoint +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::Transaction +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::TxIn +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::TxOut +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::Version +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::witness::Witness +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::BlockDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::BlockHashDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::HeaderDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::VersionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::pow::CompactTargetDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::OutPointDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TransactionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxInDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxOutDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::VersionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::witness::WitnessDecoder +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::BlockHash +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::TxMerkleNode +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::WitnessMerkleNode +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Block +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Header +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Version +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::pow::CompactTarget +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::OutPoint +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::Transaction +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::TxIn +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::TxOut +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::Version +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::witness::Witness +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::BlockHashEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::HeaderEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::VersionEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::pow::CompactTargetEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::VersionEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::WitnessesEncoder<'_> +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::witness::WitnessEncoder<'_> +impl bitcoin_primitives::BlockHash +impl bitcoin_primitives::Ntxid +impl bitcoin_primitives::TxMerkleNode +impl bitcoin_primitives::Txid +impl bitcoin_primitives::WitnessCommitment +impl bitcoin_primitives::WitnessMerkleNode +impl bitcoin_primitives::Wtxid +impl bitcoin_primitives::block::Block +impl bitcoin_primitives::block::Block +impl bitcoin_primitives::block::BlockHashDecoder +impl bitcoin_primitives::block::Header +impl bitcoin_primitives::block::Validation for bitcoin_primitives::block::Checked +impl bitcoin_primitives::block::Validation for bitcoin_primitives::block::Unchecked +impl bitcoin_primitives::block::Version +impl bitcoin_primitives::block::VersionDecoder +impl bitcoin_primitives::pow::CompactTarget +impl bitcoin_primitives::pow::CompactTargetDecoder +impl bitcoin_primitives::script::RedeemScriptSizeError +impl bitcoin_primitives::script::ScriptHash +impl bitcoin_primitives::script::ScriptHashableTag for bitcoin_primitives::script::RedeemScriptTag +impl bitcoin_primitives::script::ScriptHashableTag for bitcoin_primitives::script::ScriptPubKeyTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::RedeemScriptTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::ScriptPubKeyTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::ScriptSigTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::TapScriptTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::WitnessScriptTag +impl bitcoin_primitives::script::WScriptHash +impl bitcoin_primitives::script::WitnessScriptSizeError +impl bitcoin_primitives::transaction::OutPoint +impl bitcoin_primitives::transaction::OutPointDecoder +impl bitcoin_primitives::transaction::Transaction +impl bitcoin_primitives::transaction::TransactionDecoder +impl bitcoin_primitives::transaction::TxIn +impl bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl bitcoin_primitives::transaction::Version +impl bitcoin_primitives::transaction::VersionDecoder +impl bitcoin_primitives::witness::Witness +impl bitcoin_primitives::witness::WitnessDecoder +impl core::borrow::Borrow<[u8; 20]> for bitcoin_primitives::script::ScriptHash +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::BlockHash +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Ntxid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::TxMerkleNode +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Txid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::WitnessCommitment +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::WitnessMerkleNode +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Wtxid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::script::WScriptHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::BlockHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Ntxid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::TxMerkleNode +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Txid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::WitnessCommitment +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::WitnessMerkleNode +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Wtxid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::script::ScriptHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::script::WScriptHash +impl core::clone::Clone for bitcoin_primitives::BlockHash +impl core::clone::Clone for bitcoin_primitives::Ntxid +impl core::clone::Clone for bitcoin_primitives::TxMerkleNode +impl core::clone::Clone for bitcoin_primitives::Txid +impl core::clone::Clone for bitcoin_primitives::WitnessCommitment +impl core::clone::Clone for bitcoin_primitives::WitnessMerkleNode +impl core::clone::Clone for bitcoin_primitives::Wtxid +impl core::clone::Clone for bitcoin_primitives::block::BlockDecoderError +impl core::clone::Clone for bitcoin_primitives::block::BlockHashDecoderError +impl core::clone::Clone for bitcoin_primitives::block::Checked +impl core::clone::Clone for bitcoin_primitives::block::Header +impl core::clone::Clone for bitcoin_primitives::block::HeaderDecoderError +impl core::clone::Clone for bitcoin_primitives::block::InvalidBlockError +impl core::clone::Clone for bitcoin_primitives::block::Unchecked +impl core::clone::Clone for bitcoin_primitives::block::Version +impl core::clone::Clone for bitcoin_primitives::block::VersionDecoderError +impl core::clone::Clone for bitcoin_primitives::pow::CompactTarget +impl core::clone::Clone for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::clone::Clone for bitcoin_primitives::script::RedeemScriptSizeError +impl core::clone::Clone for bitcoin_primitives::script::RedeemScriptTag +impl core::clone::Clone for bitcoin_primitives::script::ScriptBufDecoderError +impl core::clone::Clone for bitcoin_primitives::script::ScriptHash +impl core::clone::Clone for bitcoin_primitives::script::ScriptPubKeyTag +impl core::clone::Clone for bitcoin_primitives::script::ScriptSigTag +impl core::clone::Clone for bitcoin_primitives::script::TapScriptTag +impl core::clone::Clone for bitcoin_primitives::script::WScriptHash +impl core::clone::Clone for bitcoin_primitives::script::WitnessScriptSizeError +impl core::clone::Clone for bitcoin_primitives::script::WitnessScriptTag +impl core::clone::Clone for bitcoin_primitives::transaction::OutPoint +impl core::clone::Clone for bitcoin_primitives::transaction::OutPointDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::ParseOutPointError +impl core::clone::Clone for bitcoin_primitives::transaction::Transaction +impl core::clone::Clone for bitcoin_primitives::transaction::TransactionDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxIn +impl core::clone::Clone for bitcoin_primitives::transaction::TxInDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxOut +impl core::clone::Clone for bitcoin_primitives::transaction::TxOutDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::Version +impl core::clone::Clone for bitcoin_primitives::transaction::VersionDecoderError +impl core::clone::Clone for bitcoin_primitives::witness::UnexpectedEofError +impl core::clone::Clone for bitcoin_primitives::witness::Witness +impl core::clone::Clone for bitcoin_primitives::witness::WitnessDecoderError +impl core::cmp::Eq for bitcoin_primitives::BlockHash +impl core::cmp::Eq for bitcoin_primitives::Ntxid +impl core::cmp::Eq for bitcoin_primitives::TxMerkleNode +impl core::cmp::Eq for bitcoin_primitives::Txid +impl core::cmp::Eq for bitcoin_primitives::WitnessCommitment +impl core::cmp::Eq for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::Eq for bitcoin_primitives::Wtxid +impl core::cmp::Eq for bitcoin_primitives::block::BlockDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::BlockHashDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::Checked +impl core::cmp::Eq for bitcoin_primitives::block::Header +impl core::cmp::Eq for bitcoin_primitives::block::HeaderDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::InvalidBlockError +impl core::cmp::Eq for bitcoin_primitives::block::Unchecked +impl core::cmp::Eq for bitcoin_primitives::block::Version +impl core::cmp::Eq for bitcoin_primitives::block::VersionDecoderError +impl core::cmp::Eq for bitcoin_primitives::pow::CompactTarget +impl core::cmp::Eq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::cmp::Eq for bitcoin_primitives::script::RedeemScriptSizeError +impl core::cmp::Eq for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::Eq for bitcoin_primitives::script::ScriptBufDecoderError +impl core::cmp::Eq for bitcoin_primitives::script::ScriptHash +impl core::cmp::Eq for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::Eq for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::Eq for bitcoin_primitives::script::TapScriptTag +impl core::cmp::Eq for bitcoin_primitives::script::WScriptHash +impl core::cmp::Eq for bitcoin_primitives::script::WitnessScriptSizeError +impl core::cmp::Eq for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::Eq for bitcoin_primitives::transaction::OutPoint +impl core::cmp::Eq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::ParseOutPointError +impl core::cmp::Eq for bitcoin_primitives::transaction::Transaction +impl core::cmp::Eq for bitcoin_primitives::transaction::TransactionDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxIn +impl core::cmp::Eq for bitcoin_primitives::transaction::TxInDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxOut +impl core::cmp::Eq for bitcoin_primitives::transaction::TxOutDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::Version +impl core::cmp::Eq for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::Eq for bitcoin_primitives::witness::UnexpectedEofError +impl core::cmp::Eq for bitcoin_primitives::witness::Witness +impl core::cmp::Eq for bitcoin_primitives::witness::WitnessDecoderError +impl core::cmp::Ord for bitcoin_primitives::BlockHash +impl core::cmp::Ord for bitcoin_primitives::Ntxid +impl core::cmp::Ord for bitcoin_primitives::TxMerkleNode +impl core::cmp::Ord for bitcoin_primitives::Txid +impl core::cmp::Ord for bitcoin_primitives::WitnessCommitment +impl core::cmp::Ord for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::Ord for bitcoin_primitives::Wtxid +impl core::cmp::Ord for bitcoin_primitives::block::Checked +impl core::cmp::Ord for bitcoin_primitives::block::Header +impl core::cmp::Ord for bitcoin_primitives::block::Unchecked +impl core::cmp::Ord for bitcoin_primitives::block::Version +impl core::cmp::Ord for bitcoin_primitives::pow::CompactTarget +impl core::cmp::Ord for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::Ord for bitcoin_primitives::script::ScriptHash +impl core::cmp::Ord for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::Ord for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::Ord for bitcoin_primitives::script::TapScriptTag +impl core::cmp::Ord for bitcoin_primitives::script::WScriptHash +impl core::cmp::Ord for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::Ord for bitcoin_primitives::transaction::OutPoint +impl core::cmp::Ord for bitcoin_primitives::transaction::Transaction +impl core::cmp::Ord for bitcoin_primitives::transaction::TxIn +impl core::cmp::Ord for bitcoin_primitives::transaction::TxOut +impl core::cmp::Ord for bitcoin_primitives::transaction::Version +impl core::cmp::Ord for bitcoin_primitives::witness::Witness +impl core::cmp::PartialEq for bitcoin_primitives::BlockHash +impl core::cmp::PartialEq for bitcoin_primitives::Ntxid +impl core::cmp::PartialEq for bitcoin_primitives::TxMerkleNode +impl core::cmp::PartialEq for bitcoin_primitives::Txid +impl core::cmp::PartialEq for bitcoin_primitives::WitnessCommitment +impl core::cmp::PartialEq for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::PartialEq for bitcoin_primitives::Wtxid +impl core::cmp::PartialEq for bitcoin_primitives::block::BlockDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::BlockHashDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::Checked +impl core::cmp::PartialEq for bitcoin_primitives::block::Header +impl core::cmp::PartialEq for bitcoin_primitives::block::HeaderDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::InvalidBlockError +impl core::cmp::PartialEq for bitcoin_primitives::block::Unchecked +impl core::cmp::PartialEq for bitcoin_primitives::block::Version +impl core::cmp::PartialEq for bitcoin_primitives::block::VersionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::pow::CompactTarget +impl core::cmp::PartialEq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::script::RedeemScriptSizeError +impl core::cmp::PartialEq for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptBufDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptHash +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::PartialEq for bitcoin_primitives::script::TapScriptTag +impl core::cmp::PartialEq for bitcoin_primitives::script::WScriptHash +impl core::cmp::PartialEq for bitcoin_primitives::script::WitnessScriptSizeError +impl core::cmp::PartialEq for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::PartialEq for bitcoin_primitives::transaction::OutPoint +impl core::cmp::PartialEq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::ParseOutPointError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::Transaction +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TransactionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxIn +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxInDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxOut +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxOutDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::Version +impl core::cmp::PartialEq for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::witness::UnexpectedEofError +impl core::cmp::PartialEq for bitcoin_primitives::witness::Witness +impl core::cmp::PartialEq for bitcoin_primitives::witness::WitnessDecoderError +impl core::cmp::PartialOrd for bitcoin_primitives::BlockHash +impl core::cmp::PartialOrd for bitcoin_primitives::Ntxid +impl core::cmp::PartialOrd for bitcoin_primitives::TxMerkleNode +impl core::cmp::PartialOrd for bitcoin_primitives::Txid +impl core::cmp::PartialOrd for bitcoin_primitives::WitnessCommitment +impl core::cmp::PartialOrd for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::PartialOrd for bitcoin_primitives::Wtxid +impl core::cmp::PartialOrd for bitcoin_primitives::block::Checked +impl core::cmp::PartialOrd for bitcoin_primitives::block::Header +impl core::cmp::PartialOrd for bitcoin_primitives::block::Unchecked +impl core::cmp::PartialOrd for bitcoin_primitives::block::Version +impl core::cmp::PartialOrd for bitcoin_primitives::pow::CompactTarget +impl core::cmp::PartialOrd for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptHash +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::TapScriptTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::WScriptHash +impl core::cmp::PartialOrd for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::OutPoint +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::Transaction +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::TxIn +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::TxOut +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::Version +impl core::cmp::PartialOrd for bitcoin_primitives::witness::Witness +impl core::convert::AsRef<[u8; 20]> for bitcoin_primitives::script::ScriptHash +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::BlockHash +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Ntxid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::TxMerkleNode +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Txid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::WitnessCommitment +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::WitnessMerkleNode +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Wtxid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::script::WScriptHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::BlockHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Ntxid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::TxMerkleNode +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Txid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::WitnessCommitment +impl core::convert::AsRef<[u8]> for bitcoin_primitives::WitnessMerkleNode +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Wtxid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::ScriptHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::WScriptHash +impl core::convert::From<&[&[u8]]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[alloc::vec::Vec]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&bitcoin_primitives::block::Block> for bitcoin_primitives::BlockHash +impl core::convert::From<&bitcoin_primitives::block::Header> for bitcoin_primitives::BlockHash +impl core::convert::From<&bitcoin_primitives::transaction::Transaction> for bitcoin_primitives::Txid +impl core::convert::From<&bitcoin_primitives::transaction::Transaction> for bitcoin_primitives::Wtxid +impl core::convert::From> for bitcoin_primitives::witness::Witness +impl core::convert::From>> for bitcoin_primitives::witness::Witness +impl core::convert::From for bitcoin_primitives::script::ScriptBufDecoderError +impl core::convert::From for bitcoin_primitives::block::BlockHashDecoderError +impl core::convert::From for bitcoin_primitives::block::VersionDecoderError +impl core::convert::From for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::convert::From> for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From> for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::BlockHash +impl core::convert::From for bitcoin_primitives::BlockHash +impl core::convert::From for bitcoin_primitives::Txid +impl core::convert::From for bitcoin_primitives::Wtxid +impl core::convert::From for u32 +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::block::BlockDecoderError +impl core::convert::From for bitcoin_primitives::block::BlockHashDecoderError +impl core::convert::From for bitcoin_primitives::block::HeaderDecoderError +impl core::convert::From for bitcoin_primitives::block::InvalidBlockError +impl core::convert::From for bitcoin_primitives::block::VersionDecoderError +impl core::convert::From for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::convert::From for bitcoin_primitives::script::RedeemScriptSizeError +impl core::convert::From for bitcoin_primitives::script::ScriptBufDecoderError +impl core::convert::From for bitcoin_primitives::script::WitnessScriptSizeError +impl core::convert::From for bitcoin_primitives::transaction::ParseOutPointError +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxInDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxOutDecoderError +impl core::convert::From for bitcoin_primitives::transaction::VersionDecoderError +impl core::convert::From for bitcoin_primitives::witness::WitnessDecoderError +impl core::convert::TryFrom<&bitcoin_primitives::script::Script> for bitcoin_primitives::script::WScriptHash +impl core::convert::TryFrom<&bitcoin_primitives::script::ScriptBuf> for bitcoin_primitives::script::WScriptHash +impl core::convert::TryFrom> for bitcoin_primitives::script::WScriptHash +impl core::default::Default for bitcoin_primitives::block::BlockHashDecoder +impl core::default::Default for bitcoin_primitives::block::Version +impl core::default::Default for bitcoin_primitives::block::VersionDecoder +impl core::default::Default for bitcoin_primitives::pow::CompactTargetDecoder +impl core::default::Default for bitcoin_primitives::transaction::OutPointDecoder +impl core::default::Default for bitcoin_primitives::transaction::TransactionDecoder +impl core::default::Default for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::default::Default for bitcoin_primitives::transaction::VersionDecoder +impl core::default::Default for bitcoin_primitives::witness::Witness +impl core::default::Default for bitcoin_primitives::witness::WitnessDecoder +impl core::error::Error for bitcoin_primitives::block::BlockDecoderError +impl core::error::Error for bitcoin_primitives::block::BlockHashDecoderError +impl core::error::Error for bitcoin_primitives::block::HeaderDecoderError +impl core::error::Error for bitcoin_primitives::block::InvalidBlockError +impl core::error::Error for bitcoin_primitives::block::VersionDecoderError +impl core::error::Error for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::error::Error for bitcoin_primitives::script::RedeemScriptSizeError +impl core::error::Error for bitcoin_primitives::script::ScriptBufDecoderError +impl core::error::Error for bitcoin_primitives::script::WitnessScriptSizeError +impl core::error::Error for bitcoin_primitives::transaction::OutPointDecoderError +impl core::error::Error for bitcoin_primitives::transaction::ParseOutPointError +impl core::error::Error for bitcoin_primitives::transaction::TransactionDecoderError +impl core::error::Error for bitcoin_primitives::transaction::TxInDecoderError +impl core::error::Error for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::error::Error for bitcoin_primitives::transaction::TxOutDecoderError +impl core::error::Error for bitcoin_primitives::transaction::VersionDecoderError +impl core::error::Error for bitcoin_primitives::witness::UnexpectedEofError +impl core::error::Error for bitcoin_primitives::witness::WitnessDecoderError +impl core::fmt::Debug for bitcoin_primitives::BlockHash +impl core::fmt::Debug for bitcoin_primitives::Ntxid +impl core::fmt::Debug for bitcoin_primitives::TxMerkleNode +impl core::fmt::Debug for bitcoin_primitives::Txid +impl core::fmt::Debug for bitcoin_primitives::WitnessCommitment +impl core::fmt::Debug for bitcoin_primitives::WitnessMerkleNode +impl core::fmt::Debug for bitcoin_primitives::Wtxid +impl core::fmt::Debug for bitcoin_primitives::block::BlockDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::BlockHashDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::Checked +impl core::fmt::Debug for bitcoin_primitives::block::Header +impl core::fmt::Debug for bitcoin_primitives::block::HeaderDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::InvalidBlockError +impl core::fmt::Debug for bitcoin_primitives::block::Unchecked +impl core::fmt::Debug for bitcoin_primitives::block::Version +impl core::fmt::Debug for bitcoin_primitives::block::VersionDecoderError +impl core::fmt::Debug for bitcoin_primitives::pow::CompactTarget +impl core::fmt::Debug for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::fmt::Debug for bitcoin_primitives::script::RedeemScriptSizeError +impl core::fmt::Debug for bitcoin_primitives::script::ScriptBufDecoderError +impl core::fmt::Debug for bitcoin_primitives::script::ScriptHash +impl core::fmt::Debug for bitcoin_primitives::script::WScriptHash +impl core::fmt::Debug for bitcoin_primitives::script::WitnessScriptSizeError +impl core::fmt::Debug for bitcoin_primitives::transaction::OutPoint +impl core::fmt::Debug for bitcoin_primitives::transaction::OutPointDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::ParseOutPointError +impl core::fmt::Debug for bitcoin_primitives::transaction::Transaction +impl core::fmt::Debug for bitcoin_primitives::transaction::TransactionDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxIn +impl core::fmt::Debug for bitcoin_primitives::transaction::TxInDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxOut +impl core::fmt::Debug for bitcoin_primitives::transaction::TxOutDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::Version +impl core::fmt::Debug for bitcoin_primitives::transaction::VersionDecoderError +impl core::fmt::Debug for bitcoin_primitives::witness::UnexpectedEofError +impl core::fmt::Debug for bitcoin_primitives::witness::Witness +impl core::fmt::Debug for bitcoin_primitives::witness::WitnessDecoderError +impl core::fmt::Display for bitcoin_primitives::BlockHash +impl core::fmt::Display for bitcoin_primitives::Ntxid +impl core::fmt::Display for bitcoin_primitives::TxMerkleNode +impl core::fmt::Display for bitcoin_primitives::Txid +impl core::fmt::Display for bitcoin_primitives::WitnessCommitment +impl core::fmt::Display for bitcoin_primitives::WitnessMerkleNode +impl core::fmt::Display for bitcoin_primitives::Wtxid +impl core::fmt::Display for bitcoin_primitives::block::BlockDecoderError +impl core::fmt::Display for bitcoin_primitives::block::BlockHashDecoderError +impl core::fmt::Display for bitcoin_primitives::block::Header +impl core::fmt::Display for bitcoin_primitives::block::HeaderDecoderError +impl core::fmt::Display for bitcoin_primitives::block::InvalidBlockError +impl core::fmt::Display for bitcoin_primitives::block::VersionDecoderError +impl core::fmt::Display for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::fmt::Display for bitcoin_primitives::script::RedeemScriptSizeError +impl core::fmt::Display for bitcoin_primitives::script::ScriptBufDecoderError +impl core::fmt::Display for bitcoin_primitives::script::ScriptHash +impl core::fmt::Display for bitcoin_primitives::script::WScriptHash +impl core::fmt::Display for bitcoin_primitives::script::WitnessScriptSizeError +impl core::fmt::Display for bitcoin_primitives::transaction::OutPoint +impl core::fmt::Display for bitcoin_primitives::transaction::OutPointDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::ParseOutPointError +impl core::fmt::Display for bitcoin_primitives::transaction::TransactionDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxInDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxOutDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::Version +impl core::fmt::Display for bitcoin_primitives::transaction::VersionDecoderError +impl core::fmt::Display for bitcoin_primitives::witness::UnexpectedEofError +impl core::fmt::Display for bitcoin_primitives::witness::WitnessDecoderError +impl core::fmt::LowerHex for bitcoin_primitives::BlockHash +impl core::fmt::LowerHex for bitcoin_primitives::Ntxid +impl core::fmt::LowerHex for bitcoin_primitives::TxMerkleNode +impl core::fmt::LowerHex for bitcoin_primitives::Txid +impl core::fmt::LowerHex for bitcoin_primitives::WitnessCommitment +impl core::fmt::LowerHex for bitcoin_primitives::WitnessMerkleNode +impl core::fmt::LowerHex for bitcoin_primitives::Wtxid +impl core::fmt::LowerHex for bitcoin_primitives::pow::CompactTarget +impl core::fmt::LowerHex for bitcoin_primitives::script::ScriptHash +impl core::fmt::LowerHex for bitcoin_primitives::script::WScriptHash +impl core::fmt::UpperHex for bitcoin_primitives::BlockHash +impl core::fmt::UpperHex for bitcoin_primitives::Ntxid +impl core::fmt::UpperHex for bitcoin_primitives::TxMerkleNode +impl core::fmt::UpperHex for bitcoin_primitives::Txid +impl core::fmt::UpperHex for bitcoin_primitives::WitnessCommitment +impl core::fmt::UpperHex for bitcoin_primitives::WitnessMerkleNode +impl core::fmt::UpperHex for bitcoin_primitives::Wtxid +impl core::fmt::UpperHex for bitcoin_primitives::pow::CompactTarget +impl core::fmt::UpperHex for bitcoin_primitives::script::ScriptHash +impl core::fmt::UpperHex for bitcoin_primitives::script::WScriptHash +impl core::hash::Hash for bitcoin_primitives::BlockHash +impl core::hash::Hash for bitcoin_primitives::Ntxid +impl core::hash::Hash for bitcoin_primitives::TxMerkleNode +impl core::hash::Hash for bitcoin_primitives::Txid +impl core::hash::Hash for bitcoin_primitives::WitnessCommitment +impl core::hash::Hash for bitcoin_primitives::WitnessMerkleNode +impl core::hash::Hash for bitcoin_primitives::Wtxid +impl core::hash::Hash for bitcoin_primitives::block::Checked +impl core::hash::Hash for bitcoin_primitives::block::Header +impl core::hash::Hash for bitcoin_primitives::block::Unchecked +impl core::hash::Hash for bitcoin_primitives::block::Version +impl core::hash::Hash for bitcoin_primitives::pow::CompactTarget +impl core::hash::Hash for bitcoin_primitives::script::RedeemScriptTag +impl core::hash::Hash for bitcoin_primitives::script::ScriptHash +impl core::hash::Hash for bitcoin_primitives::script::ScriptPubKeyTag +impl core::hash::Hash for bitcoin_primitives::script::ScriptSigTag +impl core::hash::Hash for bitcoin_primitives::script::TapScriptTag +impl core::hash::Hash for bitcoin_primitives::script::WScriptHash +impl core::hash::Hash for bitcoin_primitives::script::WitnessScriptTag +impl core::hash::Hash for bitcoin_primitives::transaction::OutPoint +impl core::hash::Hash for bitcoin_primitives::transaction::Transaction +impl core::hash::Hash for bitcoin_primitives::transaction::TxIn +impl core::hash::Hash for bitcoin_primitives::transaction::TxOut +impl core::hash::Hash for bitcoin_primitives::transaction::Version +impl core::hash::Hash for bitcoin_primitives::witness::Witness +impl core::iter::traits::exact_size::ExactSizeIterator for bitcoin_primitives::witness::Iter<'_> +impl core::marker::Copy for bitcoin_primitives::BlockHash +impl core::marker::Copy for bitcoin_primitives::Ntxid +impl core::marker::Copy for bitcoin_primitives::TxMerkleNode +impl core::marker::Copy for bitcoin_primitives::Txid +impl core::marker::Copy for bitcoin_primitives::WitnessCommitment +impl core::marker::Copy for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Copy for bitcoin_primitives::Wtxid +impl core::marker::Copy for bitcoin_primitives::block::Header +impl core::marker::Copy for bitcoin_primitives::block::Version +impl core::marker::Copy for bitcoin_primitives::pow::CompactTarget +impl core::marker::Copy for bitcoin_primitives::script::ScriptHash +impl core::marker::Copy for bitcoin_primitives::script::WScriptHash +impl core::marker::Copy for bitcoin_primitives::transaction::OutPoint +impl core::marker::Copy for bitcoin_primitives::transaction::Version +impl core::marker::Freeze for bitcoin_primitives::BlockHash +impl core::marker::Freeze for bitcoin_primitives::Ntxid +impl core::marker::Freeze for bitcoin_primitives::TxMerkleNode +impl core::marker::Freeze for bitcoin_primitives::Txid +impl core::marker::Freeze for bitcoin_primitives::WitnessCommitment +impl core::marker::Freeze for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Freeze for bitcoin_primitives::Wtxid +impl core::marker::Freeze for bitcoin_primitives::block::BlockDecoder +impl core::marker::Freeze for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Freeze for bitcoin_primitives::block::Checked +impl core::marker::Freeze for bitcoin_primitives::block::Header +impl core::marker::Freeze for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Freeze for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Freeze for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Freeze for bitcoin_primitives::block::Unchecked +impl core::marker::Freeze for bitcoin_primitives::block::Version +impl core::marker::Freeze for bitcoin_primitives::block::VersionDecoder +impl core::marker::Freeze for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::VersionEncoder +impl core::marker::Freeze for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTarget +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Freeze for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Freeze for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Freeze for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Freeze for bitcoin_primitives::script::ScriptHash +impl core::marker::Freeze for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Freeze for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Freeze for bitcoin_primitives::script::TapScriptTag +impl core::marker::Freeze for bitcoin_primitives::script::WScriptHash +impl core::marker::Freeze for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Freeze for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPoint +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::ParseOutPointError +impl core::marker::Freeze for bitcoin_primitives::transaction::Transaction +impl core::marker::Freeze for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxIn +impl core::marker::Freeze for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxOut +impl core::marker::Freeze for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::Version +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Freeze for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Freeze for bitcoin_primitives::witness::Witness +impl core::marker::Freeze for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Freeze for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::Send for bitcoin_primitives::BlockHash +impl core::marker::Send for bitcoin_primitives::Ntxid +impl core::marker::Send for bitcoin_primitives::TxMerkleNode +impl core::marker::Send for bitcoin_primitives::Txid +impl core::marker::Send for bitcoin_primitives::WitnessCommitment +impl core::marker::Send for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Send for bitcoin_primitives::Wtxid +impl core::marker::Send for bitcoin_primitives::block::BlockDecoder +impl core::marker::Send for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Send for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Send for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Send for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Send for bitcoin_primitives::block::Checked +impl core::marker::Send for bitcoin_primitives::block::Header +impl core::marker::Send for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Send for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Send for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Send for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Send for bitcoin_primitives::block::Unchecked +impl core::marker::Send for bitcoin_primitives::block::Version +impl core::marker::Send for bitcoin_primitives::block::VersionDecoder +impl core::marker::Send for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Send for bitcoin_primitives::block::VersionEncoder +impl core::marker::Send for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Send for bitcoin_primitives::pow::CompactTarget +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Send for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Send for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Send for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Send for bitcoin_primitives::script::ScriptHash +impl core::marker::Send for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Send for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Send for bitcoin_primitives::script::TapScriptTag +impl core::marker::Send for bitcoin_primitives::script::WScriptHash +impl core::marker::Send for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Send for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Send for bitcoin_primitives::transaction::OutPoint +impl core::marker::Send for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Send for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::ParseOutPointError +impl core::marker::Send for bitcoin_primitives::transaction::Transaction +impl core::marker::Send for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxIn +impl core::marker::Send for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxOut +impl core::marker::Send for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::Version +impl core::marker::Send for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Send for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Send for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Send for bitcoin_primitives::witness::Witness +impl core::marker::Send for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Send for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::BlockHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::Ntxid +impl core::marker::StructuralPartialEq for bitcoin_primitives::TxMerkleNode +impl core::marker::StructuralPartialEq for bitcoin_primitives::Txid +impl core::marker::StructuralPartialEq for bitcoin_primitives::WitnessCommitment +impl core::marker::StructuralPartialEq for bitcoin_primitives::WitnessMerkleNode +impl core::marker::StructuralPartialEq for bitcoin_primitives::Wtxid +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::BlockDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Checked +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Header +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::InvalidBlockError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Unchecked +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Version +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::VersionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::pow::CompactTarget +impl core::marker::StructuralPartialEq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptSigTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::TapScriptTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::WScriptHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::OutPoint +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::ParseOutPointError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::Transaction +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxIn +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxOut +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::Version +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::StructuralPartialEq for bitcoin_primitives::witness::Witness +impl core::marker::StructuralPartialEq for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::Sync for bitcoin_primitives::BlockHash +impl core::marker::Sync for bitcoin_primitives::Ntxid +impl core::marker::Sync for bitcoin_primitives::TxMerkleNode +impl core::marker::Sync for bitcoin_primitives::Txid +impl core::marker::Sync for bitcoin_primitives::WitnessCommitment +impl core::marker::Sync for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Sync for bitcoin_primitives::Wtxid +impl core::marker::Sync for bitcoin_primitives::block::BlockDecoder +impl core::marker::Sync for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Sync for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Sync for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Sync for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Sync for bitcoin_primitives::block::Checked +impl core::marker::Sync for bitcoin_primitives::block::Header +impl core::marker::Sync for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Sync for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Sync for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Sync for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Sync for bitcoin_primitives::block::Unchecked +impl core::marker::Sync for bitcoin_primitives::block::Version +impl core::marker::Sync for bitcoin_primitives::block::VersionDecoder +impl core::marker::Sync for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::block::VersionEncoder +impl core::marker::Sync for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Sync for bitcoin_primitives::pow::CompactTarget +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Sync for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Sync for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Sync for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Sync for bitcoin_primitives::script::ScriptHash +impl core::marker::Sync for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Sync for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Sync for bitcoin_primitives::script::TapScriptTag +impl core::marker::Sync for bitcoin_primitives::script::WScriptHash +impl core::marker::Sync for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Sync for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Sync for bitcoin_primitives::transaction::OutPoint +impl core::marker::Sync for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::ParseOutPointError +impl core::marker::Sync for bitcoin_primitives::transaction::Transaction +impl core::marker::Sync for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxIn +impl core::marker::Sync for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxOut +impl core::marker::Sync for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::Version +impl core::marker::Sync for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Sync for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Sync for bitcoin_primitives::witness::Witness +impl core::marker::Sync for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Sync for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::Unpin for bitcoin_primitives::BlockHash +impl core::marker::Unpin for bitcoin_primitives::Ntxid +impl core::marker::Unpin for bitcoin_primitives::TxMerkleNode +impl core::marker::Unpin for bitcoin_primitives::Txid +impl core::marker::Unpin for bitcoin_primitives::WitnessCommitment +impl core::marker::Unpin for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Unpin for bitcoin_primitives::Wtxid +impl core::marker::Unpin for bitcoin_primitives::block::BlockDecoder +impl core::marker::Unpin for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Unpin for bitcoin_primitives::block::Checked +impl core::marker::Unpin for bitcoin_primitives::block::Header +impl core::marker::Unpin for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Unpin for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Unpin for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Unpin for bitcoin_primitives::block::Unchecked +impl core::marker::Unpin for bitcoin_primitives::block::Version +impl core::marker::Unpin for bitcoin_primitives::block::VersionDecoder +impl core::marker::Unpin for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::VersionEncoder +impl core::marker::Unpin for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTarget +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Unpin for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Unpin for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Unpin for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Unpin for bitcoin_primitives::script::ScriptHash +impl core::marker::Unpin for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Unpin for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Unpin for bitcoin_primitives::script::TapScriptTag +impl core::marker::Unpin for bitcoin_primitives::script::WScriptHash +impl core::marker::Unpin for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Unpin for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPoint +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::ParseOutPointError +impl core::marker::Unpin for bitcoin_primitives::transaction::Transaction +impl core::marker::Unpin for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxIn +impl core::marker::Unpin for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxOut +impl core::marker::Unpin for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::Version +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Unpin for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Unpin for bitcoin_primitives::witness::Witness +impl core::marker::Unpin for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Unpin for bitcoin_primitives::witness::WitnessDecoderError +impl core::ops::index::Index for bitcoin_primitives::witness::Witness +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::BlockHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Ntxid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::TxMerkleNode +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Txid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::WitnessCommitment +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::WitnessMerkleNode +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Wtxid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Checked +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Header +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::InvalidBlockError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Unchecked +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Version +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTarget +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::RedeemScriptSizeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::RedeemScriptTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptBufDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptPubKeyTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptSigTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::TapScriptTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::WScriptHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::WitnessScriptSizeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::WitnessScriptTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPoint +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::ParseOutPointError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::Transaction +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TransactionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TransactionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxIn +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxInDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxInDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOut +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOutDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOutDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::Version +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::UnexpectedEofError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::Witness +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::WitnessDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::WitnessDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::BlockHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Ntxid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::TxMerkleNode +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Txid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::WitnessCommitment +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::WitnessMerkleNode +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Wtxid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Checked +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Header +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::InvalidBlockError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Unchecked +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Version +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTarget +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::RedeemScriptSizeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::RedeemScriptTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptBufDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptPubKeyTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptSigTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::TapScriptTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::WScriptHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::WitnessScriptSizeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::WitnessScriptTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPoint +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::ParseOutPointError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::Transaction +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TransactionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TransactionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxIn +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxInDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxInDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOut +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOutDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOutDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::Version +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::UnexpectedEofError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::Witness +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::WitnessDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::WitnessDecoderError +impl core::str::traits::FromStr for bitcoin_primitives::BlockHash +impl core::str::traits::FromStr for bitcoin_primitives::Ntxid +impl core::str::traits::FromStr for bitcoin_primitives::TxMerkleNode +impl core::str::traits::FromStr for bitcoin_primitives::Txid +impl core::str::traits::FromStr for bitcoin_primitives::WitnessCommitment +impl core::str::traits::FromStr for bitcoin_primitives::WitnessMerkleNode +impl core::str::traits::FromStr for bitcoin_primitives::Wtxid +impl core::str::traits::FromStr for bitcoin_primitives::script::ScriptHash +impl core::str::traits::FromStr for bitcoin_primitives::script::WScriptHash +impl core::str::traits::FromStr for bitcoin_primitives::transaction::OutPoint +impl serde::ser::Serialize for bitcoin_primitives::BlockHash +impl serde::ser::Serialize for bitcoin_primitives::Ntxid +impl serde::ser::Serialize for bitcoin_primitives::TxMerkleNode +impl serde::ser::Serialize for bitcoin_primitives::Txid +impl serde::ser::Serialize for bitcoin_primitives::WitnessCommitment +impl serde::ser::Serialize for bitcoin_primitives::WitnessMerkleNode +impl serde::ser::Serialize for bitcoin_primitives::Wtxid +impl serde::ser::Serialize for bitcoin_primitives::block::Version +impl serde::ser::Serialize for bitcoin_primitives::pow::CompactTarget +impl serde::ser::Serialize for bitcoin_primitives::script::ScriptHash +impl serde::ser::Serialize for bitcoin_primitives::script::WScriptHash +impl serde::ser::Serialize for bitcoin_primitives::transaction::OutPoint +impl serde::ser::Serialize for bitcoin_primitives::transaction::Version +impl serde::ser::Serialize for bitcoin_primitives::witness::Witness +impl<'a, T> arbitrary::Arbitrary<'a> for &'a bitcoin_primitives::script::Script +impl<'a, T> arbitrary::Arbitrary<'a> for bitcoin_primitives::script::ScriptBuf +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::borrow::Cow<'a, bitcoin_primitives::script::Script> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::boxed::Box> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::rc::Rc> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::sync::Arc> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for bitcoin_primitives::script::ScriptBuf +impl<'a, T> core::convert::From>> for alloc::boxed::Box> +impl<'a, T> core::convert::From>> for bitcoin_primitives::script::ScriptBuf +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::BlockHash +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::Ntxid +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::TxMerkleNode +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::Txid +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::WitnessCommitment +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::WitnessMerkleNode +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::Wtxid +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::block::Block +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::block::Header +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::block::Version +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::script::ScriptHash +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::script::WScriptHash +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::transaction::OutPoint +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::transaction::Transaction +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::transaction::TxIn +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::transaction::TxOut +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::transaction::Version +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_primitives::witness::Witness +impl<'a> core::clone::Clone for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::iter::traits::collect::IntoIterator for &'a bitcoin_primitives::witness::Witness +impl<'a> core::iter::traits::iterator::Iterator for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Freeze for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Freeze for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::marker::Send for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Send for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::marker::Sync for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Sync for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::marker::Unpin for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Unpin for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'de, T> serde::de::Deserialize<'de> for &'de bitcoin_primitives::script::Script +impl<'de, T> serde::de::Deserialize<'de> for bitcoin_primitives::script::ScriptBuf +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::BlockHash +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::Ntxid +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::TxMerkleNode +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::Txid +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::WitnessCommitment +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::WitnessMerkleNode +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::Wtxid +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::block::Version +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::pow::CompactTarget +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::script::ScriptHash +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::script::WScriptHash +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::transaction::OutPoint +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::transaction::Version +impl<'de> serde::de::Deserialize<'de> for bitcoin_primitives::witness::Witness +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl core::default::Default for &bitcoin_primitives::script::Script +impl core::convert::TryFrom<&bitcoin_primitives::script::Script> for bitcoin_primitives::script::ScriptHash +impl core::convert::TryFrom<&bitcoin_primitives::script::ScriptBuf> for bitcoin_primitives::script::ScriptHash +impl core::convert::TryFrom> for bitcoin_primitives::script::ScriptHash +impl> core::cmp::PartialEq<&[T]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq<[T]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq for &[T] +impl> core::cmp::PartialEq for [T] +impl> core::cmp::PartialEq for alloc::boxed::Box<[T]> +impl> core::cmp::PartialEq for alloc::rc::Rc<[T]> +impl> core::cmp::PartialEq for alloc::sync::Arc<[T]> +impl> core::cmp::PartialEq for alloc::vec::Vec +impl core::clone::Clone for bitcoin_primitives::script::ScriptBuf +impl core::cmp::Eq for bitcoin_primitives::script::Script +impl core::cmp::Eq for bitcoin_primitives::script::ScriptBuf +impl core::cmp::Ord for bitcoin_primitives::script::Script +impl core::cmp::Ord for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialEq for bitcoin_primitives::script::Script +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialEq> for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialEq> for bitcoin_primitives::script::Script +impl core::cmp::PartialOrd for bitcoin_primitives::script::Script +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialOrd> for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialOrd> for bitcoin_primitives::script::Script +impl> core::iter::traits::collect::FromIterator for bitcoin_primitives::witness::Witness +impl core::hash::Hash for bitcoin_primitives::script::Script +impl core::hash::Hash for bitcoin_primitives::script::ScriptBuf +impl !core::marker::Sized for bitcoin_primitives::script::Script +impl alloc::borrow::ToOwned for bitcoin_primitives::script::Script +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::script::ScriptBuf +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::script::ScriptBufDecoder +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::script::Script +impl bitcoin_primitives::script::Script +impl bitcoin_primitives::script::ScriptBuf +impl bitcoin_primitives::script::ScriptBufDecoder +impl core::borrow::Borrow> for bitcoin_primitives::script::ScriptBuf +impl core::borrow::BorrowMut> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsMut<[u8]> for bitcoin_primitives::script::Script +impl core::convert::AsMut<[u8]> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsMut> for bitcoin_primitives::script::Script +impl core::convert::AsMut> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::Script +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsRef> for bitcoin_primitives::script::Script +impl core::convert::AsRef> for bitcoin_primitives::script::ScriptBuf +impl core::convert::From> for bitcoin_primitives::script::ScriptBuf +impl core::convert::From> for alloc::borrow::Cow<'_, bitcoin_primitives::script::Script> +impl core::convert::From> for alloc::boxed::Box> +impl core::convert::From> for alloc::vec::Vec +impl core::default::Default for bitcoin_primitives::script::ScriptBuf +impl core::default::Default for bitcoin_primitives::script::ScriptBufDecoder +impl core::fmt::Debug for bitcoin_primitives::script::Script +impl core::fmt::Debug for bitcoin_primitives::script::ScriptBuf +impl core::fmt::Display for bitcoin_primitives::script::Script +impl core::fmt::Display for bitcoin_primitives::script::ScriptBuf +impl core::fmt::LowerHex for bitcoin_primitives::script::Script +impl core::fmt::LowerHex for bitcoin_primitives::script::ScriptBuf +impl core::fmt::UpperHex for bitcoin_primitives::script::Script +impl core::fmt::UpperHex for bitcoin_primitives::script::ScriptBuf +impl core::marker::Freeze for bitcoin_primitives::script::Script +impl core::marker::Freeze for bitcoin_primitives::script::ScriptBuf +impl core::marker::Freeze for bitcoin_primitives::script::ScriptBufDecoder +impl core::marker::Send for bitcoin_primitives::script::Script where T: core::marker::Send +impl core::marker::Send for bitcoin_primitives::script::ScriptBuf where T: core::marker::Send +impl core::marker::Send for bitcoin_primitives::script::ScriptBufDecoder where T: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::Script +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptBuf +impl core::marker::Sync for bitcoin_primitives::script::Script where T: core::marker::Sync +impl core::marker::Sync for bitcoin_primitives::script::ScriptBuf where T: core::marker::Sync +impl core::marker::Sync for bitcoin_primitives::script::ScriptBufDecoder where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_primitives::script::Script where T: core::marker::Unpin +impl core::marker::Unpin for bitcoin_primitives::script::ScriptBuf where T: core::marker::Unpin +impl core::marker::Unpin for bitcoin_primitives::script::ScriptBufDecoder where T: core::marker::Unpin +impl core::ops::deref::Deref for bitcoin_primitives::script::ScriptBuf +impl core::ops::deref::DerefMut for bitcoin_primitives::script::ScriptBuf +impl core::ops::index::Index<(core::ops::range::Bound, core::ops::range::Bound)> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::Script where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptBuf where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptBufDecoder where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::Script where T: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptBuf where T: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptBufDecoder where T: core::panic::unwind_safe::UnwindSafe +impl serde::ser::Serialize for bitcoin_primitives::script::Script +impl serde::ser::Serialize for bitcoin_primitives::script::ScriptBuf +impl bitcoin_primitives::block::Block +impl core::clone::Clone for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::clone::Clone +impl core::cmp::Eq for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::cmp::Eq +impl core::cmp::PartialEq for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::cmp::PartialEq +impl core::fmt::Debug for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::fmt::Debug +impl core::marker::Freeze for bitcoin_primitives::block::Block +impl core::marker::Send for bitcoin_primitives::block::Block +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation +impl core::marker::Sync for bitcoin_primitives::block::Block +impl core::marker::Unpin for bitcoin_primitives::block::Block +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Block where V: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Block where V: core::panic::unwind_safe::UnwindSafe +impl> core::cmp::PartialEq<&[T; N]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq<[T; N]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq for &[T; N] +impl> core::cmp::PartialEq for [T; N] +impl core::convert::From<&[&[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<[&[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<[[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[&[u8; N]]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[&[u8]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[[u8; N]]> for bitcoin_primitives::witness::Witness +impl core::convert::From<[&[u8]; N]> for bitcoin_primitives::witness::Witness +pub bitcoin_primitives::BlockHeader::bits: bitcoin_primitives::pow::CompactTarget +pub bitcoin_primitives::BlockHeader::merkle_root: bitcoin_primitives::TxMerkleNode +pub bitcoin_primitives::BlockHeader::nonce: u32 +pub bitcoin_primitives::BlockHeader::prev_blockhash: bitcoin_primitives::BlockHash +pub bitcoin_primitives::BlockHeader::time: bitcoin_units::time::encapsulate::BlockTime +pub bitcoin_primitives::BlockHeader::version: bitcoin_primitives::block::Version +pub bitcoin_primitives::OutPoint::txid: bitcoin_primitives::Txid +pub bitcoin_primitives::OutPoint::vout: u32 +pub bitcoin_primitives::Transaction::inputs: alloc::vec::Vec +pub bitcoin_primitives::Transaction::lock_time: bitcoin_units::locktime::absolute::LockTime +pub bitcoin_primitives::Transaction::outputs: alloc::vec::Vec +pub bitcoin_primitives::Transaction::version: bitcoin_primitives::transaction::Version +pub bitcoin_primitives::TxIn::previous_output: bitcoin_primitives::transaction::OutPoint +pub bitcoin_primitives::TxIn::script_sig: bitcoin_primitives::script::ScriptSigBuf +pub bitcoin_primitives::TxIn::sequence: bitcoin_units::sequence::Sequence +pub bitcoin_primitives::TxIn::witness: bitcoin_primitives::witness::Witness +pub bitcoin_primitives::TxOut::amount: bitcoin_units::amount::unsigned::encapsulate::Amount +pub bitcoin_primitives::TxOut::script_pubkey: bitcoin_primitives::script::ScriptPubKeyBuf +pub bitcoin_primitives::block::Header::bits: bitcoin_primitives::pow::CompactTarget +pub bitcoin_primitives::block::Header::merkle_root: bitcoin_primitives::TxMerkleNode +pub bitcoin_primitives::block::Header::nonce: u32 +pub bitcoin_primitives::block::Header::prev_blockhash: bitcoin_primitives::BlockHash +pub bitcoin_primitives::block::Header::time: bitcoin_units::time::encapsulate::BlockTime +pub bitcoin_primitives::block::Header::version: bitcoin_primitives::block::Version +pub bitcoin_primitives::block::HeaderDecoderError::Bits(bitcoin_primitives::pow::CompactTargetDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::MerkleRoot(bitcoin_primitives::transaction::TxMerkleNodeDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::Nonce(bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) +pub bitcoin_primitives::block::HeaderDecoderError::PrevBlockhash(bitcoin_primitives::block::BlockHashDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::Time(bitcoin_units::time::BlockTimeDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::Version(bitcoin_primitives::block::VersionDecoderError) +pub bitcoin_primitives::block::InvalidBlockError::InvalidCoinbase +pub bitcoin_primitives::block::InvalidBlockError::InvalidMerkleRoot +pub bitcoin_primitives::block::InvalidBlockError::InvalidWitnessCommitment +pub bitcoin_primitives::block::InvalidBlockError::NoTransactions +pub bitcoin_primitives::transaction::OutPoint::txid: bitcoin_primitives::Txid +pub bitcoin_primitives::transaction::OutPoint::vout: u32 +pub bitcoin_primitives::transaction::ParseOutPointError::Format +pub bitcoin_primitives::transaction::ParseOutPointError::TooLong +pub bitcoin_primitives::transaction::ParseOutPointError::Txid(hex_conservative::error::DecodeFixedLengthBytesError) +pub bitcoin_primitives::transaction::ParseOutPointError::Vout(bitcoin_units::parse_int::ParseIntError) +pub bitcoin_primitives::transaction::ParseOutPointError::VoutNotCanonical +pub bitcoin_primitives::transaction::Transaction::inputs: alloc::vec::Vec +pub bitcoin_primitives::transaction::Transaction::lock_time: bitcoin_units::locktime::absolute::LockTime +pub bitcoin_primitives::transaction::Transaction::outputs: alloc::vec::Vec +pub bitcoin_primitives::transaction::Transaction::version: bitcoin_primitives::transaction::Version +pub bitcoin_primitives::transaction::TxIn::previous_output: bitcoin_primitives::transaction::OutPoint +pub bitcoin_primitives::transaction::TxIn::script_sig: bitcoin_primitives::script::ScriptSigBuf +pub bitcoin_primitives::transaction::TxIn::sequence: bitcoin_units::sequence::Sequence +pub bitcoin_primitives::transaction::TxIn::witness: bitcoin_primitives::witness::Witness +pub bitcoin_primitives::transaction::TxOut::amount: bitcoin_units::amount::unsigned::encapsulate::Amount +pub bitcoin_primitives::transaction::TxOut::script_pubkey: bitcoin_primitives::script::ScriptPubKeyBuf +pub const bitcoin_primitives::BlockHash::GENESIS_PREVIOUS_BLOCK_HASH: Self +pub const bitcoin_primitives::BlockValidation::IS_CHECKED: bool +pub const bitcoin_primitives::Txid::COINBASE_PREVOUT: Self +pub const bitcoin_primitives::WitnessCommitment::GENESIS_PREVIOUS_BLOCK_HASH: Self +pub const bitcoin_primitives::Wtxid::COINBASE: Self +pub const bitcoin_primitives::block::Checked::IS_CHECKED: bool +pub const bitcoin_primitives::block::Header::SIZE: usize +pub const bitcoin_primitives::block::Unchecked::IS_CHECKED: bool +pub const bitcoin_primitives::block::Validation::IS_CHECKED: bool +pub const bitcoin_primitives::block::Version::NO_SOFT_FORK_SIGNALLING: Self +pub const bitcoin_primitives::block::Version::ONE: Self +pub const bitcoin_primitives::block::Version::TWO: Self +pub const bitcoin_primitives::script::MAX_REDEEM_SCRIPT_SIZE: usize +pub const bitcoin_primitives::script::MAX_WITNESS_SCRIPT_SIZE: usize +pub const bitcoin_primitives::transaction::OutPoint::COINBASE_PREVOUT: Self +pub const bitcoin_primitives::transaction::OutPoint::SIZE: usize +pub const bitcoin_primitives::transaction::Transaction::MAX_STANDARD_WEIGHT: bitcoin_units::weight::encapsulate::Weight +pub const bitcoin_primitives::transaction::TxIn::EMPTY_COINBASE: Self +pub const bitcoin_primitives::transaction::Version::ONE: Self +pub const bitcoin_primitives::transaction::Version::THREE: Self +pub const bitcoin_primitives::transaction::Version::TWO: Self +pub const fn bitcoin_primitives::BlockHash::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::BlockHash::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::BlockHash::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Ntxid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Ntxid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Ntxid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::TxMerkleNode::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::TxMerkleNode::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::TxMerkleNode::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Txid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Txid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Txid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::WitnessCommitment::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::WitnessCommitment::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::WitnessCommitment::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::WitnessMerkleNode::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::WitnessMerkleNode::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::WitnessMerkleNode::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Wtxid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Wtxid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Wtxid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::block::BlockHashDecoder::new() -> Self +pub const fn bitcoin_primitives::block::Version::from_consensus(v: i32) -> Self +pub const fn bitcoin_primitives::block::Version::to_consensus(self) -> i32 +pub const fn bitcoin_primitives::block::VersionDecoder::new() -> Self +pub const fn bitcoin_primitives::pow::CompactTarget::to_consensus(self) -> u32 +pub const fn bitcoin_primitives::pow::CompactTargetDecoder::new() -> Self +pub const fn bitcoin_primitives::script::Script::as_bytes(&self) -> &[u8] +pub const fn bitcoin_primitives::script::Script::from_bytes(bytes: &[u8]) -> &Self +pub const fn bitcoin_primitives::script::Script::is_empty(&self) -> bool +pub const fn bitcoin_primitives::script::Script::len(&self) -> usize +pub const fn bitcoin_primitives::script::Script::new() -> &'static Self +pub const fn bitcoin_primitives::script::ScriptBuf::from_bytes(bytes: alloc::vec::Vec) -> Self +pub const fn bitcoin_primitives::script::ScriptBuf::new() -> Self +pub const fn bitcoin_primitives::script::ScriptBufDecoder::new() -> Self +pub const fn bitcoin_primitives::script::ScriptHash::as_byte_array(&self) -> &[u8; 20] +pub const fn bitcoin_primitives::script::ScriptHash::from_byte_array(bytes: [u8; 20]) -> Self +pub const fn bitcoin_primitives::script::ScriptHash::to_byte_array(self) -> [u8; 20] +pub const fn bitcoin_primitives::script::WScriptHash::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::script::WScriptHash::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::script::WScriptHash::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::transaction::OutPointDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::TransactionDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::Version::is_standard(self) -> bool +pub const fn bitcoin_primitives::transaction::Version::maybe_non_standard(version: u32) -> Self +pub const fn bitcoin_primitives::transaction::Version::to_u32(self) -> u32 +pub const fn bitcoin_primitives::transaction::VersionDecoder::new() -> Self +pub const fn bitcoin_primitives::witness::Witness::len(&self) -> usize +pub const fn bitcoin_primitives::witness::Witness::new() -> Self +pub const fn bitcoin_primitives::witness::WitnessDecoder::new() -> Self +pub enum bitcoin_primitives::BlockChecked +pub enum bitcoin_primitives::BlockUnchecked +pub enum bitcoin_primitives::block::Checked +pub enum bitcoin_primitives::block::Unchecked +pub enum bitcoin_primitives::script::RedeemScriptTag +pub enum bitcoin_primitives::script::ScriptPubKeyTag +pub enum bitcoin_primitives::script::ScriptSigTag +pub enum bitcoin_primitives::script::TapScriptTag +pub enum bitcoin_primitives::script::WitnessScriptTag +pub extern crate bitcoin_primitives::hex +pub fn &'a bitcoin_primitives::script::Script::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn &'a bitcoin_primitives::witness::Witness::into_iter(self) -> Self::IntoIter +pub fn &'de bitcoin_primitives::script::Script::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn &[T; N]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn &[T]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn &bitcoin_primitives::script::Script::default() -> Self +pub fn [T; N]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn [T]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::borrow::Cow<'_, bitcoin_primitives::script::Script>::from(value: bitcoin_primitives::script::ScriptBuf) -> Self +pub fn alloc::borrow::Cow<'a, bitcoin_primitives::script::Script>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::boxed::Box<[T]>::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::boxed::Box>::from(v: bitcoin_primitives::script::ScriptBuf) -> Self +pub fn alloc::boxed::Box>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::boxed::Box>::from(value: alloc::borrow::Cow<'a, bitcoin_primitives::script::Script>) -> Self +pub fn alloc::rc::Rc<[T]>::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::rc::Rc>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::sync::Arc<[T]>::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::sync::Arc>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::vec::Vec::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::vec::Vec::from(v: bitcoin_primitives::script::ScriptBuf) -> Self +pub fn bitcoin_primitives::BlockHash::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::BlockHash::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::BlockHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::BlockHash::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::BlockHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::BlockHash::clone(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::BlockHash::cmp(&self, other: &bitcoin_primitives::BlockHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::BlockHash::decoder() -> Self::Decoder +pub fn bitcoin_primitives::BlockHash::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::BlockHash::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::BlockHash::eq(&self, other: &bitcoin_primitives::BlockHash) -> bool +pub fn bitcoin_primitives::BlockHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::BlockHash::from(block: &bitcoin_primitives::block::Block) -> Self +pub fn bitcoin_primitives::BlockHash::from(block: bitcoin_primitives::block::Block) -> Self +pub fn bitcoin_primitives::BlockHash::from(header: &bitcoin_primitives::block::Header) -> Self +pub fn bitcoin_primitives::BlockHash::from(header: bitcoin_primitives::block::Header) -> Self +pub fn bitcoin_primitives::BlockHash::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::BlockHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::BlockHash::partial_cmp(&self, other: &bitcoin_primitives::BlockHash) -> core::option::Option +pub fn bitcoin_primitives::BlockHash::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::Ntxid::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::Ntxid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Ntxid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Ntxid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Ntxid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Ntxid::clone(&self) -> bitcoin_primitives::Ntxid +pub fn bitcoin_primitives::Ntxid::cmp(&self, other: &bitcoin_primitives::Ntxid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Ntxid::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::Ntxid::eq(&self, other: &bitcoin_primitives::Ntxid) -> bool +pub fn bitcoin_primitives::Ntxid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Ntxid::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::Ntxid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Ntxid::partial_cmp(&self, other: &bitcoin_primitives::Ntxid) -> core::option::Option +pub fn bitcoin_primitives::Ntxid::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::TxMerkleNode::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::TxMerkleNode::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::TxMerkleNode::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::TxMerkleNode::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::TxMerkleNode::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::TxMerkleNode::calculate_root>(iter: I) -> core::option::Option +pub fn bitcoin_primitives::TxMerkleNode::clone(&self) -> bitcoin_primitives::TxMerkleNode +pub fn bitcoin_primitives::TxMerkleNode::cmp(&self, other: &bitcoin_primitives::TxMerkleNode) -> core::cmp::Ordering +pub fn bitcoin_primitives::TxMerkleNode::combine(&self, other: &Self) -> Self +pub fn bitcoin_primitives::TxMerkleNode::decoder() -> Self::Decoder +pub fn bitcoin_primitives::TxMerkleNode::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::TxMerkleNode::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::TxMerkleNode::eq(&self, other: &bitcoin_primitives::TxMerkleNode) -> bool +pub fn bitcoin_primitives::TxMerkleNode::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::TxMerkleNode::from_leaf(leaf: bitcoin_primitives::Txid) -> Self +pub fn bitcoin_primitives::TxMerkleNode::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::TxMerkleNode::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::TxMerkleNode::partial_cmp(&self, other: &bitcoin_primitives::TxMerkleNode) -> core::option::Option +pub fn bitcoin_primitives::TxMerkleNode::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::Txid::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::Txid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Txid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Txid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Txid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Txid::clone(&self) -> bitcoin_primitives::Txid +pub fn bitcoin_primitives::Txid::cmp(&self, other: &bitcoin_primitives::Txid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Txid::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::Txid::eq(&self, other: &bitcoin_primitives::Txid) -> bool +pub fn bitcoin_primitives::Txid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Txid::from(tx: &bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Txid::from(tx: bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Txid::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::Txid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Txid::partial_cmp(&self, other: &bitcoin_primitives::Txid) -> core::option::Option +pub fn bitcoin_primitives::Txid::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::WitnessCommitment::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::WitnessCommitment::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessCommitment::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessCommitment::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessCommitment::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessCommitment::clone(&self) -> bitcoin_primitives::WitnessCommitment +pub fn bitcoin_primitives::WitnessCommitment::cmp(&self, other: &bitcoin_primitives::WitnessCommitment) -> core::cmp::Ordering +pub fn bitcoin_primitives::WitnessCommitment::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::WitnessCommitment::eq(&self, other: &bitcoin_primitives::WitnessCommitment) -> bool +pub fn bitcoin_primitives::WitnessCommitment::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::WitnessCommitment::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::WitnessCommitment::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::WitnessCommitment::partial_cmp(&self, other: &bitcoin_primitives::WitnessCommitment) -> core::option::Option +pub fn bitcoin_primitives::WitnessCommitment::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::WitnessMerkleNode::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::WitnessMerkleNode::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessMerkleNode::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessMerkleNode::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessMerkleNode::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessMerkleNode::calculate_root>(iter: I) -> core::option::Option +pub fn bitcoin_primitives::WitnessMerkleNode::clone(&self) -> bitcoin_primitives::WitnessMerkleNode +pub fn bitcoin_primitives::WitnessMerkleNode::cmp(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> core::cmp::Ordering +pub fn bitcoin_primitives::WitnessMerkleNode::combine(&self, other: &Self) -> Self +pub fn bitcoin_primitives::WitnessMerkleNode::decoder() -> Self::Decoder +pub fn bitcoin_primitives::WitnessMerkleNode::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::WitnessMerkleNode::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::WitnessMerkleNode::eq(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> bool +pub fn bitcoin_primitives::WitnessMerkleNode::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::WitnessMerkleNode::from_leaf(leaf: bitcoin_primitives::Wtxid) -> Self +pub fn bitcoin_primitives::WitnessMerkleNode::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::WitnessMerkleNode::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::WitnessMerkleNode::partial_cmp(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> core::option::Option +pub fn bitcoin_primitives::WitnessMerkleNode::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::Wtxid::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::Wtxid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Wtxid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Wtxid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Wtxid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Wtxid::clone(&self) -> bitcoin_primitives::Wtxid +pub fn bitcoin_primitives::Wtxid::cmp(&self, other: &bitcoin_primitives::Wtxid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Wtxid::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::Wtxid::eq(&self, other: &bitcoin_primitives::Wtxid) -> bool +pub fn bitcoin_primitives::Wtxid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Wtxid::from(tx: &bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Wtxid::from(tx: bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Wtxid::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::Wtxid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Wtxid::partial_cmp(&self, other: &bitcoin_primitives::Wtxid) -> core::option::Option +pub fn bitcoin_primitives::Wtxid::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::block::Block::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::block::Block::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Block::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Block::block_hash(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::block::Block::clone(&self) -> bitcoin_primitives::block::Block +pub fn bitcoin_primitives::block::Block::eq(&self, other: &bitcoin_primitives::block::Block) -> bool +pub fn bitcoin_primitives::block::Block::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Block::cached_witness_root(&self) -> core::option::Option +pub fn bitcoin_primitives::block::Block::header(&self) -> &bitcoin_primitives::block::Header +pub fn bitcoin_primitives::block::Block::transactions(&self) -> &[bitcoin_primitives::transaction::Transaction] +pub fn bitcoin_primitives::block::Block::assume_checked(self, witness_root: core::option::Option) -> bitcoin_primitives::block::Block +pub fn bitcoin_primitives::block::Block::check_merkle_root(&self) -> bool +pub fn bitcoin_primitives::block::Block::check_witness_commitment(&self) -> (bool, core::option::Option) +pub fn bitcoin_primitives::block::Block::compute_witness_commitment(&self, witness_reserved_value: &[u8]) -> core::option::Option<(bitcoin_primitives::WitnessMerkleNode, bitcoin_primitives::WitnessCommitment)> +pub fn bitcoin_primitives::block::Block::into_parts(self) -> (bitcoin_primitives::block::Header, alloc::vec::Vec) +pub fn bitcoin_primitives::block::Block::new_unchecked(header: bitcoin_primitives::block::Header, transactions: alloc::vec::Vec) -> Self +pub fn bitcoin_primitives::block::Block::validate(self) -> core::result::Result, bitcoin_primitives::block::InvalidBlockError> +pub fn bitcoin_primitives::block::BlockDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::BlockDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::BlockDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::BlockDecoderError::clone(&self) -> bitcoin_primitives::block::BlockDecoderError +pub fn bitcoin_primitives::block::BlockDecoderError::eq(&self, other: &bitcoin_primitives::block::BlockDecoderError) -> bool +pub fn bitcoin_primitives::block::BlockDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::BlockDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::BlockDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::block::BlockEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::BlockEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::BlockHashDecoder::default() -> Self +pub fn bitcoin_primitives::block::BlockHashDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::BlockHashDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::BlockHashDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::BlockHashDecoderError::clone(&self) -> bitcoin_primitives::block::BlockHashDecoderError +pub fn bitcoin_primitives::block::BlockHashDecoderError::eq(&self, other: &bitcoin_primitives::block::BlockHashDecoderError) -> bool +pub fn bitcoin_primitives::block::BlockHashDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::BlockHashDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::block::BlockHashDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::BlockHashDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::block::BlockHashEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::BlockHashEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::Checked::clone(&self) -> bitcoin_primitives::block::Checked +pub fn bitcoin_primitives::block::Checked::cmp(&self, other: &bitcoin_primitives::block::Checked) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Checked::eq(&self, other: &bitcoin_primitives::block::Checked) -> bool +pub fn bitcoin_primitives::block::Checked::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Checked::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Checked::partial_cmp(&self, other: &bitcoin_primitives::block::Checked) -> core::option::Option +pub fn bitcoin_primitives::block::Header::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::block::Header::block_hash(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::block::Header::clone(&self) -> bitcoin_primitives::block::Header +pub fn bitcoin_primitives::block::Header::cmp(&self, other: &bitcoin_primitives::block::Header) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Header::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Header::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Header::eq(&self, other: &bitcoin_primitives::block::Header) -> bool +pub fn bitcoin_primitives::block::Header::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Header::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Header::partial_cmp(&self, other: &bitcoin_primitives::block::Header) -> core::option::Option +pub fn bitcoin_primitives::block::HeaderDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::HeaderDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::HeaderDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::HeaderDecoderError::clone(&self) -> bitcoin_primitives::block::HeaderDecoderError +pub fn bitcoin_primitives::block::HeaderDecoderError::eq(&self, other: &bitcoin_primitives::block::HeaderDecoderError) -> bool +pub fn bitcoin_primitives::block::HeaderDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::HeaderDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::HeaderDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::block::HeaderEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::HeaderEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::InvalidBlockError::clone(&self) -> bitcoin_primitives::block::InvalidBlockError +pub fn bitcoin_primitives::block::InvalidBlockError::eq(&self, other: &bitcoin_primitives::block::InvalidBlockError) -> bool +pub fn bitcoin_primitives::block::InvalidBlockError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::InvalidBlockError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::Unchecked::clone(&self) -> bitcoin_primitives::block::Unchecked +pub fn bitcoin_primitives::block::Unchecked::cmp(&self, other: &bitcoin_primitives::block::Unchecked) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Unchecked::eq(&self, other: &bitcoin_primitives::block::Unchecked) -> bool +pub fn bitcoin_primitives::block::Unchecked::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Unchecked::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Unchecked::partial_cmp(&self, other: &bitcoin_primitives::block::Unchecked) -> core::option::Option +pub fn bitcoin_primitives::block::Version::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::block::Version::clone(&self) -> bitcoin_primitives::block::Version +pub fn bitcoin_primitives::block::Version::cmp(&self, other: &bitcoin_primitives::block::Version) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Version::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Version::default() -> Self +pub fn bitcoin_primitives::block::Version::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> +pub fn bitcoin_primitives::block::Version::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Version::eq(&self, other: &bitcoin_primitives::block::Version) -> bool +pub fn bitcoin_primitives::block::Version::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Version::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Version::is_signalling_soft_fork(self, bit: u8) -> bool +pub fn bitcoin_primitives::block::Version::partial_cmp(&self, other: &bitcoin_primitives::block::Version) -> core::option::Option +pub fn bitcoin_primitives::block::Version::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer +pub fn bitcoin_primitives::block::VersionDecoder::default() -> Self +pub fn bitcoin_primitives::block::VersionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::VersionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::VersionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::VersionDecoderError::clone(&self) -> bitcoin_primitives::block::VersionDecoderError +pub fn bitcoin_primitives::block::VersionDecoderError::eq(&self, other: &bitcoin_primitives::block::VersionDecoderError) -> bool +pub fn bitcoin_primitives::block::VersionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::VersionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::block::VersionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::VersionDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::block::VersionEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::VersionEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::compute_merkle_root(transactions: &[bitcoin_primitives::transaction::Transaction]) -> core::option::Option +pub fn bitcoin_primitives::block::compute_witness_root(transactions: &[bitcoin_primitives::transaction::Transaction]) -> core::option::Option +pub fn bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::pow::CompactTarget::clone(&self) -> bitcoin_primitives::pow::CompactTarget +pub fn bitcoin_primitives::pow::CompactTarget::cmp(&self, other: &bitcoin_primitives::pow::CompactTarget) -> core::cmp::Ordering +pub fn bitcoin_primitives::pow::CompactTarget::decoder() -> Self::Decoder +pub fn bitcoin_primitives::pow::CompactTarget::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> +pub fn bitcoin_primitives::pow::CompactTarget::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::pow::CompactTarget::eq(&self, other: &bitcoin_primitives::pow::CompactTarget) -> bool +pub fn bitcoin_primitives::pow::CompactTarget::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::pow::CompactTarget::from_consensus(bits: u32) -> Self +pub fn bitcoin_primitives::pow::CompactTarget::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::pow::CompactTarget::partial_cmp(&self, other: &bitcoin_primitives::pow::CompactTarget) -> core::option::Option +pub fn bitcoin_primitives::pow::CompactTarget::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer +pub fn bitcoin_primitives::pow::CompactTarget::to_hex(self) -> alloc::string::String +pub fn bitcoin_primitives::pow::CompactTargetDecoder::default() -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::clone(&self) -> bitcoin_primitives::pow::CompactTargetDecoderError +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::eq(&self, other: &bitcoin_primitives::pow::CompactTargetDecoderError) -> bool +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::pow::CompactTargetEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::pow::CompactTargetEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::script::RedeemScriptSizeError::clone(&self) -> bitcoin_primitives::script::RedeemScriptSizeError +pub fn bitcoin_primitives::script::RedeemScriptSizeError::eq(&self, other: &bitcoin_primitives::script::RedeemScriptSizeError) -> bool +pub fn bitcoin_primitives::script::RedeemScriptSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::RedeemScriptSizeError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::script::RedeemScriptSizeError::invalid_size(&self) -> usize +pub fn bitcoin_primitives::script::RedeemScriptTag::clone(&self) -> bitcoin_primitives::script::RedeemScriptTag +pub fn bitcoin_primitives::script::RedeemScriptTag::cmp(&self, other: &bitcoin_primitives::script::RedeemScriptTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::RedeemScriptTag::eq(&self, other: &bitcoin_primitives::script::RedeemScriptTag) -> bool +pub fn bitcoin_primitives::script::RedeemScriptTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::RedeemScriptTag::partial_cmp(&self, other: &bitcoin_primitives::script::RedeemScriptTag) -> core::option::Option +pub fn bitcoin_primitives::script::Script::as_mut(&mut self) -> &mut Self +pub fn bitcoin_primitives::script::Script::as_mut(&mut self) -> &mut [u8] +pub fn bitcoin_primitives::script::Script::as_mut_bytes(&mut self) -> &mut [u8] +pub fn bitcoin_primitives::script::Script::as_ref(&self) -> &Self +pub fn bitcoin_primitives::script::Script::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::Script::cmp(&self, other: &bitcoin_primitives::script::Script) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::Script::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::script::Script::eq(&self, other: &bitcoin_primitives::script::Script) -> bool +pub fn bitcoin_primitives::script::Script::eq(&self, other: &bitcoin_primitives::script::ScriptBuf) -> bool +pub fn bitcoin_primitives::script::Script::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::Script::from_bytes_mut(bytes: &mut [u8]) -> &mut Self +pub fn bitcoin_primitives::script::Script::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::Script::index(&self, index: (core::ops::range::Bound, core::ops::range::Bound)) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::Range) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeFrom) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeFull) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeInclusive) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeTo) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeToInclusive) -> &Self::Output +pub fn bitcoin_primitives::script::Script::into_script_buf(self: alloc::boxed::Box) -> bitcoin_primitives::script::ScriptBuf +pub fn bitcoin_primitives::script::Script::partial_cmp(&self, other: &bitcoin_primitives::script::Script) -> core::option::Option +pub fn bitcoin_primitives::script::Script::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptBuf) -> core::option::Option +pub fn bitcoin_primitives::script::Script::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_primitives::script::Script::to_bytes(&self) -> alloc::vec::Vec +pub fn bitcoin_primitives::script::Script::to_hex(&self) -> alloc::string::String +pub fn bitcoin_primitives::script::Script::to_owned(&self) -> Self::Owned +pub fn bitcoin_primitives::script::Script::to_vec(&self) -> alloc::vec::Vec +pub fn bitcoin_primitives::script::ScriptBuf::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::script::ScriptBuf::as_mut(&mut self) -> &mut [u8] +pub fn bitcoin_primitives::script::ScriptBuf::as_mut(&mut self) -> &mut bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::as_mut_script(&mut self) -> &mut bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptBuf::as_ref(&self) -> &bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::as_script(&self) -> &bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::borrow(&self) -> &bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::borrow_mut(&mut self) -> &mut bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::capacity(&self) -> usize +pub fn bitcoin_primitives::script::ScriptBuf::clone(&self) -> bitcoin_primitives::script::ScriptBuf +pub fn bitcoin_primitives::script::ScriptBuf::cmp(&self, other: &bitcoin_primitives::script::ScriptBuf) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptBuf::decoder() -> Self::Decoder +pub fn bitcoin_primitives::script::ScriptBuf::default() -> Self +pub fn bitcoin_primitives::script::ScriptBuf::deref(&self) -> &Self::Target +pub fn bitcoin_primitives::script::ScriptBuf::deref_mut(&mut self) -> &mut Self::Target +pub fn bitcoin_primitives::script::ScriptBuf::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_primitives::script::ScriptBuf::eq(&self, other: &bitcoin_primitives::script::Script) -> bool +pub fn bitcoin_primitives::script::ScriptBuf::eq(&self, other: &bitcoin_primitives::script::ScriptBuf) -> bool +pub fn bitcoin_primitives::script::ScriptBuf::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::ScriptBuf::from(v: alloc::vec::Vec) -> Self +pub fn bitcoin_primitives::script::ScriptBuf::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn bitcoin_primitives::script::ScriptBuf::from(value: alloc::borrow::Cow<'a, bitcoin_primitives::script::Script>) -> Self +pub fn bitcoin_primitives::script::ScriptBuf::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptBuf::into_boxed_script(self) -> alloc::boxed::Box> +pub fn bitcoin_primitives::script::ScriptBuf::into_bytes(self) -> alloc::vec::Vec +pub fn bitcoin_primitives::script::ScriptBuf::partial_cmp(&self, other: &bitcoin_primitives::script::Script) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptBuf::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptBuf) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptBuf::reserve(&mut self, additional_len: usize) +pub fn bitcoin_primitives::script::ScriptBuf::reserve_exact(&mut self, additional_len: usize) +pub fn bitcoin_primitives::script::ScriptBuf::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_primitives::script::ScriptBuf::to_hex(&self) -> alloc::string::String +pub fn bitcoin_primitives::script::ScriptBuf::with_capacity(capacity: usize) -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoder::default() -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptBufDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptBufDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::script::ScriptBufDecoderError::clone(&self) -> bitcoin_primitives::script::ScriptBufDecoderError +pub fn bitcoin_primitives::script::ScriptBufDecoderError::eq(&self, other: &bitcoin_primitives::script::ScriptBufDecoderError) -> bool +pub fn bitcoin_primitives::script::ScriptBufDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::ScriptBufDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::ByteVecDecoderError) -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::script::ScriptEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::script::ScriptEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptHash::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::script::ScriptHash::as_ref(&self) -> &[u8; 20] +pub fn bitcoin_primitives::script::ScriptHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptHash::borrow(&self) -> &[u8; 20] +pub fn bitcoin_primitives::script::ScriptHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptHash::clone(&self) -> bitcoin_primitives::script::ScriptHash +pub fn bitcoin_primitives::script::ScriptHash::cmp(&self, other: &bitcoin_primitives::script::ScriptHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptHash::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::script::ScriptHash::eq(&self, other: &bitcoin_primitives::script::ScriptHash) -> bool +pub fn bitcoin_primitives::script::ScriptHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::ScriptHash::from_script(redeem_script: &bitcoin_primitives::script::Script) -> core::result::Result where T: bitcoin_primitives::script::ScriptHashableTag +pub fn bitcoin_primitives::script::ScriptHash::from_script_unchecked(script: &bitcoin_primitives::script::Script) -> Self +pub fn bitcoin_primitives::script::ScriptHash::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptHash::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptHash) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptHash::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::script::ScriptHash::try_from(redeem_script: &bitcoin_primitives::script::Script) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptHash::try_from(redeem_script: &bitcoin_primitives::script::ScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptHash::try_from(redeem_script: bitcoin_primitives::script::ScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptPubKeyTag::clone(&self) -> bitcoin_primitives::script::ScriptPubKeyTag +pub fn bitcoin_primitives::script::ScriptPubKeyTag::cmp(&self, other: &bitcoin_primitives::script::ScriptPubKeyTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptPubKeyTag::eq(&self, other: &bitcoin_primitives::script::ScriptPubKeyTag) -> bool +pub fn bitcoin_primitives::script::ScriptPubKeyTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptPubKeyTag::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptPubKeyTag) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptSigTag::clone(&self) -> bitcoin_primitives::script::ScriptSigTag +pub fn bitcoin_primitives::script::ScriptSigTag::cmp(&self, other: &bitcoin_primitives::script::ScriptSigTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptSigTag::eq(&self, other: &bitcoin_primitives::script::ScriptSigTag) -> bool +pub fn bitcoin_primitives::script::ScriptSigTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptSigTag::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptSigTag) -> core::option::Option +pub fn bitcoin_primitives::script::TapScriptTag::clone(&self) -> bitcoin_primitives::script::TapScriptTag +pub fn bitcoin_primitives::script::TapScriptTag::cmp(&self, other: &bitcoin_primitives::script::TapScriptTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::TapScriptTag::eq(&self, other: &bitcoin_primitives::script::TapScriptTag) -> bool +pub fn bitcoin_primitives::script::TapScriptTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::TapScriptTag::partial_cmp(&self, other: &bitcoin_primitives::script::TapScriptTag) -> core::option::Option +pub fn bitcoin_primitives::script::WScriptHash::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::script::WScriptHash::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::script::WScriptHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::WScriptHash::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::script::WScriptHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::script::WScriptHash::clone(&self) -> bitcoin_primitives::script::WScriptHash +pub fn bitcoin_primitives::script::WScriptHash::cmp(&self, other: &bitcoin_primitives::script::WScriptHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::WScriptHash::deserialize>(d: D) -> core::result::Result::Error> +pub fn bitcoin_primitives::script::WScriptHash::eq(&self, other: &bitcoin_primitives::script::WScriptHash) -> bool +pub fn bitcoin_primitives::script::WScriptHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::WScriptHash::from_script(witness_script: &bitcoin_primitives::script::WitnessScript) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::from_script_unchecked(script: &bitcoin_primitives::script::WitnessScript) -> Self +pub fn bitcoin_primitives::script::WScriptHash::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::WScriptHash::partial_cmp(&self, other: &bitcoin_primitives::script::WScriptHash) -> core::option::Option +pub fn bitcoin_primitives::script::WScriptHash::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_primitives::script::WScriptHash::try_from(witness_script: &bitcoin_primitives::script::WitnessScript) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::try_from(witness_script: &bitcoin_primitives::script::WitnessScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::try_from(witness_script: bitcoin_primitives::script::WitnessScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::WitnessScriptSizeError::clone(&self) -> bitcoin_primitives::script::WitnessScriptSizeError +pub fn bitcoin_primitives::script::WitnessScriptSizeError::eq(&self, other: &bitcoin_primitives::script::WitnessScriptSizeError) -> bool +pub fn bitcoin_primitives::script::WitnessScriptSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::WitnessScriptSizeError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::script::WitnessScriptSizeError::invalid_size(&self) -> usize +pub fn bitcoin_primitives::script::WitnessScriptTag::clone(&self) -> bitcoin_primitives::script::WitnessScriptTag +pub fn bitcoin_primitives::script::WitnessScriptTag::cmp(&self, other: &bitcoin_primitives::script::WitnessScriptTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::WitnessScriptTag::eq(&self, other: &bitcoin_primitives::script::WitnessScriptTag) -> bool +pub fn bitcoin_primitives::script::WitnessScriptTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::WitnessScriptTag::partial_cmp(&self, other: &bitcoin_primitives::script::WitnessScriptTag) -> core::option::Option +pub fn bitcoin_primitives::transaction::OutPoint::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::transaction::OutPoint::clone(&self) -> bitcoin_primitives::transaction::OutPoint +pub fn bitcoin_primitives::transaction::OutPoint::cmp(&self, other: &bitcoin_primitives::transaction::OutPoint) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::OutPoint::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::OutPoint::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_primitives::transaction::OutPoint::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::OutPoint::eq(&self, other: &bitcoin_primitives::transaction::OutPoint) -> bool +pub fn bitcoin_primitives::transaction::OutPoint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::OutPoint::from_str(s: &str) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPoint::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::OutPoint::partial_cmp(&self, other: &bitcoin_primitives::transaction::OutPoint) -> core::option::Option +pub fn bitcoin_primitives::transaction::OutPoint::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_primitives::transaction::OutPointDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::OutPointDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPointDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPointDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::OutPointDecoderError::clone(&self) -> bitcoin_primitives::transaction::OutPointDecoderError +pub fn bitcoin_primitives::transaction::OutPointDecoderError::eq(&self, other: &bitcoin_primitives::transaction::OutPointDecoderError) -> bool +pub fn bitcoin_primitives::transaction::OutPointDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::OutPointDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::OutPointEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::OutPointEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::ParseOutPointError::clone(&self) -> bitcoin_primitives::transaction::ParseOutPointError +pub fn bitcoin_primitives::transaction::ParseOutPointError::eq(&self, other: &bitcoin_primitives::transaction::ParseOutPointError) -> bool +pub fn bitcoin_primitives::transaction::ParseOutPointError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::ParseOutPointError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::ParseOutPointError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::Transaction::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::transaction::Transaction::clone(&self) -> bitcoin_primitives::transaction::Transaction +pub fn bitcoin_primitives::transaction::Transaction::cmp(&self, other: &Self) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::Transaction::compute_ntxid(&self) -> bitcoin_primitives::Ntxid +pub fn bitcoin_primitives::transaction::Transaction::compute_txid(&self) -> bitcoin_primitives::Txid +pub fn bitcoin_primitives::transaction::Transaction::compute_wtxid(&self) -> bitcoin_primitives::Wtxid +pub fn bitcoin_primitives::transaction::Transaction::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::Transaction::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::Transaction::eq(&self, other: &bitcoin_primitives::transaction::Transaction) -> bool +pub fn bitcoin_primitives::transaction::Transaction::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::Transaction::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::Transaction::is_coinbase(&self) -> bool +pub fn bitcoin_primitives::transaction::Transaction::partial_cmp(&self, other: &Self) -> core::option::Option +pub fn bitcoin_primitives::transaction::TransactionDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TransactionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TransactionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TransactionDecoderError::clone(&self) -> bitcoin_primitives::transaction::TransactionDecoderError +pub fn bitcoin_primitives::transaction::TransactionDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TransactionDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TransactionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::VecDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::VecDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_primitives::transaction::VersionDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_primitives::witness::WitnessDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_units::locktime::absolute::error::LockTimeDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::TransactionEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::TransactionEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::TxIn::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::transaction::TxIn::clone(&self) -> bitcoin_primitives::transaction::TxIn +pub fn bitcoin_primitives::transaction::TxIn::cmp(&self, other: &bitcoin_primitives::transaction::TxIn) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::TxIn::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::TxIn::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::TxIn::eq(&self, other: &bitcoin_primitives::transaction::TxIn) -> bool +pub fn bitcoin_primitives::transaction::TxIn::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxIn::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::TxIn::partial_cmp(&self, other: &bitcoin_primitives::transaction::TxIn) -> core::option::Option +pub fn bitcoin_primitives::transaction::TxInDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxInDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxInDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxInDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxInDecoderError +pub fn bitcoin_primitives::transaction::TxInDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxInDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxInDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxInDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TxInDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::TxInEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::TxInEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxMerkleNodeDecoderError +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxMerkleNodeDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::TxOut::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::transaction::TxOut::clone(&self) -> bitcoin_primitives::transaction::TxOut +pub fn bitcoin_primitives::transaction::TxOut::cmp(&self, other: &bitcoin_primitives::transaction::TxOut) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::TxOut::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::TxOut::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::TxOut::eq(&self, other: &bitcoin_primitives::transaction::TxOut) -> bool +pub fn bitcoin_primitives::transaction::TxOut::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxOut::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::TxOut::partial_cmp(&self, other: &bitcoin_primitives::transaction::TxOut) -> core::option::Option +pub fn bitcoin_primitives::transaction::TxOutDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxOutDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxOutDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxOutDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxOutDecoderError +pub fn bitcoin_primitives::transaction::TxOutDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxOutDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxOutDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxOutDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TxOutDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::TxOutEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::TxOutEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::Version::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::transaction::Version::clone(&self) -> bitcoin_primitives::transaction::Version +pub fn bitcoin_primitives::transaction::Version::cmp(&self, other: &bitcoin_primitives::transaction::Version) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::Version::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::Version::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> +pub fn bitcoin_primitives::transaction::Version::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::Version::eq(&self, other: &bitcoin_primitives::transaction::Version) -> bool +pub fn bitcoin_primitives::transaction::Version::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::Version::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::Version::partial_cmp(&self, other: &bitcoin_primitives::transaction::Version) -> core::option::Option +pub fn bitcoin_primitives::transaction::Version::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer +pub fn bitcoin_primitives::transaction::VersionDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::VersionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::VersionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::VersionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::VersionDecoderError::clone(&self) -> bitcoin_primitives::transaction::VersionDecoderError +pub fn bitcoin_primitives::transaction::VersionDecoderError::eq(&self, other: &bitcoin_primitives::transaction::VersionDecoderError) -> bool +pub fn bitcoin_primitives::transaction::VersionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::VersionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::VersionDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::transaction::VersionEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::VersionEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::WitnessesEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::WitnessesEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::WitnessesEncoder<'e>::new(inputs: &'e [bitcoin_primitives::transaction::TxIn]) -> Self +pub fn bitcoin_primitives::witness::Iter<'a>::clone(&self) -> bitcoin_primitives::witness::Iter<'a> +pub fn bitcoin_primitives::witness::Iter<'a>::next(&mut self) -> core::option::Option +pub fn bitcoin_primitives::witness::Iter<'a>::size_hint(&self) -> (usize, core::option::Option) +pub fn bitcoin_primitives::witness::UnexpectedEofError::clone(&self) -> bitcoin_primitives::witness::UnexpectedEofError +pub fn bitcoin_primitives::witness::UnexpectedEofError::eq(&self, other: &bitcoin_primitives::witness::UnexpectedEofError) -> bool +pub fn bitcoin_primitives::witness::UnexpectedEofError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::witness::Witness::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_primitives::witness::Witness::clear(&mut self) +pub fn bitcoin_primitives::witness::Witness::clone(&self) -> bitcoin_primitives::witness::Witness +pub fn bitcoin_primitives::witness::Witness::cmp(&self, other: &bitcoin_primitives::witness::Witness) -> core::cmp::Ordering +pub fn bitcoin_primitives::witness::Witness::decoder() -> Self::Decoder +pub fn bitcoin_primitives::witness::Witness::default() -> Self +pub fn bitcoin_primitives::witness::Witness::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_primitives::witness::Witness::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::witness::Witness::eq(&self, other: &bitcoin_primitives::witness::Witness) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &&[T; N]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &&[T]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &[T; N]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &[T]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::boxed::Box<[T]>) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::rc::Rc<[T]>) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::sync::Arc<[T]>) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::vec::Vec) -> bool +pub fn bitcoin_primitives::witness::Witness::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::witness::Witness::from(arr: &[&[u8]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(arr: [&[u8]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[&[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[&[u8; N]]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[&[u8]]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[[u8; N]]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[alloc::vec::Vec]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: [&[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: [[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(vec: alloc::vec::Vec<&[u8]>) -> Self +pub fn bitcoin_primitives::witness::Witness::from(vec: alloc::vec::Vec>) -> Self +pub fn bitcoin_primitives::witness::Witness::from_hex(iter: I) -> core::result::Result where I: core::iter::traits::collect::IntoIterator, T: core::convert::AsRef +pub fn bitcoin_primitives::witness::Witness::from_iter>(iter: I) -> Self +pub fn bitcoin_primitives::witness::Witness::from_slice>(slice: &[T]) -> Self +pub fn bitcoin_primitives::witness::Witness::get(&self, index: usize) -> core::option::Option<&[u8]> +pub fn bitcoin_primitives::witness::Witness::get_back(&self, index: usize) -> core::option::Option<&[u8]> +pub fn bitcoin_primitives::witness::Witness::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::witness::Witness::index(&self, index: usize) -> &Self::Output +pub fn bitcoin_primitives::witness::Witness::is_empty(&self) -> bool +pub fn bitcoin_primitives::witness::Witness::iter(&self) -> bitcoin_primitives::witness::Iter<'_> +pub fn bitcoin_primitives::witness::Witness::last(&self) -> core::option::Option<&[u8]> +pub fn bitcoin_primitives::witness::Witness::partial_cmp(&self, other: &bitcoin_primitives::witness::Witness) -> core::option::Option +pub fn bitcoin_primitives::witness::Witness::push>(&mut self, new_element: T) +pub fn bitcoin_primitives::witness::Witness::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_primitives::witness::Witness::size(&self) -> usize +pub fn bitcoin_primitives::witness::Witness::to_vec(&self) -> alloc::vec::Vec> +pub fn bitcoin_primitives::witness::WitnessDecoder::default() -> Self +pub fn bitcoin_primitives::witness::WitnessDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::witness::WitnessDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::witness::WitnessDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::witness::WitnessDecoderError::clone(&self) -> bitcoin_primitives::witness::WitnessDecoderError +pub fn bitcoin_primitives::witness::WitnessDecoderError::eq(&self, other: &bitcoin_primitives::witness::WitnessDecoderError) -> bool +pub fn bitcoin_primitives::witness::WitnessDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::witness::WitnessDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::witness::WitnessDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_primitives::witness::WitnessEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_primitives::witness::WitnessEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn u32::from(version: bitcoin_primitives::transaction::Version) -> Self +pub mod bitcoin_primitives +pub mod bitcoin_primitives::block +pub mod bitcoin_primitives::merkle_tree +pub mod bitcoin_primitives::pow +pub mod bitcoin_primitives::script +pub mod bitcoin_primitives::transaction +pub mod bitcoin_primitives::witness +pub struct bitcoin_primitives::Block where V: bitcoin_primitives::block::Validation +pub struct bitcoin_primitives::BlockHash(_) +pub struct bitcoin_primitives::BlockHeader +pub struct bitcoin_primitives::BlockVersion(_) +pub struct bitcoin_primitives::CompactTarget(_) +pub struct bitcoin_primitives::Ntxid(_) +pub struct bitcoin_primitives::OutPoint +pub struct bitcoin_primitives::Transaction +pub struct bitcoin_primitives::TransactionVersion(_) +pub struct bitcoin_primitives::TxIn +pub struct bitcoin_primitives::TxMerkleNode(_) +pub struct bitcoin_primitives::TxOut +pub struct bitcoin_primitives::Txid(_) +pub struct bitcoin_primitives::Witness +pub struct bitcoin_primitives::WitnessCommitment(_) +pub struct bitcoin_primitives::WitnessMerkleNode(_) +pub struct bitcoin_primitives::Wtxid(_) +pub struct bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation +pub struct bitcoin_primitives::block::BlockDecoder(_) +pub struct bitcoin_primitives::block::BlockDecoderError(_) +pub struct bitcoin_primitives::block::BlockEncoder<'e>(_) +pub struct bitcoin_primitives::block::BlockHash(_) +pub struct bitcoin_primitives::block::BlockHashDecoder(_) +pub struct bitcoin_primitives::block::BlockHashDecoderError(_) +pub struct bitcoin_primitives::block::BlockHashEncoder(_) +pub struct bitcoin_primitives::block::Header +pub struct bitcoin_primitives::block::HeaderDecoder(_) +pub struct bitcoin_primitives::block::HeaderEncoder(_) +pub struct bitcoin_primitives::block::Version(_) +pub struct bitcoin_primitives::block::VersionDecoder(_) +pub struct bitcoin_primitives::block::VersionDecoderError(_) +pub struct bitcoin_primitives::block::VersionEncoder(_) +pub struct bitcoin_primitives::block::WitnessCommitment(_) +pub struct bitcoin_primitives::merkle_tree::TxMerkleNode(_) +pub struct bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder(_) +pub struct bitcoin_primitives::merkle_tree::WitnessMerkleNode(_) +pub struct bitcoin_primitives::pow::CompactTarget(_) +pub struct bitcoin_primitives::pow::CompactTargetDecoder(_) +pub struct bitcoin_primitives::pow::CompactTargetDecoderError(_) +pub struct bitcoin_primitives::pow::CompactTargetEncoder(_) +pub struct bitcoin_primitives::script::RedeemScriptSizeError +pub struct bitcoin_primitives::script::ScriptBuf(_, _) +pub struct bitcoin_primitives::script::ScriptBufDecoder(_, _) +pub struct bitcoin_primitives::script::ScriptBufDecoderError(_) +pub struct bitcoin_primitives::script::ScriptEncoder<'e>(_) +pub struct bitcoin_primitives::script::ScriptHash(_) +pub struct bitcoin_primitives::script::WScriptHash(_) +pub struct bitcoin_primitives::script::WitnessScriptSizeError +pub struct bitcoin_primitives::transaction::BlockHashDecoder(_) +pub struct bitcoin_primitives::transaction::BlockHashDecoderError(_) +pub struct bitcoin_primitives::transaction::Ntxid(_) +pub struct bitcoin_primitives::transaction::OutPoint +pub struct bitcoin_primitives::transaction::OutPointDecoder(_) +pub struct bitcoin_primitives::transaction::OutPointDecoderError(_) +pub struct bitcoin_primitives::transaction::OutPointEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::Transaction +pub struct bitcoin_primitives::transaction::TransactionDecoder +pub struct bitcoin_primitives::transaction::TransactionDecoderError(_) +pub struct bitcoin_primitives::transaction::TransactionEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::TxIn +pub struct bitcoin_primitives::transaction::TxInDecoder(_) +pub struct bitcoin_primitives::transaction::TxInDecoderError(_) +pub struct bitcoin_primitives::transaction::TxInEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::TxMerkleNodeDecoder(_) +pub struct bitcoin_primitives::transaction::TxMerkleNodeDecoderError(_) +pub struct bitcoin_primitives::transaction::TxOut +pub struct bitcoin_primitives::transaction::TxOutDecoder(_) +pub struct bitcoin_primitives::transaction::TxOutDecoderError(_) +pub struct bitcoin_primitives::transaction::TxOutEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::Txid(_) +pub struct bitcoin_primitives::transaction::Version(_) +pub struct bitcoin_primitives::transaction::VersionDecoder(_) +pub struct bitcoin_primitives::transaction::VersionDecoderError(_) +pub struct bitcoin_primitives::transaction::VersionEncoder(_) +pub struct bitcoin_primitives::transaction::WitnessesEncoder<'e> +pub struct bitcoin_primitives::transaction::Wtxid(_) +pub struct bitcoin_primitives::witness::Iter<'a> +pub struct bitcoin_primitives::witness::UnexpectedEofError +pub struct bitcoin_primitives::witness::Witness +pub struct bitcoin_primitives::witness::WitnessDecoder +pub struct bitcoin_primitives::witness::WitnessDecoderError(_) +pub struct bitcoin_primitives::witness::WitnessEncoder<'a>(_) +pub trait bitcoin_primitives::BlockValidation: bitcoin_primitives::block::sealed::Validation + core::marker::Sync + core::marker::Send + core::marker::Sized + core::marker::Unpin +pub trait bitcoin_primitives::block::Validation: bitcoin_primitives::block::sealed::Validation + core::marker::Sync + core::marker::Send + core::marker::Sized + core::marker::Unpin +pub trait bitcoin_primitives::script::ScriptHashableTag: bitcoin_primitives::script::sealed::Sealed +pub trait bitcoin_primitives::script::Tag +pub type &'a bitcoin_primitives::witness::Witness::IntoIter = bitcoin_primitives::witness::Iter<'a> +pub type &'a bitcoin_primitives::witness::Witness::Item = &'a [u8] +pub type bitcoin_primitives::BlockHash::Decoder = bitcoin_primitives::block::BlockHashDecoder +pub type bitcoin_primitives::BlockHash::Encoder<'e> = bitcoin_primitives::block::BlockHashEncoder +pub type bitcoin_primitives::BlockHash::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::Ntxid::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::RedeemScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::RedeemScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::ScriptPubKey = bitcoin_primitives::script::Script +pub type bitcoin_primitives::ScriptPubKeyBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::ScriptSig = bitcoin_primitives::script::Script +pub type bitcoin_primitives::ScriptSigBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::TapScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::TapScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::TxMerkleNode::Decoder = bitcoin_primitives::transaction::TxMerkleNodeDecoder +pub type bitcoin_primitives::TxMerkleNode::Encoder<'e> = bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +pub type bitcoin_primitives::TxMerkleNode::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::Txid::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::WitnessCommitment::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::WitnessMerkleNode::Decoder = bitcoin_primitives::hash_types::witness_merkle_node::WitnessMerkleNodeDecoder +pub type bitcoin_primitives::WitnessMerkleNode::Encoder<'e> = bitcoin_primitives::hash_types::witness_merkle_node::WitnessMerkleNodeEncoder +pub type bitcoin_primitives::WitnessMerkleNode::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::WitnessScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::WitnessScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::Wtxid::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::block::Block::Decoder = bitcoin_primitives::block::BlockDecoder +pub type bitcoin_primitives::block::Block::Encoder<'e> where Self: 'e = bitcoin_consensus_encoding::encode::encoders::Encoder2>> +pub type bitcoin_primitives::block::BlockDecoder::Error = bitcoin_primitives::block::BlockDecoderError +pub type bitcoin_primitives::block::BlockDecoder::Output = bitcoin_primitives::block::Block +pub type bitcoin_primitives::block::BlockHashDecoder::Error = bitcoin_primitives::block::BlockHashDecoderError +pub type bitcoin_primitives::block::BlockHashDecoder::Output = bitcoin_primitives::BlockHash +pub type bitcoin_primitives::block::Header::Decoder = bitcoin_primitives::block::HeaderDecoder +pub type bitcoin_primitives::block::Header::Encoder<'e> = bitcoin_primitives::block::HeaderEncoder +pub type bitcoin_primitives::block::HeaderDecoder::Error = bitcoin_primitives::block::HeaderDecoderError +pub type bitcoin_primitives::block::HeaderDecoder::Output = bitcoin_primitives::block::Header +pub type bitcoin_primitives::block::Version::Decoder = bitcoin_primitives::block::VersionDecoder +pub type bitcoin_primitives::block::Version::Encoder<'e> = bitcoin_primitives::block::VersionEncoder +pub type bitcoin_primitives::block::VersionDecoder::Error = bitcoin_primitives::block::VersionDecoderError +pub type bitcoin_primitives::block::VersionDecoder::Output = bitcoin_primitives::block::Version +pub type bitcoin_primitives::pow::CompactTarget::Decoder = bitcoin_primitives::pow::CompactTargetDecoder +pub type bitcoin_primitives::pow::CompactTarget::Encoder<'e> = bitcoin_primitives::pow::CompactTargetEncoder +pub type bitcoin_primitives::pow::CompactTargetDecoder::Error = bitcoin_primitives::pow::CompactTargetDecoderError +pub type bitcoin_primitives::pow::CompactTargetDecoder::Output = bitcoin_primitives::pow::CompactTarget +pub type bitcoin_primitives::script::RedeemScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::RedeemScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::Script::Encoder<'a> where Self: 'a = bitcoin_primitives::script::ScriptEncoder<'a> +pub type bitcoin_primitives::script::Script::Output = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::Script::Owned = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptBuf::Decoder = bitcoin_primitives::script::ScriptBufDecoder +pub type bitcoin_primitives::script::ScriptBuf::Target = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::ScriptBufDecoder::Error = bitcoin_primitives::script::ScriptBufDecoderError +pub type bitcoin_primitives::script::ScriptBufDecoder::Output = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptHash::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::script::ScriptHash::Error = bitcoin_primitives::script::RedeemScriptSizeError +pub type bitcoin_primitives::script::ScriptPubKey = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::ScriptPubKeyBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptPubKeyBufDecoder = bitcoin_primitives::script::ScriptBufDecoder +pub type bitcoin_primitives::script::ScriptSig = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::ScriptSigBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptSigBufDecoder = bitcoin_primitives::script::ScriptBufDecoder +pub type bitcoin_primitives::script::TapScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::TapScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::WScriptHash::Err = hex_conservative::error::DecodeFixedLengthBytesError +pub type bitcoin_primitives::script::WScriptHash::Error = bitcoin_primitives::script::WitnessScriptSizeError +pub type bitcoin_primitives::script::WitnessScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::WitnessScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::transaction::OutPoint::Decoder = bitcoin_primitives::transaction::OutPointDecoder +pub type bitcoin_primitives::transaction::OutPoint::Encoder<'e> where Self: 'e = bitcoin_primitives::transaction::OutPointEncoder<'e> +pub type bitcoin_primitives::transaction::OutPoint::Err = bitcoin_primitives::transaction::ParseOutPointError +pub type bitcoin_primitives::transaction::OutPointDecoder::Error = bitcoin_primitives::transaction::OutPointDecoderError +pub type bitcoin_primitives::transaction::OutPointDecoder::Output = bitcoin_primitives::transaction::OutPoint +pub type bitcoin_primitives::transaction::Transaction::Decoder = bitcoin_primitives::transaction::TransactionDecoder +pub type bitcoin_primitives::transaction::Transaction::Encoder<'e> where Self: 'e = bitcoin_primitives::transaction::TransactionEncoder<'e> +pub type bitcoin_primitives::transaction::TransactionDecoder::Error = bitcoin_primitives::transaction::TransactionDecoderError +pub type bitcoin_primitives::transaction::TransactionDecoder::Output = bitcoin_primitives::transaction::Transaction +pub type bitcoin_primitives::transaction::TxIn::Decoder = bitcoin_primitives::transaction::TxInDecoder +pub type bitcoin_primitives::transaction::TxIn::Encoder<'e> where Self: 'e = bitcoin_consensus_encoding::encode::encoders::Encoder3, bitcoin_primitives::script::ScriptEncoder<'e>, bitcoin_units::sequence::SequenceEncoder> +pub type bitcoin_primitives::transaction::TxInDecoder::Error = bitcoin_primitives::transaction::TxInDecoderError +pub type bitcoin_primitives::transaction::TxInDecoder::Output = bitcoin_primitives::transaction::TxIn +pub type bitcoin_primitives::transaction::TxMerkleNodeDecoder::Error = bitcoin_primitives::transaction::TxMerkleNodeDecoderError +pub type bitcoin_primitives::transaction::TxMerkleNodeDecoder::Output = bitcoin_primitives::TxMerkleNode +pub type bitcoin_primitives::transaction::TxOut::Decoder = bitcoin_primitives::transaction::TxOutDecoder +pub type bitcoin_primitives::transaction::TxOut::Encoder<'e> where Self: 'e = bitcoin_consensus_encoding::encode::encoders::Encoder2> +pub type bitcoin_primitives::transaction::TxOutDecoder::Error = bitcoin_primitives::transaction::TxOutDecoderError +pub type bitcoin_primitives::transaction::TxOutDecoder::Output = bitcoin_primitives::transaction::TxOut +pub type bitcoin_primitives::transaction::Version::Decoder = bitcoin_primitives::transaction::VersionDecoder +pub type bitcoin_primitives::transaction::Version::Encoder<'e> = bitcoin_primitives::transaction::VersionEncoder +pub type bitcoin_primitives::transaction::VersionDecoder::Error = bitcoin_primitives::transaction::VersionDecoderError +pub type bitcoin_primitives::transaction::VersionDecoder::Output = bitcoin_primitives::transaction::Version +pub type bitcoin_primitives::witness::Iter<'a>::Item = &'a [u8] +pub type bitcoin_primitives::witness::Witness::Decoder = bitcoin_primitives::witness::WitnessDecoder +pub type bitcoin_primitives::witness::Witness::Encoder<'a> where Self: 'a = bitcoin_primitives::witness::WitnessEncoder<'a> +pub type bitcoin_primitives::witness::Witness::Output = [u8] +pub type bitcoin_primitives::witness::WitnessDecoder::Error = bitcoin_primitives::witness::WitnessDecoderError +pub type bitcoin_primitives::witness::WitnessDecoder::Output = bitcoin_primitives::witness::Witness +pub use bitcoin_primitives::Amount +pub use bitcoin_primitives::BlockHeight +pub use bitcoin_primitives::BlockHeightInterval +pub use bitcoin_primitives::BlockMtp +pub use bitcoin_primitives::BlockMtpInterval +pub use bitcoin_primitives::BlockTime +pub use bitcoin_primitives::BlockTimeDecoder +pub use bitcoin_primitives::BlockTimeDecoderError +pub use bitcoin_primitives::FeeRate +pub use bitcoin_primitives::NumOpResult +pub use bitcoin_primitives::Sequence +pub use bitcoin_primitives::SignedAmount +pub use bitcoin_primitives::Weight +pub use bitcoin_primitives::absolute +pub use bitcoin_primitives::amount +pub use bitcoin_primitives::block::BlockHeight +pub use bitcoin_primitives::block::BlockHeightDecoder +pub use bitcoin_primitives::block::BlockHeightDecoderError +pub use bitcoin_primitives::block::BlockHeightEncoder +pub use bitcoin_primitives::block::BlockHeightInterval +pub use bitcoin_primitives::block::BlockMtp +pub use bitcoin_primitives::block::BlockMtpInterval +pub use bitcoin_primitives::block::TooBigForRelativeHeightError +pub use bitcoin_primitives::fee_rate +pub use bitcoin_primitives::locktime +pub use bitcoin_primitives::parse_int +pub use bitcoin_primitives::relative +pub use bitcoin_primitives::result +pub use bitcoin_primitives::sequence +pub use bitcoin_primitives::time +pub use bitcoin_primitives::weight diff --git a/api/primitives/alloc-only.txt b/api/primitives/alloc-only.txt new file mode 100644 index 0000000000..dc3dc482c1 --- /dev/null +++ b/api/primitives/alloc-only.txt @@ -0,0 +1,1890 @@ +#[non_exhaustive] pub enum bitcoin_primitives::block::HeaderDecoderError +#[non_exhaustive] pub enum bitcoin_primitives::block::InvalidBlockError +#[repr(transparent)] pub struct bitcoin_primitives::script::Script(_, _) +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::BlockHash +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::TxMerkleNode +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::WitnessMerkleNode +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Block +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Header +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Version +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::pow::CompactTarget +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::OutPoint +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::Transaction +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::TxIn +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::TxOut +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::Version +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::witness::Witness +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::BlockDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::BlockHashDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::HeaderDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::VersionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::pow::CompactTargetDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::OutPointDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TransactionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxInDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxOutDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::VersionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::witness::WitnessDecoder +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::BlockHash +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::TxMerkleNode +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::WitnessMerkleNode +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Block +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Header +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Version +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::pow::CompactTarget +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::OutPoint +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::Transaction +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::TxIn +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::TxOut +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::Version +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::witness::Witness +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::BlockHashEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::HeaderEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::VersionEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::pow::CompactTargetEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::VersionEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::WitnessesEncoder<'_> +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::witness::WitnessEncoder<'_> +impl bitcoin_primitives::BlockHash +impl bitcoin_primitives::Ntxid +impl bitcoin_primitives::TxMerkleNode +impl bitcoin_primitives::Txid +impl bitcoin_primitives::WitnessCommitment +impl bitcoin_primitives::WitnessMerkleNode +impl bitcoin_primitives::Wtxid +impl bitcoin_primitives::block::Block +impl bitcoin_primitives::block::Block +impl bitcoin_primitives::block::BlockHashDecoder +impl bitcoin_primitives::block::Header +impl bitcoin_primitives::block::Validation for bitcoin_primitives::block::Checked +impl bitcoin_primitives::block::Validation for bitcoin_primitives::block::Unchecked +impl bitcoin_primitives::block::Version +impl bitcoin_primitives::block::VersionDecoder +impl bitcoin_primitives::pow::CompactTarget +impl bitcoin_primitives::pow::CompactTargetDecoder +impl bitcoin_primitives::script::RedeemScriptSizeError +impl bitcoin_primitives::script::ScriptHash +impl bitcoin_primitives::script::ScriptHashableTag for bitcoin_primitives::script::RedeemScriptTag +impl bitcoin_primitives::script::ScriptHashableTag for bitcoin_primitives::script::ScriptPubKeyTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::RedeemScriptTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::ScriptPubKeyTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::ScriptSigTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::TapScriptTag +impl bitcoin_primitives::script::Tag for bitcoin_primitives::script::WitnessScriptTag +impl bitcoin_primitives::script::WScriptHash +impl bitcoin_primitives::script::WitnessScriptSizeError +impl bitcoin_primitives::transaction::OutPoint +impl bitcoin_primitives::transaction::OutPointDecoder +impl bitcoin_primitives::transaction::Transaction +impl bitcoin_primitives::transaction::TransactionDecoder +impl bitcoin_primitives::transaction::TxIn +impl bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl bitcoin_primitives::transaction::Version +impl bitcoin_primitives::transaction::VersionDecoder +impl bitcoin_primitives::witness::Witness +impl bitcoin_primitives::witness::WitnessDecoder +impl core::borrow::Borrow<[u8; 20]> for bitcoin_primitives::script::ScriptHash +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::BlockHash +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Ntxid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::TxMerkleNode +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Txid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::WitnessCommitment +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::WitnessMerkleNode +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Wtxid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::script::WScriptHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::BlockHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Ntxid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::TxMerkleNode +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Txid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::WitnessCommitment +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::WitnessMerkleNode +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Wtxid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::script::ScriptHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::script::WScriptHash +impl core::clone::Clone for bitcoin_primitives::BlockHash +impl core::clone::Clone for bitcoin_primitives::Ntxid +impl core::clone::Clone for bitcoin_primitives::TxMerkleNode +impl core::clone::Clone for bitcoin_primitives::Txid +impl core::clone::Clone for bitcoin_primitives::WitnessCommitment +impl core::clone::Clone for bitcoin_primitives::WitnessMerkleNode +impl core::clone::Clone for bitcoin_primitives::Wtxid +impl core::clone::Clone for bitcoin_primitives::block::BlockDecoderError +impl core::clone::Clone for bitcoin_primitives::block::BlockHashDecoderError +impl core::clone::Clone for bitcoin_primitives::block::Checked +impl core::clone::Clone for bitcoin_primitives::block::Header +impl core::clone::Clone for bitcoin_primitives::block::HeaderDecoderError +impl core::clone::Clone for bitcoin_primitives::block::InvalidBlockError +impl core::clone::Clone for bitcoin_primitives::block::Unchecked +impl core::clone::Clone for bitcoin_primitives::block::Version +impl core::clone::Clone for bitcoin_primitives::block::VersionDecoderError +impl core::clone::Clone for bitcoin_primitives::pow::CompactTarget +impl core::clone::Clone for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::clone::Clone for bitcoin_primitives::script::RedeemScriptSizeError +impl core::clone::Clone for bitcoin_primitives::script::RedeemScriptTag +impl core::clone::Clone for bitcoin_primitives::script::ScriptBufDecoderError +impl core::clone::Clone for bitcoin_primitives::script::ScriptHash +impl core::clone::Clone for bitcoin_primitives::script::ScriptPubKeyTag +impl core::clone::Clone for bitcoin_primitives::script::ScriptSigTag +impl core::clone::Clone for bitcoin_primitives::script::TapScriptTag +impl core::clone::Clone for bitcoin_primitives::script::WScriptHash +impl core::clone::Clone for bitcoin_primitives::script::WitnessScriptSizeError +impl core::clone::Clone for bitcoin_primitives::script::WitnessScriptTag +impl core::clone::Clone for bitcoin_primitives::transaction::OutPoint +impl core::clone::Clone for bitcoin_primitives::transaction::OutPointDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::Transaction +impl core::clone::Clone for bitcoin_primitives::transaction::TransactionDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxIn +impl core::clone::Clone for bitcoin_primitives::transaction::TxInDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxOut +impl core::clone::Clone for bitcoin_primitives::transaction::TxOutDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::Version +impl core::clone::Clone for bitcoin_primitives::transaction::VersionDecoderError +impl core::clone::Clone for bitcoin_primitives::witness::UnexpectedEofError +impl core::clone::Clone for bitcoin_primitives::witness::Witness +impl core::clone::Clone for bitcoin_primitives::witness::WitnessDecoderError +impl core::cmp::Eq for bitcoin_primitives::BlockHash +impl core::cmp::Eq for bitcoin_primitives::Ntxid +impl core::cmp::Eq for bitcoin_primitives::TxMerkleNode +impl core::cmp::Eq for bitcoin_primitives::Txid +impl core::cmp::Eq for bitcoin_primitives::WitnessCommitment +impl core::cmp::Eq for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::Eq for bitcoin_primitives::Wtxid +impl core::cmp::Eq for bitcoin_primitives::block::BlockDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::BlockHashDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::Checked +impl core::cmp::Eq for bitcoin_primitives::block::Header +impl core::cmp::Eq for bitcoin_primitives::block::HeaderDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::InvalidBlockError +impl core::cmp::Eq for bitcoin_primitives::block::Unchecked +impl core::cmp::Eq for bitcoin_primitives::block::Version +impl core::cmp::Eq for bitcoin_primitives::block::VersionDecoderError +impl core::cmp::Eq for bitcoin_primitives::pow::CompactTarget +impl core::cmp::Eq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::cmp::Eq for bitcoin_primitives::script::RedeemScriptSizeError +impl core::cmp::Eq for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::Eq for bitcoin_primitives::script::ScriptBufDecoderError +impl core::cmp::Eq for bitcoin_primitives::script::ScriptHash +impl core::cmp::Eq for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::Eq for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::Eq for bitcoin_primitives::script::TapScriptTag +impl core::cmp::Eq for bitcoin_primitives::script::WScriptHash +impl core::cmp::Eq for bitcoin_primitives::script::WitnessScriptSizeError +impl core::cmp::Eq for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::Eq for bitcoin_primitives::transaction::OutPoint +impl core::cmp::Eq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::Transaction +impl core::cmp::Eq for bitcoin_primitives::transaction::TransactionDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxIn +impl core::cmp::Eq for bitcoin_primitives::transaction::TxInDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxOut +impl core::cmp::Eq for bitcoin_primitives::transaction::TxOutDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::Version +impl core::cmp::Eq for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::Eq for bitcoin_primitives::witness::UnexpectedEofError +impl core::cmp::Eq for bitcoin_primitives::witness::Witness +impl core::cmp::Eq for bitcoin_primitives::witness::WitnessDecoderError +impl core::cmp::Ord for bitcoin_primitives::BlockHash +impl core::cmp::Ord for bitcoin_primitives::Ntxid +impl core::cmp::Ord for bitcoin_primitives::TxMerkleNode +impl core::cmp::Ord for bitcoin_primitives::Txid +impl core::cmp::Ord for bitcoin_primitives::WitnessCommitment +impl core::cmp::Ord for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::Ord for bitcoin_primitives::Wtxid +impl core::cmp::Ord for bitcoin_primitives::block::Checked +impl core::cmp::Ord for bitcoin_primitives::block::Header +impl core::cmp::Ord for bitcoin_primitives::block::Unchecked +impl core::cmp::Ord for bitcoin_primitives::block::Version +impl core::cmp::Ord for bitcoin_primitives::pow::CompactTarget +impl core::cmp::Ord for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::Ord for bitcoin_primitives::script::ScriptHash +impl core::cmp::Ord for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::Ord for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::Ord for bitcoin_primitives::script::TapScriptTag +impl core::cmp::Ord for bitcoin_primitives::script::WScriptHash +impl core::cmp::Ord for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::Ord for bitcoin_primitives::transaction::OutPoint +impl core::cmp::Ord for bitcoin_primitives::transaction::Transaction +impl core::cmp::Ord for bitcoin_primitives::transaction::TxIn +impl core::cmp::Ord for bitcoin_primitives::transaction::TxOut +impl core::cmp::Ord for bitcoin_primitives::transaction::Version +impl core::cmp::Ord for bitcoin_primitives::witness::Witness +impl core::cmp::PartialEq for bitcoin_primitives::BlockHash +impl core::cmp::PartialEq for bitcoin_primitives::Ntxid +impl core::cmp::PartialEq for bitcoin_primitives::TxMerkleNode +impl core::cmp::PartialEq for bitcoin_primitives::Txid +impl core::cmp::PartialEq for bitcoin_primitives::WitnessCommitment +impl core::cmp::PartialEq for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::PartialEq for bitcoin_primitives::Wtxid +impl core::cmp::PartialEq for bitcoin_primitives::block::BlockDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::BlockHashDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::Checked +impl core::cmp::PartialEq for bitcoin_primitives::block::Header +impl core::cmp::PartialEq for bitcoin_primitives::block::HeaderDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::InvalidBlockError +impl core::cmp::PartialEq for bitcoin_primitives::block::Unchecked +impl core::cmp::PartialEq for bitcoin_primitives::block::Version +impl core::cmp::PartialEq for bitcoin_primitives::block::VersionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::pow::CompactTarget +impl core::cmp::PartialEq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::script::RedeemScriptSizeError +impl core::cmp::PartialEq for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptBufDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptHash +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::PartialEq for bitcoin_primitives::script::TapScriptTag +impl core::cmp::PartialEq for bitcoin_primitives::script::WScriptHash +impl core::cmp::PartialEq for bitcoin_primitives::script::WitnessScriptSizeError +impl core::cmp::PartialEq for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::PartialEq for bitcoin_primitives::transaction::OutPoint +impl core::cmp::PartialEq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::Transaction +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TransactionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxIn +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxInDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxOut +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxOutDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::Version +impl core::cmp::PartialEq for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::witness::UnexpectedEofError +impl core::cmp::PartialEq for bitcoin_primitives::witness::Witness +impl core::cmp::PartialEq for bitcoin_primitives::witness::WitnessDecoderError +impl core::cmp::PartialOrd for bitcoin_primitives::BlockHash +impl core::cmp::PartialOrd for bitcoin_primitives::Ntxid +impl core::cmp::PartialOrd for bitcoin_primitives::TxMerkleNode +impl core::cmp::PartialOrd for bitcoin_primitives::Txid +impl core::cmp::PartialOrd for bitcoin_primitives::WitnessCommitment +impl core::cmp::PartialOrd for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::PartialOrd for bitcoin_primitives::Wtxid +impl core::cmp::PartialOrd for bitcoin_primitives::block::Checked +impl core::cmp::PartialOrd for bitcoin_primitives::block::Header +impl core::cmp::PartialOrd for bitcoin_primitives::block::Unchecked +impl core::cmp::PartialOrd for bitcoin_primitives::block::Version +impl core::cmp::PartialOrd for bitcoin_primitives::pow::CompactTarget +impl core::cmp::PartialOrd for bitcoin_primitives::script::RedeemScriptTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptHash +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptPubKeyTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptSigTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::TapScriptTag +impl core::cmp::PartialOrd for bitcoin_primitives::script::WScriptHash +impl core::cmp::PartialOrd for bitcoin_primitives::script::WitnessScriptTag +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::OutPoint +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::Transaction +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::TxIn +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::TxOut +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::Version +impl core::cmp::PartialOrd for bitcoin_primitives::witness::Witness +impl core::convert::AsRef<[u8; 20]> for bitcoin_primitives::script::ScriptHash +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::BlockHash +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Ntxid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::TxMerkleNode +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Txid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::WitnessCommitment +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::WitnessMerkleNode +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Wtxid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::script::WScriptHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::BlockHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Ntxid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::TxMerkleNode +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Txid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::WitnessCommitment +impl core::convert::AsRef<[u8]> for bitcoin_primitives::WitnessMerkleNode +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Wtxid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::ScriptHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::WScriptHash +impl core::convert::From<&[&[u8]]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[alloc::vec::Vec]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&bitcoin_primitives::block::Block> for bitcoin_primitives::BlockHash +impl core::convert::From<&bitcoin_primitives::block::Header> for bitcoin_primitives::BlockHash +impl core::convert::From<&bitcoin_primitives::transaction::Transaction> for bitcoin_primitives::Txid +impl core::convert::From<&bitcoin_primitives::transaction::Transaction> for bitcoin_primitives::Wtxid +impl core::convert::From> for bitcoin_primitives::witness::Witness +impl core::convert::From>> for bitcoin_primitives::witness::Witness +impl core::convert::From for bitcoin_primitives::script::ScriptBufDecoderError +impl core::convert::From for bitcoin_primitives::block::BlockHashDecoderError +impl core::convert::From for bitcoin_primitives::block::VersionDecoderError +impl core::convert::From for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::convert::From> for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From> for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::BlockHash +impl core::convert::From for bitcoin_primitives::BlockHash +impl core::convert::From for bitcoin_primitives::Txid +impl core::convert::From for bitcoin_primitives::Wtxid +impl core::convert::From for u32 +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::block::BlockDecoderError +impl core::convert::From for bitcoin_primitives::block::BlockHashDecoderError +impl core::convert::From for bitcoin_primitives::block::HeaderDecoderError +impl core::convert::From for bitcoin_primitives::block::InvalidBlockError +impl core::convert::From for bitcoin_primitives::block::VersionDecoderError +impl core::convert::From for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::convert::From for bitcoin_primitives::script::RedeemScriptSizeError +impl core::convert::From for bitcoin_primitives::script::ScriptBufDecoderError +impl core::convert::From for bitcoin_primitives::script::WitnessScriptSizeError +impl core::convert::From for bitcoin_primitives::transaction::TransactionDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxInDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxOutDecoderError +impl core::convert::From for bitcoin_primitives::transaction::VersionDecoderError +impl core::convert::From for bitcoin_primitives::witness::WitnessDecoderError +impl core::convert::TryFrom<&bitcoin_primitives::script::Script> for bitcoin_primitives::script::WScriptHash +impl core::convert::TryFrom<&bitcoin_primitives::script::ScriptBuf> for bitcoin_primitives::script::WScriptHash +impl core::convert::TryFrom> for bitcoin_primitives::script::WScriptHash +impl core::default::Default for bitcoin_primitives::block::BlockHashDecoder +impl core::default::Default for bitcoin_primitives::block::Version +impl core::default::Default for bitcoin_primitives::block::VersionDecoder +impl core::default::Default for bitcoin_primitives::pow::CompactTargetDecoder +impl core::default::Default for bitcoin_primitives::transaction::OutPointDecoder +impl core::default::Default for bitcoin_primitives::transaction::TransactionDecoder +impl core::default::Default for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::default::Default for bitcoin_primitives::transaction::VersionDecoder +impl core::default::Default for bitcoin_primitives::witness::Witness +impl core::default::Default for bitcoin_primitives::witness::WitnessDecoder +impl core::fmt::Debug for bitcoin_primitives::BlockHash +impl core::fmt::Debug for bitcoin_primitives::Ntxid +impl core::fmt::Debug for bitcoin_primitives::TxMerkleNode +impl core::fmt::Debug for bitcoin_primitives::Txid +impl core::fmt::Debug for bitcoin_primitives::WitnessCommitment +impl core::fmt::Debug for bitcoin_primitives::WitnessMerkleNode +impl core::fmt::Debug for bitcoin_primitives::Wtxid +impl core::fmt::Debug for bitcoin_primitives::block::BlockDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::BlockHashDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::Checked +impl core::fmt::Debug for bitcoin_primitives::block::Header +impl core::fmt::Debug for bitcoin_primitives::block::HeaderDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::InvalidBlockError +impl core::fmt::Debug for bitcoin_primitives::block::Unchecked +impl core::fmt::Debug for bitcoin_primitives::block::Version +impl core::fmt::Debug for bitcoin_primitives::block::VersionDecoderError +impl core::fmt::Debug for bitcoin_primitives::pow::CompactTarget +impl core::fmt::Debug for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::fmt::Debug for bitcoin_primitives::script::RedeemScriptSizeError +impl core::fmt::Debug for bitcoin_primitives::script::ScriptBufDecoderError +impl core::fmt::Debug for bitcoin_primitives::script::ScriptHash +impl core::fmt::Debug for bitcoin_primitives::script::WScriptHash +impl core::fmt::Debug for bitcoin_primitives::script::WitnessScriptSizeError +impl core::fmt::Debug for bitcoin_primitives::transaction::OutPoint +impl core::fmt::Debug for bitcoin_primitives::transaction::OutPointDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::Transaction +impl core::fmt::Debug for bitcoin_primitives::transaction::TransactionDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxIn +impl core::fmt::Debug for bitcoin_primitives::transaction::TxInDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxOut +impl core::fmt::Debug for bitcoin_primitives::transaction::TxOutDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::Version +impl core::fmt::Debug for bitcoin_primitives::transaction::VersionDecoderError +impl core::fmt::Debug for bitcoin_primitives::witness::UnexpectedEofError +impl core::fmt::Debug for bitcoin_primitives::witness::Witness +impl core::fmt::Debug for bitcoin_primitives::witness::WitnessDecoderError +impl core::fmt::Display for bitcoin_primitives::block::BlockDecoderError +impl core::fmt::Display for bitcoin_primitives::block::BlockHashDecoderError +impl core::fmt::Display for bitcoin_primitives::block::HeaderDecoderError +impl core::fmt::Display for bitcoin_primitives::block::InvalidBlockError +impl core::fmt::Display for bitcoin_primitives::block::VersionDecoderError +impl core::fmt::Display for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::fmt::Display for bitcoin_primitives::script::RedeemScriptSizeError +impl core::fmt::Display for bitcoin_primitives::script::ScriptBufDecoderError +impl core::fmt::Display for bitcoin_primitives::script::WitnessScriptSizeError +impl core::fmt::Display for bitcoin_primitives::transaction::OutPointDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TransactionDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxInDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxOutDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::Version +impl core::fmt::Display for bitcoin_primitives::transaction::VersionDecoderError +impl core::fmt::Display for bitcoin_primitives::witness::UnexpectedEofError +impl core::fmt::Display for bitcoin_primitives::witness::WitnessDecoderError +impl core::fmt::LowerHex for bitcoin_primitives::pow::CompactTarget +impl core::fmt::UpperHex for bitcoin_primitives::pow::CompactTarget +impl core::hash::Hash for bitcoin_primitives::BlockHash +impl core::hash::Hash for bitcoin_primitives::Ntxid +impl core::hash::Hash for bitcoin_primitives::TxMerkleNode +impl core::hash::Hash for bitcoin_primitives::Txid +impl core::hash::Hash for bitcoin_primitives::WitnessCommitment +impl core::hash::Hash for bitcoin_primitives::WitnessMerkleNode +impl core::hash::Hash for bitcoin_primitives::Wtxid +impl core::hash::Hash for bitcoin_primitives::block::Checked +impl core::hash::Hash for bitcoin_primitives::block::Header +impl core::hash::Hash for bitcoin_primitives::block::Unchecked +impl core::hash::Hash for bitcoin_primitives::block::Version +impl core::hash::Hash for bitcoin_primitives::pow::CompactTarget +impl core::hash::Hash for bitcoin_primitives::script::RedeemScriptTag +impl core::hash::Hash for bitcoin_primitives::script::ScriptHash +impl core::hash::Hash for bitcoin_primitives::script::ScriptPubKeyTag +impl core::hash::Hash for bitcoin_primitives::script::ScriptSigTag +impl core::hash::Hash for bitcoin_primitives::script::TapScriptTag +impl core::hash::Hash for bitcoin_primitives::script::WScriptHash +impl core::hash::Hash for bitcoin_primitives::script::WitnessScriptTag +impl core::hash::Hash for bitcoin_primitives::transaction::OutPoint +impl core::hash::Hash for bitcoin_primitives::transaction::Transaction +impl core::hash::Hash for bitcoin_primitives::transaction::TxIn +impl core::hash::Hash for bitcoin_primitives::transaction::TxOut +impl core::hash::Hash for bitcoin_primitives::transaction::Version +impl core::hash::Hash for bitcoin_primitives::witness::Witness +impl core::iter::traits::exact_size::ExactSizeIterator for bitcoin_primitives::witness::Iter<'_> +impl core::marker::Copy for bitcoin_primitives::BlockHash +impl core::marker::Copy for bitcoin_primitives::Ntxid +impl core::marker::Copy for bitcoin_primitives::TxMerkleNode +impl core::marker::Copy for bitcoin_primitives::Txid +impl core::marker::Copy for bitcoin_primitives::WitnessCommitment +impl core::marker::Copy for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Copy for bitcoin_primitives::Wtxid +impl core::marker::Copy for bitcoin_primitives::block::Header +impl core::marker::Copy for bitcoin_primitives::block::Version +impl core::marker::Copy for bitcoin_primitives::pow::CompactTarget +impl core::marker::Copy for bitcoin_primitives::script::ScriptHash +impl core::marker::Copy for bitcoin_primitives::script::WScriptHash +impl core::marker::Copy for bitcoin_primitives::transaction::OutPoint +impl core::marker::Copy for bitcoin_primitives::transaction::Version +impl core::marker::Freeze for bitcoin_primitives::BlockHash +impl core::marker::Freeze for bitcoin_primitives::Ntxid +impl core::marker::Freeze for bitcoin_primitives::TxMerkleNode +impl core::marker::Freeze for bitcoin_primitives::Txid +impl core::marker::Freeze for bitcoin_primitives::WitnessCommitment +impl core::marker::Freeze for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Freeze for bitcoin_primitives::Wtxid +impl core::marker::Freeze for bitcoin_primitives::block::BlockDecoder +impl core::marker::Freeze for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Freeze for bitcoin_primitives::block::Checked +impl core::marker::Freeze for bitcoin_primitives::block::Header +impl core::marker::Freeze for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Freeze for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Freeze for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Freeze for bitcoin_primitives::block::Unchecked +impl core::marker::Freeze for bitcoin_primitives::block::Version +impl core::marker::Freeze for bitcoin_primitives::block::VersionDecoder +impl core::marker::Freeze for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::VersionEncoder +impl core::marker::Freeze for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTarget +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Freeze for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Freeze for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Freeze for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Freeze for bitcoin_primitives::script::ScriptHash +impl core::marker::Freeze for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Freeze for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Freeze for bitcoin_primitives::script::TapScriptTag +impl core::marker::Freeze for bitcoin_primitives::script::WScriptHash +impl core::marker::Freeze for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Freeze for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPoint +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::Transaction +impl core::marker::Freeze for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxIn +impl core::marker::Freeze for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxOut +impl core::marker::Freeze for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::Version +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Freeze for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Freeze for bitcoin_primitives::witness::Witness +impl core::marker::Freeze for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Freeze for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::Send for bitcoin_primitives::BlockHash +impl core::marker::Send for bitcoin_primitives::Ntxid +impl core::marker::Send for bitcoin_primitives::TxMerkleNode +impl core::marker::Send for bitcoin_primitives::Txid +impl core::marker::Send for bitcoin_primitives::WitnessCommitment +impl core::marker::Send for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Send for bitcoin_primitives::Wtxid +impl core::marker::Send for bitcoin_primitives::block::BlockDecoder +impl core::marker::Send for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Send for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Send for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Send for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Send for bitcoin_primitives::block::Checked +impl core::marker::Send for bitcoin_primitives::block::Header +impl core::marker::Send for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Send for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Send for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Send for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Send for bitcoin_primitives::block::Unchecked +impl core::marker::Send for bitcoin_primitives::block::Version +impl core::marker::Send for bitcoin_primitives::block::VersionDecoder +impl core::marker::Send for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Send for bitcoin_primitives::block::VersionEncoder +impl core::marker::Send for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Send for bitcoin_primitives::pow::CompactTarget +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Send for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Send for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Send for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Send for bitcoin_primitives::script::ScriptHash +impl core::marker::Send for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Send for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Send for bitcoin_primitives::script::TapScriptTag +impl core::marker::Send for bitcoin_primitives::script::WScriptHash +impl core::marker::Send for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Send for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Send for bitcoin_primitives::transaction::OutPoint +impl core::marker::Send for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Send for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::Transaction +impl core::marker::Send for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxIn +impl core::marker::Send for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxOut +impl core::marker::Send for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::Version +impl core::marker::Send for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Send for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Send for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Send for bitcoin_primitives::witness::Witness +impl core::marker::Send for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Send for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::BlockHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::Ntxid +impl core::marker::StructuralPartialEq for bitcoin_primitives::TxMerkleNode +impl core::marker::StructuralPartialEq for bitcoin_primitives::Txid +impl core::marker::StructuralPartialEq for bitcoin_primitives::WitnessCommitment +impl core::marker::StructuralPartialEq for bitcoin_primitives::WitnessMerkleNode +impl core::marker::StructuralPartialEq for bitcoin_primitives::Wtxid +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::BlockDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Checked +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Header +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::InvalidBlockError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Unchecked +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Version +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::VersionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::pow::CompactTarget +impl core::marker::StructuralPartialEq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptSigTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::TapScriptTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::WScriptHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::OutPoint +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::Transaction +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxIn +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxOut +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::Version +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::StructuralPartialEq for bitcoin_primitives::witness::Witness +impl core::marker::StructuralPartialEq for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::Sync for bitcoin_primitives::BlockHash +impl core::marker::Sync for bitcoin_primitives::Ntxid +impl core::marker::Sync for bitcoin_primitives::TxMerkleNode +impl core::marker::Sync for bitcoin_primitives::Txid +impl core::marker::Sync for bitcoin_primitives::WitnessCommitment +impl core::marker::Sync for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Sync for bitcoin_primitives::Wtxid +impl core::marker::Sync for bitcoin_primitives::block::BlockDecoder +impl core::marker::Sync for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Sync for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Sync for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Sync for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Sync for bitcoin_primitives::block::Checked +impl core::marker::Sync for bitcoin_primitives::block::Header +impl core::marker::Sync for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Sync for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Sync for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Sync for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Sync for bitcoin_primitives::block::Unchecked +impl core::marker::Sync for bitcoin_primitives::block::Version +impl core::marker::Sync for bitcoin_primitives::block::VersionDecoder +impl core::marker::Sync for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::block::VersionEncoder +impl core::marker::Sync for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Sync for bitcoin_primitives::pow::CompactTarget +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Sync for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Sync for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Sync for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Sync for bitcoin_primitives::script::ScriptHash +impl core::marker::Sync for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Sync for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Sync for bitcoin_primitives::script::TapScriptTag +impl core::marker::Sync for bitcoin_primitives::script::WScriptHash +impl core::marker::Sync for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Sync for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Sync for bitcoin_primitives::transaction::OutPoint +impl core::marker::Sync for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::Transaction +impl core::marker::Sync for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxIn +impl core::marker::Sync for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxOut +impl core::marker::Sync for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::Version +impl core::marker::Sync for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Sync for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Sync for bitcoin_primitives::witness::Witness +impl core::marker::Sync for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Sync for bitcoin_primitives::witness::WitnessDecoderError +impl core::marker::Unpin for bitcoin_primitives::BlockHash +impl core::marker::Unpin for bitcoin_primitives::Ntxid +impl core::marker::Unpin for bitcoin_primitives::TxMerkleNode +impl core::marker::Unpin for bitcoin_primitives::Txid +impl core::marker::Unpin for bitcoin_primitives::WitnessCommitment +impl core::marker::Unpin for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Unpin for bitcoin_primitives::Wtxid +impl core::marker::Unpin for bitcoin_primitives::block::BlockDecoder +impl core::marker::Unpin for bitcoin_primitives::block::BlockDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Unpin for bitcoin_primitives::block::Checked +impl core::marker::Unpin for bitcoin_primitives::block::Header +impl core::marker::Unpin for bitcoin_primitives::block::HeaderDecoder +impl core::marker::Unpin for bitcoin_primitives::block::HeaderDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Unpin for bitcoin_primitives::block::InvalidBlockError +impl core::marker::Unpin for bitcoin_primitives::block::Unchecked +impl core::marker::Unpin for bitcoin_primitives::block::Version +impl core::marker::Unpin for bitcoin_primitives::block::VersionDecoder +impl core::marker::Unpin for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::VersionEncoder +impl core::marker::Unpin for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTarget +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Unpin for bitcoin_primitives::script::RedeemScriptSizeError +impl core::marker::Unpin for bitcoin_primitives::script::RedeemScriptTag +impl core::marker::Unpin for bitcoin_primitives::script::ScriptBufDecoderError +impl core::marker::Unpin for bitcoin_primitives::script::ScriptHash +impl core::marker::Unpin for bitcoin_primitives::script::ScriptPubKeyTag +impl core::marker::Unpin for bitcoin_primitives::script::ScriptSigTag +impl core::marker::Unpin for bitcoin_primitives::script::TapScriptTag +impl core::marker::Unpin for bitcoin_primitives::script::WScriptHash +impl core::marker::Unpin for bitcoin_primitives::script::WitnessScriptSizeError +impl core::marker::Unpin for bitcoin_primitives::script::WitnessScriptTag +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPoint +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::Transaction +impl core::marker::Unpin for bitcoin_primitives::transaction::TransactionDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TransactionDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxIn +impl core::marker::Unpin for bitcoin_primitives::transaction::TxInDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxInDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxOut +impl core::marker::Unpin for bitcoin_primitives::transaction::TxOutDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxOutDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::Version +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Unpin for bitcoin_primitives::witness::UnexpectedEofError +impl core::marker::Unpin for bitcoin_primitives::witness::Witness +impl core::marker::Unpin for bitcoin_primitives::witness::WitnessDecoder +impl core::marker::Unpin for bitcoin_primitives::witness::WitnessDecoderError +impl core::ops::index::Index for bitcoin_primitives::witness::Witness +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::BlockHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Ntxid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::TxMerkleNode +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Txid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::WitnessCommitment +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::WitnessMerkleNode +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Wtxid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Checked +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Header +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::InvalidBlockError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Unchecked +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Version +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTarget +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::RedeemScriptSizeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::RedeemScriptTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptBufDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptPubKeyTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptSigTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::TapScriptTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::WScriptHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::WitnessScriptSizeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::WitnessScriptTag +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPoint +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::Transaction +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TransactionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TransactionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxIn +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxInDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxInDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOut +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOutDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOutDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::Version +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::UnexpectedEofError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::Witness +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::WitnessDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::WitnessDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::BlockHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Ntxid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::TxMerkleNode +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Txid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::WitnessCommitment +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::WitnessMerkleNode +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Wtxid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Checked +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Header +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::InvalidBlockError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Unchecked +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Version +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTarget +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::RedeemScriptSizeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::RedeemScriptTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptBufDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptPubKeyTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptSigTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::TapScriptTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::WScriptHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::WitnessScriptSizeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::WitnessScriptTag +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPoint +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::Transaction +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TransactionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TransactionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxIn +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxInDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxInDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOut +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOutDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOutDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::Version +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::UnexpectedEofError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::Witness +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::WitnessDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::WitnessDecoderError +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::borrow::Cow<'a, bitcoin_primitives::script::Script> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::boxed::Box> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::rc::Rc> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for alloc::sync::Arc> +impl<'a, T> core::convert::From<&'a bitcoin_primitives::script::Script> for bitcoin_primitives::script::ScriptBuf +impl<'a, T> core::convert::From>> for alloc::boxed::Box> +impl<'a, T> core::convert::From>> for bitcoin_primitives::script::ScriptBuf +impl<'a> core::clone::Clone for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::iter::traits::collect::IntoIterator for &'a bitcoin_primitives::witness::Witness +impl<'a> core::iter::traits::iterator::Iterator for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Freeze for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Freeze for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::marker::Send for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Send for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::marker::Sync for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Sync for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::marker::Unpin for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::marker::Unpin for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'a> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::Iter<'a> +impl<'a> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::witness::WitnessEncoder<'a> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TransactionEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxInEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxOutEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::WitnessesEncoder<'e> +impl core::default::Default for &bitcoin_primitives::script::Script +impl core::convert::TryFrom<&bitcoin_primitives::script::Script> for bitcoin_primitives::script::ScriptHash +impl core::convert::TryFrom<&bitcoin_primitives::script::ScriptBuf> for bitcoin_primitives::script::ScriptHash +impl core::convert::TryFrom> for bitcoin_primitives::script::ScriptHash +impl> core::cmp::PartialEq<&[T]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq<[T]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq for &[T] +impl> core::cmp::PartialEq for [T] +impl> core::cmp::PartialEq for alloc::boxed::Box<[T]> +impl> core::cmp::PartialEq for alloc::rc::Rc<[T]> +impl> core::cmp::PartialEq for alloc::sync::Arc<[T]> +impl> core::cmp::PartialEq for alloc::vec::Vec +impl core::clone::Clone for bitcoin_primitives::script::ScriptBuf +impl core::cmp::Eq for bitcoin_primitives::script::Script +impl core::cmp::Eq for bitcoin_primitives::script::ScriptBuf +impl core::cmp::Ord for bitcoin_primitives::script::Script +impl core::cmp::Ord for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialEq for bitcoin_primitives::script::Script +impl core::cmp::PartialEq for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialEq> for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialEq> for bitcoin_primitives::script::Script +impl core::cmp::PartialOrd for bitcoin_primitives::script::Script +impl core::cmp::PartialOrd for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialOrd> for bitcoin_primitives::script::ScriptBuf +impl core::cmp::PartialOrd> for bitcoin_primitives::script::Script +impl> core::iter::traits::collect::FromIterator for bitcoin_primitives::witness::Witness +impl core::hash::Hash for bitcoin_primitives::script::Script +impl core::hash::Hash for bitcoin_primitives::script::ScriptBuf +impl !core::marker::Sized for bitcoin_primitives::script::Script +impl alloc::borrow::ToOwned for bitcoin_primitives::script::Script +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::script::ScriptBuf +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::script::ScriptBufDecoder +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::script::Script +impl bitcoin_primitives::script::Script +impl bitcoin_primitives::script::ScriptBuf +impl bitcoin_primitives::script::ScriptBufDecoder +impl core::borrow::Borrow> for bitcoin_primitives::script::ScriptBuf +impl core::borrow::BorrowMut> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsMut<[u8]> for bitcoin_primitives::script::Script +impl core::convert::AsMut<[u8]> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsMut> for bitcoin_primitives::script::Script +impl core::convert::AsMut> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::Script +impl core::convert::AsRef<[u8]> for bitcoin_primitives::script::ScriptBuf +impl core::convert::AsRef> for bitcoin_primitives::script::Script +impl core::convert::AsRef> for bitcoin_primitives::script::ScriptBuf +impl core::convert::From> for bitcoin_primitives::script::ScriptBuf +impl core::convert::From> for alloc::borrow::Cow<'_, bitcoin_primitives::script::Script> +impl core::convert::From> for alloc::boxed::Box> +impl core::convert::From> for alloc::vec::Vec +impl core::default::Default for bitcoin_primitives::script::ScriptBuf +impl core::default::Default for bitcoin_primitives::script::ScriptBufDecoder +impl core::fmt::Debug for bitcoin_primitives::script::Script +impl core::fmt::Debug for bitcoin_primitives::script::ScriptBuf +impl core::fmt::Display for bitcoin_primitives::script::Script +impl core::fmt::Display for bitcoin_primitives::script::ScriptBuf +impl core::marker::Freeze for bitcoin_primitives::script::Script +impl core::marker::Freeze for bitcoin_primitives::script::ScriptBuf +impl core::marker::Freeze for bitcoin_primitives::script::ScriptBufDecoder +impl core::marker::Send for bitcoin_primitives::script::Script where T: core::marker::Send +impl core::marker::Send for bitcoin_primitives::script::ScriptBuf where T: core::marker::Send +impl core::marker::Send for bitcoin_primitives::script::ScriptBufDecoder where T: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::Script +impl core::marker::StructuralPartialEq for bitcoin_primitives::script::ScriptBuf +impl core::marker::Sync for bitcoin_primitives::script::Script where T: core::marker::Sync +impl core::marker::Sync for bitcoin_primitives::script::ScriptBuf where T: core::marker::Sync +impl core::marker::Sync for bitcoin_primitives::script::ScriptBufDecoder where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_primitives::script::Script where T: core::marker::Unpin +impl core::marker::Unpin for bitcoin_primitives::script::ScriptBuf where T: core::marker::Unpin +impl core::marker::Unpin for bitcoin_primitives::script::ScriptBufDecoder where T: core::marker::Unpin +impl core::ops::deref::Deref for bitcoin_primitives::script::ScriptBuf +impl core::ops::deref::DerefMut for bitcoin_primitives::script::ScriptBuf +impl core::ops::index::Index<(core::ops::range::Bound, core::ops::range::Bound)> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::ops::index::Index> for bitcoin_primitives::script::Script +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::Script where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptBuf where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::script::ScriptBufDecoder where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::Script where T: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptBuf where T: core::panic::unwind_safe::UnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::script::ScriptBufDecoder where T: core::panic::unwind_safe::UnwindSafe +impl bitcoin_primitives::block::Block +impl core::clone::Clone for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::clone::Clone +impl core::cmp::Eq for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::cmp::Eq +impl core::cmp::PartialEq for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::cmp::PartialEq +impl core::fmt::Debug for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation + core::fmt::Debug +impl core::marker::Freeze for bitcoin_primitives::block::Block +impl core::marker::Send for bitcoin_primitives::block::Block +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation +impl core::marker::Sync for bitcoin_primitives::block::Block +impl core::marker::Unpin for bitcoin_primitives::block::Block +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Block where V: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Block where V: core::panic::unwind_safe::UnwindSafe +impl> core::cmp::PartialEq<&[T; N]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq<[T; N]> for bitcoin_primitives::witness::Witness +impl> core::cmp::PartialEq for &[T; N] +impl> core::cmp::PartialEq for [T; N] +impl core::convert::From<&[&[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<[&[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<[[u8; M]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[&[u8; N]]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[&[u8]; N]> for bitcoin_primitives::witness::Witness +impl core::convert::From<&[[u8; N]]> for bitcoin_primitives::witness::Witness +impl core::convert::From<[&[u8]; N]> for bitcoin_primitives::witness::Witness +pub bitcoin_primitives::BlockHeader::bits: bitcoin_primitives::pow::CompactTarget +pub bitcoin_primitives::BlockHeader::merkle_root: bitcoin_primitives::TxMerkleNode +pub bitcoin_primitives::BlockHeader::nonce: u32 +pub bitcoin_primitives::BlockHeader::prev_blockhash: bitcoin_primitives::BlockHash +pub bitcoin_primitives::BlockHeader::time: bitcoin_units::time::encapsulate::BlockTime +pub bitcoin_primitives::BlockHeader::version: bitcoin_primitives::block::Version +pub bitcoin_primitives::OutPoint::txid: bitcoin_primitives::Txid +pub bitcoin_primitives::OutPoint::vout: u32 +pub bitcoin_primitives::Transaction::inputs: alloc::vec::Vec +pub bitcoin_primitives::Transaction::lock_time: bitcoin_units::locktime::absolute::LockTime +pub bitcoin_primitives::Transaction::outputs: alloc::vec::Vec +pub bitcoin_primitives::Transaction::version: bitcoin_primitives::transaction::Version +pub bitcoin_primitives::TxIn::previous_output: bitcoin_primitives::transaction::OutPoint +pub bitcoin_primitives::TxIn::script_sig: bitcoin_primitives::script::ScriptSigBuf +pub bitcoin_primitives::TxIn::sequence: bitcoin_units::sequence::Sequence +pub bitcoin_primitives::TxIn::witness: bitcoin_primitives::witness::Witness +pub bitcoin_primitives::TxOut::amount: bitcoin_units::amount::unsigned::encapsulate::Amount +pub bitcoin_primitives::TxOut::script_pubkey: bitcoin_primitives::script::ScriptPubKeyBuf +pub bitcoin_primitives::block::Header::bits: bitcoin_primitives::pow::CompactTarget +pub bitcoin_primitives::block::Header::merkle_root: bitcoin_primitives::TxMerkleNode +pub bitcoin_primitives::block::Header::nonce: u32 +pub bitcoin_primitives::block::Header::prev_blockhash: bitcoin_primitives::BlockHash +pub bitcoin_primitives::block::Header::time: bitcoin_units::time::encapsulate::BlockTime +pub bitcoin_primitives::block::Header::version: bitcoin_primitives::block::Version +pub bitcoin_primitives::block::HeaderDecoderError::Bits(bitcoin_primitives::pow::CompactTargetDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::MerkleRoot(bitcoin_primitives::transaction::TxMerkleNodeDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::Nonce(bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) +pub bitcoin_primitives::block::HeaderDecoderError::PrevBlockhash(bitcoin_primitives::block::BlockHashDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::Time(bitcoin_units::time::BlockTimeDecoderError) +pub bitcoin_primitives::block::HeaderDecoderError::Version(bitcoin_primitives::block::VersionDecoderError) +pub bitcoin_primitives::block::InvalidBlockError::InvalidCoinbase +pub bitcoin_primitives::block::InvalidBlockError::InvalidMerkleRoot +pub bitcoin_primitives::block::InvalidBlockError::InvalidWitnessCommitment +pub bitcoin_primitives::block::InvalidBlockError::NoTransactions +pub bitcoin_primitives::transaction::OutPoint::txid: bitcoin_primitives::Txid +pub bitcoin_primitives::transaction::OutPoint::vout: u32 +pub bitcoin_primitives::transaction::Transaction::inputs: alloc::vec::Vec +pub bitcoin_primitives::transaction::Transaction::lock_time: bitcoin_units::locktime::absolute::LockTime +pub bitcoin_primitives::transaction::Transaction::outputs: alloc::vec::Vec +pub bitcoin_primitives::transaction::Transaction::version: bitcoin_primitives::transaction::Version +pub bitcoin_primitives::transaction::TxIn::previous_output: bitcoin_primitives::transaction::OutPoint +pub bitcoin_primitives::transaction::TxIn::script_sig: bitcoin_primitives::script::ScriptSigBuf +pub bitcoin_primitives::transaction::TxIn::sequence: bitcoin_units::sequence::Sequence +pub bitcoin_primitives::transaction::TxIn::witness: bitcoin_primitives::witness::Witness +pub bitcoin_primitives::transaction::TxOut::amount: bitcoin_units::amount::unsigned::encapsulate::Amount +pub bitcoin_primitives::transaction::TxOut::script_pubkey: bitcoin_primitives::script::ScriptPubKeyBuf +pub const bitcoin_primitives::BlockHash::GENESIS_PREVIOUS_BLOCK_HASH: Self +pub const bitcoin_primitives::BlockValidation::IS_CHECKED: bool +pub const bitcoin_primitives::Txid::COINBASE_PREVOUT: Self +pub const bitcoin_primitives::WitnessCommitment::GENESIS_PREVIOUS_BLOCK_HASH: Self +pub const bitcoin_primitives::Wtxid::COINBASE: Self +pub const bitcoin_primitives::block::Checked::IS_CHECKED: bool +pub const bitcoin_primitives::block::Header::SIZE: usize +pub const bitcoin_primitives::block::Unchecked::IS_CHECKED: bool +pub const bitcoin_primitives::block::Validation::IS_CHECKED: bool +pub const bitcoin_primitives::block::Version::NO_SOFT_FORK_SIGNALLING: Self +pub const bitcoin_primitives::block::Version::ONE: Self +pub const bitcoin_primitives::block::Version::TWO: Self +pub const bitcoin_primitives::script::MAX_REDEEM_SCRIPT_SIZE: usize +pub const bitcoin_primitives::script::MAX_WITNESS_SCRIPT_SIZE: usize +pub const bitcoin_primitives::transaction::OutPoint::COINBASE_PREVOUT: Self +pub const bitcoin_primitives::transaction::OutPoint::SIZE: usize +pub const bitcoin_primitives::transaction::Transaction::MAX_STANDARD_WEIGHT: bitcoin_units::weight::encapsulate::Weight +pub const bitcoin_primitives::transaction::TxIn::EMPTY_COINBASE: Self +pub const bitcoin_primitives::transaction::Version::ONE: Self +pub const bitcoin_primitives::transaction::Version::THREE: Self +pub const bitcoin_primitives::transaction::Version::TWO: Self +pub const fn bitcoin_primitives::BlockHash::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::BlockHash::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::BlockHash::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Ntxid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Ntxid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Ntxid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::TxMerkleNode::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::TxMerkleNode::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::TxMerkleNode::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Txid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Txid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Txid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::WitnessCommitment::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::WitnessCommitment::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::WitnessCommitment::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::WitnessMerkleNode::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::WitnessMerkleNode::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::WitnessMerkleNode::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Wtxid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Wtxid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Wtxid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::block::BlockHashDecoder::new() -> Self +pub const fn bitcoin_primitives::block::Version::from_consensus(v: i32) -> Self +pub const fn bitcoin_primitives::block::Version::to_consensus(self) -> i32 +pub const fn bitcoin_primitives::block::VersionDecoder::new() -> Self +pub const fn bitcoin_primitives::pow::CompactTarget::to_consensus(self) -> u32 +pub const fn bitcoin_primitives::pow::CompactTargetDecoder::new() -> Self +pub const fn bitcoin_primitives::script::Script::as_bytes(&self) -> &[u8] +pub const fn bitcoin_primitives::script::Script::from_bytes(bytes: &[u8]) -> &Self +pub const fn bitcoin_primitives::script::Script::is_empty(&self) -> bool +pub const fn bitcoin_primitives::script::Script::len(&self) -> usize +pub const fn bitcoin_primitives::script::Script::new() -> &'static Self +pub const fn bitcoin_primitives::script::ScriptBuf::from_bytes(bytes: alloc::vec::Vec) -> Self +pub const fn bitcoin_primitives::script::ScriptBuf::new() -> Self +pub const fn bitcoin_primitives::script::ScriptBufDecoder::new() -> Self +pub const fn bitcoin_primitives::script::ScriptHash::as_byte_array(&self) -> &[u8; 20] +pub const fn bitcoin_primitives::script::ScriptHash::from_byte_array(bytes: [u8; 20]) -> Self +pub const fn bitcoin_primitives::script::ScriptHash::to_byte_array(self) -> [u8; 20] +pub const fn bitcoin_primitives::script::WScriptHash::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::script::WScriptHash::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::script::WScriptHash::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::transaction::OutPointDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::TransactionDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::Version::is_standard(self) -> bool +pub const fn bitcoin_primitives::transaction::Version::maybe_non_standard(version: u32) -> Self +pub const fn bitcoin_primitives::transaction::Version::to_u32(self) -> u32 +pub const fn bitcoin_primitives::transaction::VersionDecoder::new() -> Self +pub const fn bitcoin_primitives::witness::Witness::len(&self) -> usize +pub const fn bitcoin_primitives::witness::Witness::new() -> Self +pub const fn bitcoin_primitives::witness::WitnessDecoder::new() -> Self +pub enum bitcoin_primitives::BlockChecked +pub enum bitcoin_primitives::BlockUnchecked +pub enum bitcoin_primitives::block::Checked +pub enum bitcoin_primitives::block::Unchecked +pub enum bitcoin_primitives::script::RedeemScriptTag +pub enum bitcoin_primitives::script::ScriptPubKeyTag +pub enum bitcoin_primitives::script::ScriptSigTag +pub enum bitcoin_primitives::script::TapScriptTag +pub enum bitcoin_primitives::script::WitnessScriptTag +pub fn &'a bitcoin_primitives::witness::Witness::into_iter(self) -> Self::IntoIter +pub fn &[T; N]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn &[T]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn &bitcoin_primitives::script::Script::default() -> Self +pub fn [T; N]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn [T]::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::borrow::Cow<'_, bitcoin_primitives::script::Script>::from(value: bitcoin_primitives::script::ScriptBuf) -> Self +pub fn alloc::borrow::Cow<'a, bitcoin_primitives::script::Script>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::boxed::Box<[T]>::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::boxed::Box>::from(v: bitcoin_primitives::script::ScriptBuf) -> Self +pub fn alloc::boxed::Box>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::boxed::Box>::from(value: alloc::borrow::Cow<'a, bitcoin_primitives::script::Script>) -> Self +pub fn alloc::rc::Rc<[T]>::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::rc::Rc>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::sync::Arc<[T]>::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::sync::Arc>::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn alloc::vec::Vec::eq(&self, rhs: &bitcoin_primitives::witness::Witness) -> bool +pub fn alloc::vec::Vec::from(v: bitcoin_primitives::script::ScriptBuf) -> Self +pub fn bitcoin_primitives::BlockHash::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::BlockHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::BlockHash::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::BlockHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::BlockHash::clone(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::BlockHash::cmp(&self, other: &bitcoin_primitives::BlockHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::BlockHash::decoder() -> Self::Decoder +pub fn bitcoin_primitives::BlockHash::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::BlockHash::eq(&self, other: &bitcoin_primitives::BlockHash) -> bool +pub fn bitcoin_primitives::BlockHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::BlockHash::from(block: &bitcoin_primitives::block::Block) -> Self +pub fn bitcoin_primitives::BlockHash::from(block: bitcoin_primitives::block::Block) -> Self +pub fn bitcoin_primitives::BlockHash::from(header: &bitcoin_primitives::block::Header) -> Self +pub fn bitcoin_primitives::BlockHash::from(header: bitcoin_primitives::block::Header) -> Self +pub fn bitcoin_primitives::BlockHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::BlockHash::partial_cmp(&self, other: &bitcoin_primitives::BlockHash) -> core::option::Option +pub fn bitcoin_primitives::Ntxid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Ntxid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Ntxid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Ntxid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Ntxid::clone(&self) -> bitcoin_primitives::Ntxid +pub fn bitcoin_primitives::Ntxid::cmp(&self, other: &bitcoin_primitives::Ntxid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Ntxid::eq(&self, other: &bitcoin_primitives::Ntxid) -> bool +pub fn bitcoin_primitives::Ntxid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Ntxid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Ntxid::partial_cmp(&self, other: &bitcoin_primitives::Ntxid) -> core::option::Option +pub fn bitcoin_primitives::TxMerkleNode::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::TxMerkleNode::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::TxMerkleNode::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::TxMerkleNode::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::TxMerkleNode::calculate_root>(iter: I) -> core::option::Option +pub fn bitcoin_primitives::TxMerkleNode::clone(&self) -> bitcoin_primitives::TxMerkleNode +pub fn bitcoin_primitives::TxMerkleNode::cmp(&self, other: &bitcoin_primitives::TxMerkleNode) -> core::cmp::Ordering +pub fn bitcoin_primitives::TxMerkleNode::combine(&self, other: &Self) -> Self +pub fn bitcoin_primitives::TxMerkleNode::decoder() -> Self::Decoder +pub fn bitcoin_primitives::TxMerkleNode::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::TxMerkleNode::eq(&self, other: &bitcoin_primitives::TxMerkleNode) -> bool +pub fn bitcoin_primitives::TxMerkleNode::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::TxMerkleNode::from_leaf(leaf: bitcoin_primitives::Txid) -> Self +pub fn bitcoin_primitives::TxMerkleNode::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::TxMerkleNode::partial_cmp(&self, other: &bitcoin_primitives::TxMerkleNode) -> core::option::Option +pub fn bitcoin_primitives::Txid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Txid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Txid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Txid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Txid::clone(&self) -> bitcoin_primitives::Txid +pub fn bitcoin_primitives::Txid::cmp(&self, other: &bitcoin_primitives::Txid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Txid::eq(&self, other: &bitcoin_primitives::Txid) -> bool +pub fn bitcoin_primitives::Txid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Txid::from(tx: &bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Txid::from(tx: bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Txid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Txid::partial_cmp(&self, other: &bitcoin_primitives::Txid) -> core::option::Option +pub fn bitcoin_primitives::WitnessCommitment::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessCommitment::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessCommitment::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessCommitment::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessCommitment::clone(&self) -> bitcoin_primitives::WitnessCommitment +pub fn bitcoin_primitives::WitnessCommitment::cmp(&self, other: &bitcoin_primitives::WitnessCommitment) -> core::cmp::Ordering +pub fn bitcoin_primitives::WitnessCommitment::eq(&self, other: &bitcoin_primitives::WitnessCommitment) -> bool +pub fn bitcoin_primitives::WitnessCommitment::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::WitnessCommitment::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::WitnessCommitment::partial_cmp(&self, other: &bitcoin_primitives::WitnessCommitment) -> core::option::Option +pub fn bitcoin_primitives::WitnessMerkleNode::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessMerkleNode::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessMerkleNode::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessMerkleNode::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessMerkleNode::calculate_root>(iter: I) -> core::option::Option +pub fn bitcoin_primitives::WitnessMerkleNode::clone(&self) -> bitcoin_primitives::WitnessMerkleNode +pub fn bitcoin_primitives::WitnessMerkleNode::cmp(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> core::cmp::Ordering +pub fn bitcoin_primitives::WitnessMerkleNode::combine(&self, other: &Self) -> Self +pub fn bitcoin_primitives::WitnessMerkleNode::decoder() -> Self::Decoder +pub fn bitcoin_primitives::WitnessMerkleNode::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::WitnessMerkleNode::eq(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> bool +pub fn bitcoin_primitives::WitnessMerkleNode::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::WitnessMerkleNode::from_leaf(leaf: bitcoin_primitives::Wtxid) -> Self +pub fn bitcoin_primitives::WitnessMerkleNode::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::WitnessMerkleNode::partial_cmp(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> core::option::Option +pub fn bitcoin_primitives::Wtxid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Wtxid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Wtxid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Wtxid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Wtxid::clone(&self) -> bitcoin_primitives::Wtxid +pub fn bitcoin_primitives::Wtxid::cmp(&self, other: &bitcoin_primitives::Wtxid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Wtxid::eq(&self, other: &bitcoin_primitives::Wtxid) -> bool +pub fn bitcoin_primitives::Wtxid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Wtxid::from(tx: &bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Wtxid::from(tx: bitcoin_primitives::transaction::Transaction) -> Self +pub fn bitcoin_primitives::Wtxid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Wtxid::partial_cmp(&self, other: &bitcoin_primitives::Wtxid) -> core::option::Option +pub fn bitcoin_primitives::block::Block::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Block::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Block::block_hash(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::block::Block::clone(&self) -> bitcoin_primitives::block::Block +pub fn bitcoin_primitives::block::Block::eq(&self, other: &bitcoin_primitives::block::Block) -> bool +pub fn bitcoin_primitives::block::Block::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Block::cached_witness_root(&self) -> core::option::Option +pub fn bitcoin_primitives::block::Block::header(&self) -> &bitcoin_primitives::block::Header +pub fn bitcoin_primitives::block::Block::transactions(&self) -> &[bitcoin_primitives::transaction::Transaction] +pub fn bitcoin_primitives::block::Block::assume_checked(self, witness_root: core::option::Option) -> bitcoin_primitives::block::Block +pub fn bitcoin_primitives::block::Block::check_merkle_root(&self) -> bool +pub fn bitcoin_primitives::block::Block::check_witness_commitment(&self) -> (bool, core::option::Option) +pub fn bitcoin_primitives::block::Block::compute_witness_commitment(&self, witness_reserved_value: &[u8]) -> core::option::Option<(bitcoin_primitives::WitnessMerkleNode, bitcoin_primitives::WitnessCommitment)> +pub fn bitcoin_primitives::block::Block::into_parts(self) -> (bitcoin_primitives::block::Header, alloc::vec::Vec) +pub fn bitcoin_primitives::block::Block::new_unchecked(header: bitcoin_primitives::block::Header, transactions: alloc::vec::Vec) -> Self +pub fn bitcoin_primitives::block::Block::validate(self) -> core::result::Result, bitcoin_primitives::block::InvalidBlockError> +pub fn bitcoin_primitives::block::BlockDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::BlockDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::BlockDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::BlockDecoderError::clone(&self) -> bitcoin_primitives::block::BlockDecoderError +pub fn bitcoin_primitives::block::BlockDecoderError::eq(&self, other: &bitcoin_primitives::block::BlockDecoderError) -> bool +pub fn bitcoin_primitives::block::BlockDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::BlockDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::BlockEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::BlockEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::BlockHashDecoder::default() -> Self +pub fn bitcoin_primitives::block::BlockHashDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::BlockHashDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::BlockHashDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::BlockHashDecoderError::clone(&self) -> bitcoin_primitives::block::BlockHashDecoderError +pub fn bitcoin_primitives::block::BlockHashDecoderError::eq(&self, other: &bitcoin_primitives::block::BlockHashDecoderError) -> bool +pub fn bitcoin_primitives::block::BlockHashDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::BlockHashDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::block::BlockHashDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::BlockHashEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::BlockHashEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::Checked::clone(&self) -> bitcoin_primitives::block::Checked +pub fn bitcoin_primitives::block::Checked::cmp(&self, other: &bitcoin_primitives::block::Checked) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Checked::eq(&self, other: &bitcoin_primitives::block::Checked) -> bool +pub fn bitcoin_primitives::block::Checked::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Checked::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Checked::partial_cmp(&self, other: &bitcoin_primitives::block::Checked) -> core::option::Option +pub fn bitcoin_primitives::block::Header::block_hash(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::block::Header::clone(&self) -> bitcoin_primitives::block::Header +pub fn bitcoin_primitives::block::Header::cmp(&self, other: &bitcoin_primitives::block::Header) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Header::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Header::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Header::eq(&self, other: &bitcoin_primitives::block::Header) -> bool +pub fn bitcoin_primitives::block::Header::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Header::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Header::partial_cmp(&self, other: &bitcoin_primitives::block::Header) -> core::option::Option +pub fn bitcoin_primitives::block::HeaderDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::HeaderDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::HeaderDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::HeaderDecoderError::clone(&self) -> bitcoin_primitives::block::HeaderDecoderError +pub fn bitcoin_primitives::block::HeaderDecoderError::eq(&self, other: &bitcoin_primitives::block::HeaderDecoderError) -> bool +pub fn bitcoin_primitives::block::HeaderDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::HeaderDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::HeaderEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::HeaderEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::InvalidBlockError::clone(&self) -> bitcoin_primitives::block::InvalidBlockError +pub fn bitcoin_primitives::block::InvalidBlockError::eq(&self, other: &bitcoin_primitives::block::InvalidBlockError) -> bool +pub fn bitcoin_primitives::block::InvalidBlockError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::InvalidBlockError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::Unchecked::clone(&self) -> bitcoin_primitives::block::Unchecked +pub fn bitcoin_primitives::block::Unchecked::cmp(&self, other: &bitcoin_primitives::block::Unchecked) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Unchecked::eq(&self, other: &bitcoin_primitives::block::Unchecked) -> bool +pub fn bitcoin_primitives::block::Unchecked::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Unchecked::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Unchecked::partial_cmp(&self, other: &bitcoin_primitives::block::Unchecked) -> core::option::Option +pub fn bitcoin_primitives::block::Version::clone(&self) -> bitcoin_primitives::block::Version +pub fn bitcoin_primitives::block::Version::cmp(&self, other: &bitcoin_primitives::block::Version) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Version::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Version::default() -> Self +pub fn bitcoin_primitives::block::Version::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Version::eq(&self, other: &bitcoin_primitives::block::Version) -> bool +pub fn bitcoin_primitives::block::Version::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Version::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Version::is_signalling_soft_fork(self, bit: u8) -> bool +pub fn bitcoin_primitives::block::Version::partial_cmp(&self, other: &bitcoin_primitives::block::Version) -> core::option::Option +pub fn bitcoin_primitives::block::VersionDecoder::default() -> Self +pub fn bitcoin_primitives::block::VersionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::VersionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::VersionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::VersionDecoderError::clone(&self) -> bitcoin_primitives::block::VersionDecoderError +pub fn bitcoin_primitives::block::VersionDecoderError::eq(&self, other: &bitcoin_primitives::block::VersionDecoderError) -> bool +pub fn bitcoin_primitives::block::VersionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::VersionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::block::VersionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::VersionEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::VersionEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::compute_merkle_root(transactions: &[bitcoin_primitives::transaction::Transaction]) -> core::option::Option +pub fn bitcoin_primitives::block::compute_witness_root(transactions: &[bitcoin_primitives::transaction::Transaction]) -> core::option::Option +pub fn bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::pow::CompactTarget::clone(&self) -> bitcoin_primitives::pow::CompactTarget +pub fn bitcoin_primitives::pow::CompactTarget::cmp(&self, other: &bitcoin_primitives::pow::CompactTarget) -> core::cmp::Ordering +pub fn bitcoin_primitives::pow::CompactTarget::decoder() -> Self::Decoder +pub fn bitcoin_primitives::pow::CompactTarget::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::pow::CompactTarget::eq(&self, other: &bitcoin_primitives::pow::CompactTarget) -> bool +pub fn bitcoin_primitives::pow::CompactTarget::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::pow::CompactTarget::from_consensus(bits: u32) -> Self +pub fn bitcoin_primitives::pow::CompactTarget::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::pow::CompactTarget::partial_cmp(&self, other: &bitcoin_primitives::pow::CompactTarget) -> core::option::Option +pub fn bitcoin_primitives::pow::CompactTarget::to_hex(self) -> alloc::string::String +pub fn bitcoin_primitives::pow::CompactTargetDecoder::default() -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::clone(&self) -> bitcoin_primitives::pow::CompactTargetDecoderError +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::eq(&self, other: &bitcoin_primitives::pow::CompactTargetDecoderError) -> bool +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::pow::CompactTargetEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::pow::CompactTargetEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::script::RedeemScriptSizeError::clone(&self) -> bitcoin_primitives::script::RedeemScriptSizeError +pub fn bitcoin_primitives::script::RedeemScriptSizeError::eq(&self, other: &bitcoin_primitives::script::RedeemScriptSizeError) -> bool +pub fn bitcoin_primitives::script::RedeemScriptSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::RedeemScriptSizeError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::script::RedeemScriptSizeError::invalid_size(&self) -> usize +pub fn bitcoin_primitives::script::RedeemScriptTag::clone(&self) -> bitcoin_primitives::script::RedeemScriptTag +pub fn bitcoin_primitives::script::RedeemScriptTag::cmp(&self, other: &bitcoin_primitives::script::RedeemScriptTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::RedeemScriptTag::eq(&self, other: &bitcoin_primitives::script::RedeemScriptTag) -> bool +pub fn bitcoin_primitives::script::RedeemScriptTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::RedeemScriptTag::partial_cmp(&self, other: &bitcoin_primitives::script::RedeemScriptTag) -> core::option::Option +pub fn bitcoin_primitives::script::Script::as_mut(&mut self) -> &mut Self +pub fn bitcoin_primitives::script::Script::as_mut(&mut self) -> &mut [u8] +pub fn bitcoin_primitives::script::Script::as_mut_bytes(&mut self) -> &mut [u8] +pub fn bitcoin_primitives::script::Script::as_ref(&self) -> &Self +pub fn bitcoin_primitives::script::Script::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::Script::cmp(&self, other: &bitcoin_primitives::script::Script) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::Script::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::script::Script::eq(&self, other: &bitcoin_primitives::script::Script) -> bool +pub fn bitcoin_primitives::script::Script::eq(&self, other: &bitcoin_primitives::script::ScriptBuf) -> bool +pub fn bitcoin_primitives::script::Script::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::Script::from_bytes_mut(bytes: &mut [u8]) -> &mut Self +pub fn bitcoin_primitives::script::Script::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::Script::index(&self, index: (core::ops::range::Bound, core::ops::range::Bound)) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::Range) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeFrom) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeFull) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeInclusive) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeTo) -> &Self::Output +pub fn bitcoin_primitives::script::Script::index(&self, index: core::ops::range::RangeToInclusive) -> &Self::Output +pub fn bitcoin_primitives::script::Script::into_script_buf(self: alloc::boxed::Box) -> bitcoin_primitives::script::ScriptBuf +pub fn bitcoin_primitives::script::Script::partial_cmp(&self, other: &bitcoin_primitives::script::Script) -> core::option::Option +pub fn bitcoin_primitives::script::Script::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptBuf) -> core::option::Option +pub fn bitcoin_primitives::script::Script::to_bytes(&self) -> alloc::vec::Vec +pub fn bitcoin_primitives::script::Script::to_owned(&self) -> Self::Owned +pub fn bitcoin_primitives::script::Script::to_vec(&self) -> alloc::vec::Vec +pub fn bitcoin_primitives::script::ScriptBuf::as_mut(&mut self) -> &mut [u8] +pub fn bitcoin_primitives::script::ScriptBuf::as_mut(&mut self) -> &mut bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::as_mut_script(&mut self) -> &mut bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptBuf::as_ref(&self) -> &bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::as_script(&self) -> &bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::borrow(&self) -> &bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::borrow_mut(&mut self) -> &mut bitcoin_primitives::script::Script +pub fn bitcoin_primitives::script::ScriptBuf::capacity(&self) -> usize +pub fn bitcoin_primitives::script::ScriptBuf::clone(&self) -> bitcoin_primitives::script::ScriptBuf +pub fn bitcoin_primitives::script::ScriptBuf::cmp(&self, other: &bitcoin_primitives::script::ScriptBuf) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptBuf::decoder() -> Self::Decoder +pub fn bitcoin_primitives::script::ScriptBuf::default() -> Self +pub fn bitcoin_primitives::script::ScriptBuf::deref(&self) -> &Self::Target +pub fn bitcoin_primitives::script::ScriptBuf::deref_mut(&mut self) -> &mut Self::Target +pub fn bitcoin_primitives::script::ScriptBuf::eq(&self, other: &bitcoin_primitives::script::Script) -> bool +pub fn bitcoin_primitives::script::ScriptBuf::eq(&self, other: &bitcoin_primitives::script::ScriptBuf) -> bool +pub fn bitcoin_primitives::script::ScriptBuf::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::ScriptBuf::from(v: alloc::vec::Vec) -> Self +pub fn bitcoin_primitives::script::ScriptBuf::from(value: &'a bitcoin_primitives::script::Script) -> Self +pub fn bitcoin_primitives::script::ScriptBuf::from(value: alloc::borrow::Cow<'a, bitcoin_primitives::script::Script>) -> Self +pub fn bitcoin_primitives::script::ScriptBuf::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptBuf::into_boxed_script(self) -> alloc::boxed::Box> +pub fn bitcoin_primitives::script::ScriptBuf::into_bytes(self) -> alloc::vec::Vec +pub fn bitcoin_primitives::script::ScriptBuf::partial_cmp(&self, other: &bitcoin_primitives::script::Script) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptBuf::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptBuf) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptBuf::reserve(&mut self, additional_len: usize) +pub fn bitcoin_primitives::script::ScriptBuf::reserve_exact(&mut self, additional_len: usize) +pub fn bitcoin_primitives::script::ScriptBuf::with_capacity(capacity: usize) -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoder::default() -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptBufDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptBufDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::script::ScriptBufDecoderError::clone(&self) -> bitcoin_primitives::script::ScriptBufDecoderError +pub fn bitcoin_primitives::script::ScriptBufDecoderError::eq(&self, other: &bitcoin_primitives::script::ScriptBufDecoderError) -> bool +pub fn bitcoin_primitives::script::ScriptBufDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::ScriptBufDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::ByteVecDecoderError) -> Self +pub fn bitcoin_primitives::script::ScriptBufDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::script::ScriptEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::script::ScriptEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptHash::as_ref(&self) -> &[u8; 20] +pub fn bitcoin_primitives::script::ScriptHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptHash::borrow(&self) -> &[u8; 20] +pub fn bitcoin_primitives::script::ScriptHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::script::ScriptHash::clone(&self) -> bitcoin_primitives::script::ScriptHash +pub fn bitcoin_primitives::script::ScriptHash::cmp(&self, other: &bitcoin_primitives::script::ScriptHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptHash::eq(&self, other: &bitcoin_primitives::script::ScriptHash) -> bool +pub fn bitcoin_primitives::script::ScriptHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::ScriptHash::from_script(redeem_script: &bitcoin_primitives::script::Script) -> core::result::Result where T: bitcoin_primitives::script::ScriptHashableTag +pub fn bitcoin_primitives::script::ScriptHash::from_script_unchecked(script: &bitcoin_primitives::script::Script) -> Self +pub fn bitcoin_primitives::script::ScriptHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptHash::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptHash) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptHash::try_from(redeem_script: &bitcoin_primitives::script::Script) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptHash::try_from(redeem_script: &bitcoin_primitives::script::ScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptHash::try_from(redeem_script: bitcoin_primitives::script::ScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::ScriptPubKeyTag::clone(&self) -> bitcoin_primitives::script::ScriptPubKeyTag +pub fn bitcoin_primitives::script::ScriptPubKeyTag::cmp(&self, other: &bitcoin_primitives::script::ScriptPubKeyTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptPubKeyTag::eq(&self, other: &bitcoin_primitives::script::ScriptPubKeyTag) -> bool +pub fn bitcoin_primitives::script::ScriptPubKeyTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptPubKeyTag::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptPubKeyTag) -> core::option::Option +pub fn bitcoin_primitives::script::ScriptSigTag::clone(&self) -> bitcoin_primitives::script::ScriptSigTag +pub fn bitcoin_primitives::script::ScriptSigTag::cmp(&self, other: &bitcoin_primitives::script::ScriptSigTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::ScriptSigTag::eq(&self, other: &bitcoin_primitives::script::ScriptSigTag) -> bool +pub fn bitcoin_primitives::script::ScriptSigTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::ScriptSigTag::partial_cmp(&self, other: &bitcoin_primitives::script::ScriptSigTag) -> core::option::Option +pub fn bitcoin_primitives::script::TapScriptTag::clone(&self) -> bitcoin_primitives::script::TapScriptTag +pub fn bitcoin_primitives::script::TapScriptTag::cmp(&self, other: &bitcoin_primitives::script::TapScriptTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::TapScriptTag::eq(&self, other: &bitcoin_primitives::script::TapScriptTag) -> bool +pub fn bitcoin_primitives::script::TapScriptTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::TapScriptTag::partial_cmp(&self, other: &bitcoin_primitives::script::TapScriptTag) -> core::option::Option +pub fn bitcoin_primitives::script::WScriptHash::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::script::WScriptHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::script::WScriptHash::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::script::WScriptHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::script::WScriptHash::clone(&self) -> bitcoin_primitives::script::WScriptHash +pub fn bitcoin_primitives::script::WScriptHash::cmp(&self, other: &bitcoin_primitives::script::WScriptHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::WScriptHash::eq(&self, other: &bitcoin_primitives::script::WScriptHash) -> bool +pub fn bitcoin_primitives::script::WScriptHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::WScriptHash::from_script(witness_script: &bitcoin_primitives::script::WitnessScript) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::from_script_unchecked(script: &bitcoin_primitives::script::WitnessScript) -> Self +pub fn bitcoin_primitives::script::WScriptHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::WScriptHash::partial_cmp(&self, other: &bitcoin_primitives::script::WScriptHash) -> core::option::Option +pub fn bitcoin_primitives::script::WScriptHash::try_from(witness_script: &bitcoin_primitives::script::WitnessScript) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::try_from(witness_script: &bitcoin_primitives::script::WitnessScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::WScriptHash::try_from(witness_script: bitcoin_primitives::script::WitnessScriptBuf) -> core::result::Result +pub fn bitcoin_primitives::script::WitnessScriptSizeError::clone(&self) -> bitcoin_primitives::script::WitnessScriptSizeError +pub fn bitcoin_primitives::script::WitnessScriptSizeError::eq(&self, other: &bitcoin_primitives::script::WitnessScriptSizeError) -> bool +pub fn bitcoin_primitives::script::WitnessScriptSizeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::script::WitnessScriptSizeError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::script::WitnessScriptSizeError::invalid_size(&self) -> usize +pub fn bitcoin_primitives::script::WitnessScriptTag::clone(&self) -> bitcoin_primitives::script::WitnessScriptTag +pub fn bitcoin_primitives::script::WitnessScriptTag::cmp(&self, other: &bitcoin_primitives::script::WitnessScriptTag) -> core::cmp::Ordering +pub fn bitcoin_primitives::script::WitnessScriptTag::eq(&self, other: &bitcoin_primitives::script::WitnessScriptTag) -> bool +pub fn bitcoin_primitives::script::WitnessScriptTag::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::script::WitnessScriptTag::partial_cmp(&self, other: &bitcoin_primitives::script::WitnessScriptTag) -> core::option::Option +pub fn bitcoin_primitives::transaction::OutPoint::clone(&self) -> bitcoin_primitives::transaction::OutPoint +pub fn bitcoin_primitives::transaction::OutPoint::cmp(&self, other: &bitcoin_primitives::transaction::OutPoint) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::OutPoint::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::OutPoint::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::OutPoint::eq(&self, other: &bitcoin_primitives::transaction::OutPoint) -> bool +pub fn bitcoin_primitives::transaction::OutPoint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::OutPoint::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::OutPoint::partial_cmp(&self, other: &bitcoin_primitives::transaction::OutPoint) -> core::option::Option +pub fn bitcoin_primitives::transaction::OutPointDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::OutPointDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPointDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPointDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::OutPointDecoderError::clone(&self) -> bitcoin_primitives::transaction::OutPointDecoderError +pub fn bitcoin_primitives::transaction::OutPointDecoderError::eq(&self, other: &bitcoin_primitives::transaction::OutPointDecoderError) -> bool +pub fn bitcoin_primitives::transaction::OutPointDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::OutPointEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::OutPointEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::Transaction::clone(&self) -> bitcoin_primitives::transaction::Transaction +pub fn bitcoin_primitives::transaction::Transaction::cmp(&self, other: &Self) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::Transaction::compute_ntxid(&self) -> bitcoin_primitives::Ntxid +pub fn bitcoin_primitives::transaction::Transaction::compute_txid(&self) -> bitcoin_primitives::Txid +pub fn bitcoin_primitives::transaction::Transaction::compute_wtxid(&self) -> bitcoin_primitives::Wtxid +pub fn bitcoin_primitives::transaction::Transaction::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::Transaction::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::Transaction::eq(&self, other: &bitcoin_primitives::transaction::Transaction) -> bool +pub fn bitcoin_primitives::transaction::Transaction::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::Transaction::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::Transaction::is_coinbase(&self) -> bool +pub fn bitcoin_primitives::transaction::Transaction::partial_cmp(&self, other: &Self) -> core::option::Option +pub fn bitcoin_primitives::transaction::TransactionDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TransactionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TransactionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TransactionDecoderError::clone(&self) -> bitcoin_primitives::transaction::TransactionDecoderError +pub fn bitcoin_primitives::transaction::TransactionDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TransactionDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TransactionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::VecDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::VecDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_primitives::transaction::VersionDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_primitives::witness::WitnessDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(e: bitcoin_units::locktime::absolute::error::LockTimeDecoderError) -> Self +pub fn bitcoin_primitives::transaction::TransactionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TransactionEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::TransactionEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::TxIn::clone(&self) -> bitcoin_primitives::transaction::TxIn +pub fn bitcoin_primitives::transaction::TxIn::cmp(&self, other: &bitcoin_primitives::transaction::TxIn) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::TxIn::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::TxIn::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::TxIn::eq(&self, other: &bitcoin_primitives::transaction::TxIn) -> bool +pub fn bitcoin_primitives::transaction::TxIn::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxIn::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::TxIn::partial_cmp(&self, other: &bitcoin_primitives::transaction::TxIn) -> core::option::Option +pub fn bitcoin_primitives::transaction::TxInDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxInDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxInDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxInDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxInDecoderError +pub fn bitcoin_primitives::transaction::TxInDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxInDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxInDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxInDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TxInEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::TxInEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxMerkleNodeDecoderError +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxMerkleNodeDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TxOut::clone(&self) -> bitcoin_primitives::transaction::TxOut +pub fn bitcoin_primitives::transaction::TxOut::cmp(&self, other: &bitcoin_primitives::transaction::TxOut) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::TxOut::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::TxOut::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::TxOut::eq(&self, other: &bitcoin_primitives::transaction::TxOut) -> bool +pub fn bitcoin_primitives::transaction::TxOut::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxOut::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::TxOut::partial_cmp(&self, other: &bitcoin_primitives::transaction::TxOut) -> core::option::Option +pub fn bitcoin_primitives::transaction::TxOutDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxOutDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxOutDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxOutDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxOutDecoderError +pub fn bitcoin_primitives::transaction::TxOutDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxOutDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxOutDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxOutDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::TxOutEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::TxOutEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::Version::clone(&self) -> bitcoin_primitives::transaction::Version +pub fn bitcoin_primitives::transaction::Version::cmp(&self, other: &bitcoin_primitives::transaction::Version) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::Version::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::Version::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::Version::eq(&self, other: &bitcoin_primitives::transaction::Version) -> bool +pub fn bitcoin_primitives::transaction::Version::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::Version::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::Version::partial_cmp(&self, other: &bitcoin_primitives::transaction::Version) -> core::option::Option +pub fn bitcoin_primitives::transaction::VersionDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::VersionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::VersionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::VersionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::VersionDecoderError::clone(&self) -> bitcoin_primitives::transaction::VersionDecoderError +pub fn bitcoin_primitives::transaction::VersionDecoderError::eq(&self, other: &bitcoin_primitives::transaction::VersionDecoderError) -> bool +pub fn bitcoin_primitives::transaction::VersionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::VersionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::VersionEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::VersionEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::WitnessesEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::WitnessesEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::WitnessesEncoder<'e>::new(inputs: &'e [bitcoin_primitives::transaction::TxIn]) -> Self +pub fn bitcoin_primitives::witness::Iter<'a>::clone(&self) -> bitcoin_primitives::witness::Iter<'a> +pub fn bitcoin_primitives::witness::Iter<'a>::next(&mut self) -> core::option::Option +pub fn bitcoin_primitives::witness::Iter<'a>::size_hint(&self) -> (usize, core::option::Option) +pub fn bitcoin_primitives::witness::UnexpectedEofError::clone(&self) -> bitcoin_primitives::witness::UnexpectedEofError +pub fn bitcoin_primitives::witness::UnexpectedEofError::eq(&self, other: &bitcoin_primitives::witness::UnexpectedEofError) -> bool +pub fn bitcoin_primitives::witness::UnexpectedEofError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::witness::Witness::clear(&mut self) +pub fn bitcoin_primitives::witness::Witness::clone(&self) -> bitcoin_primitives::witness::Witness +pub fn bitcoin_primitives::witness::Witness::cmp(&self, other: &bitcoin_primitives::witness::Witness) -> core::cmp::Ordering +pub fn bitcoin_primitives::witness::Witness::decoder() -> Self::Decoder +pub fn bitcoin_primitives::witness::Witness::default() -> Self +pub fn bitcoin_primitives::witness::Witness::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::witness::Witness::eq(&self, other: &bitcoin_primitives::witness::Witness) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &&[T; N]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &&[T]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &[T; N]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &[T]) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::boxed::Box<[T]>) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::rc::Rc<[T]>) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::sync::Arc<[T]>) -> bool +pub fn bitcoin_primitives::witness::Witness::eq(&self, rhs: &alloc::vec::Vec) -> bool +pub fn bitcoin_primitives::witness::Witness::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::witness::Witness::from(arr: &[&[u8]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(arr: [&[u8]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[&[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[&[u8; N]]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[&[u8]]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[[u8; N]]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: &[alloc::vec::Vec]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: [&[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(slice: [[u8; M]; N]) -> Self +pub fn bitcoin_primitives::witness::Witness::from(vec: alloc::vec::Vec<&[u8]>) -> Self +pub fn bitcoin_primitives::witness::Witness::from(vec: alloc::vec::Vec>) -> Self +pub fn bitcoin_primitives::witness::Witness::from_iter>(iter: I) -> Self +pub fn bitcoin_primitives::witness::Witness::from_slice>(slice: &[T]) -> Self +pub fn bitcoin_primitives::witness::Witness::get(&self, index: usize) -> core::option::Option<&[u8]> +pub fn bitcoin_primitives::witness::Witness::get_back(&self, index: usize) -> core::option::Option<&[u8]> +pub fn bitcoin_primitives::witness::Witness::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::witness::Witness::index(&self, index: usize) -> &Self::Output +pub fn bitcoin_primitives::witness::Witness::is_empty(&self) -> bool +pub fn bitcoin_primitives::witness::Witness::iter(&self) -> bitcoin_primitives::witness::Iter<'_> +pub fn bitcoin_primitives::witness::Witness::last(&self) -> core::option::Option<&[u8]> +pub fn bitcoin_primitives::witness::Witness::partial_cmp(&self, other: &bitcoin_primitives::witness::Witness) -> core::option::Option +pub fn bitcoin_primitives::witness::Witness::push>(&mut self, new_element: T) +pub fn bitcoin_primitives::witness::Witness::size(&self) -> usize +pub fn bitcoin_primitives::witness::Witness::to_vec(&self) -> alloc::vec::Vec> +pub fn bitcoin_primitives::witness::WitnessDecoder::default() -> Self +pub fn bitcoin_primitives::witness::WitnessDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::witness::WitnessDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::witness::WitnessDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::witness::WitnessDecoderError::clone(&self) -> bitcoin_primitives::witness::WitnessDecoderError +pub fn bitcoin_primitives::witness::WitnessDecoderError::eq(&self, other: &bitcoin_primitives::witness::WitnessDecoderError) -> bool +pub fn bitcoin_primitives::witness::WitnessDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::witness::WitnessDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::witness::WitnessEncoder<'_>::advance(&mut self) -> bool +pub fn bitcoin_primitives::witness::WitnessEncoder<'_>::current_chunk(&self) -> &[u8] +pub fn u32::from(version: bitcoin_primitives::transaction::Version) -> Self +pub mod bitcoin_primitives +pub mod bitcoin_primitives::block +pub mod bitcoin_primitives::merkle_tree +pub mod bitcoin_primitives::pow +pub mod bitcoin_primitives::script +pub mod bitcoin_primitives::transaction +pub mod bitcoin_primitives::witness +pub struct bitcoin_primitives::Block where V: bitcoin_primitives::block::Validation +pub struct bitcoin_primitives::BlockHash(_) +pub struct bitcoin_primitives::BlockHeader +pub struct bitcoin_primitives::BlockVersion(_) +pub struct bitcoin_primitives::CompactTarget(_) +pub struct bitcoin_primitives::Ntxid(_) +pub struct bitcoin_primitives::OutPoint +pub struct bitcoin_primitives::Transaction +pub struct bitcoin_primitives::TransactionVersion(_) +pub struct bitcoin_primitives::TxIn +pub struct bitcoin_primitives::TxMerkleNode(_) +pub struct bitcoin_primitives::TxOut +pub struct bitcoin_primitives::Txid(_) +pub struct bitcoin_primitives::Witness +pub struct bitcoin_primitives::WitnessCommitment(_) +pub struct bitcoin_primitives::WitnessMerkleNode(_) +pub struct bitcoin_primitives::Wtxid(_) +pub struct bitcoin_primitives::block::Block where V: bitcoin_primitives::block::Validation +pub struct bitcoin_primitives::block::BlockDecoder(_) +pub struct bitcoin_primitives::block::BlockDecoderError(_) +pub struct bitcoin_primitives::block::BlockEncoder<'e>(_) +pub struct bitcoin_primitives::block::BlockHash(_) +pub struct bitcoin_primitives::block::BlockHashDecoder(_) +pub struct bitcoin_primitives::block::BlockHashDecoderError(_) +pub struct bitcoin_primitives::block::BlockHashEncoder(_) +pub struct bitcoin_primitives::block::Header +pub struct bitcoin_primitives::block::HeaderDecoder(_) +pub struct bitcoin_primitives::block::HeaderEncoder(_) +pub struct bitcoin_primitives::block::Version(_) +pub struct bitcoin_primitives::block::VersionDecoder(_) +pub struct bitcoin_primitives::block::VersionDecoderError(_) +pub struct bitcoin_primitives::block::VersionEncoder(_) +pub struct bitcoin_primitives::block::WitnessCommitment(_) +pub struct bitcoin_primitives::merkle_tree::TxMerkleNode(_) +pub struct bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder(_) +pub struct bitcoin_primitives::merkle_tree::WitnessMerkleNode(_) +pub struct bitcoin_primitives::pow::CompactTarget(_) +pub struct bitcoin_primitives::pow::CompactTargetDecoder(_) +pub struct bitcoin_primitives::pow::CompactTargetDecoderError(_) +pub struct bitcoin_primitives::pow::CompactTargetEncoder(_) +pub struct bitcoin_primitives::script::RedeemScriptSizeError +pub struct bitcoin_primitives::script::ScriptBuf(_, _) +pub struct bitcoin_primitives::script::ScriptBufDecoder(_, _) +pub struct bitcoin_primitives::script::ScriptBufDecoderError(_) +pub struct bitcoin_primitives::script::ScriptEncoder<'e>(_) +pub struct bitcoin_primitives::script::ScriptHash(_) +pub struct bitcoin_primitives::script::WScriptHash(_) +pub struct bitcoin_primitives::script::WitnessScriptSizeError +pub struct bitcoin_primitives::transaction::BlockHashDecoder(_) +pub struct bitcoin_primitives::transaction::BlockHashDecoderError(_) +pub struct bitcoin_primitives::transaction::Ntxid(_) +pub struct bitcoin_primitives::transaction::OutPoint +pub struct bitcoin_primitives::transaction::OutPointDecoder(_) +pub struct bitcoin_primitives::transaction::OutPointDecoderError(_) +pub struct bitcoin_primitives::transaction::OutPointEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::Transaction +pub struct bitcoin_primitives::transaction::TransactionDecoder +pub struct bitcoin_primitives::transaction::TransactionDecoderError(_) +pub struct bitcoin_primitives::transaction::TransactionEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::TxIn +pub struct bitcoin_primitives::transaction::TxInDecoder(_) +pub struct bitcoin_primitives::transaction::TxInDecoderError(_) +pub struct bitcoin_primitives::transaction::TxInEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::TxMerkleNodeDecoder(_) +pub struct bitcoin_primitives::transaction::TxMerkleNodeDecoderError(_) +pub struct bitcoin_primitives::transaction::TxOut +pub struct bitcoin_primitives::transaction::TxOutDecoder(_) +pub struct bitcoin_primitives::transaction::TxOutDecoderError(_) +pub struct bitcoin_primitives::transaction::TxOutEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::Txid(_) +pub struct bitcoin_primitives::transaction::Version(_) +pub struct bitcoin_primitives::transaction::VersionDecoder(_) +pub struct bitcoin_primitives::transaction::VersionDecoderError(_) +pub struct bitcoin_primitives::transaction::VersionEncoder(_) +pub struct bitcoin_primitives::transaction::WitnessesEncoder<'e> +pub struct bitcoin_primitives::transaction::Wtxid(_) +pub struct bitcoin_primitives::witness::Iter<'a> +pub struct bitcoin_primitives::witness::UnexpectedEofError +pub struct bitcoin_primitives::witness::Witness +pub struct bitcoin_primitives::witness::WitnessDecoder +pub struct bitcoin_primitives::witness::WitnessDecoderError(_) +pub struct bitcoin_primitives::witness::WitnessEncoder<'a>(_) +pub trait bitcoin_primitives::BlockValidation: bitcoin_primitives::block::sealed::Validation + core::marker::Sync + core::marker::Send + core::marker::Sized + core::marker::Unpin +pub trait bitcoin_primitives::block::Validation: bitcoin_primitives::block::sealed::Validation + core::marker::Sync + core::marker::Send + core::marker::Sized + core::marker::Unpin +pub trait bitcoin_primitives::script::ScriptHashableTag: bitcoin_primitives::script::sealed::Sealed +pub trait bitcoin_primitives::script::Tag +pub type &'a bitcoin_primitives::witness::Witness::IntoIter = bitcoin_primitives::witness::Iter<'a> +pub type &'a bitcoin_primitives::witness::Witness::Item = &'a [u8] +pub type bitcoin_primitives::BlockHash::Decoder = bitcoin_primitives::block::BlockHashDecoder +pub type bitcoin_primitives::BlockHash::Encoder<'e> = bitcoin_primitives::block::BlockHashEncoder +pub type bitcoin_primitives::RedeemScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::RedeemScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::ScriptPubKey = bitcoin_primitives::script::Script +pub type bitcoin_primitives::ScriptPubKeyBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::ScriptSig = bitcoin_primitives::script::Script +pub type bitcoin_primitives::ScriptSigBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::TapScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::TapScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::TxMerkleNode::Decoder = bitcoin_primitives::transaction::TxMerkleNodeDecoder +pub type bitcoin_primitives::TxMerkleNode::Encoder<'e> = bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +pub type bitcoin_primitives::WitnessMerkleNode::Decoder = bitcoin_primitives::hash_types::witness_merkle_node::WitnessMerkleNodeDecoder +pub type bitcoin_primitives::WitnessMerkleNode::Encoder<'e> = bitcoin_primitives::hash_types::witness_merkle_node::WitnessMerkleNodeEncoder +pub type bitcoin_primitives::WitnessScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::WitnessScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::block::Block::Decoder = bitcoin_primitives::block::BlockDecoder +pub type bitcoin_primitives::block::Block::Encoder<'e> where Self: 'e = bitcoin_consensus_encoding::encode::encoders::Encoder2>> +pub type bitcoin_primitives::block::BlockDecoder::Error = bitcoin_primitives::block::BlockDecoderError +pub type bitcoin_primitives::block::BlockDecoder::Output = bitcoin_primitives::block::Block +pub type bitcoin_primitives::block::BlockHashDecoder::Error = bitcoin_primitives::block::BlockHashDecoderError +pub type bitcoin_primitives::block::BlockHashDecoder::Output = bitcoin_primitives::BlockHash +pub type bitcoin_primitives::block::Header::Decoder = bitcoin_primitives::block::HeaderDecoder +pub type bitcoin_primitives::block::Header::Encoder<'e> = bitcoin_primitives::block::HeaderEncoder +pub type bitcoin_primitives::block::HeaderDecoder::Error = bitcoin_primitives::block::HeaderDecoderError +pub type bitcoin_primitives::block::HeaderDecoder::Output = bitcoin_primitives::block::Header +pub type bitcoin_primitives::block::Version::Decoder = bitcoin_primitives::block::VersionDecoder +pub type bitcoin_primitives::block::Version::Encoder<'e> = bitcoin_primitives::block::VersionEncoder +pub type bitcoin_primitives::block::VersionDecoder::Error = bitcoin_primitives::block::VersionDecoderError +pub type bitcoin_primitives::block::VersionDecoder::Output = bitcoin_primitives::block::Version +pub type bitcoin_primitives::pow::CompactTarget::Decoder = bitcoin_primitives::pow::CompactTargetDecoder +pub type bitcoin_primitives::pow::CompactTarget::Encoder<'e> = bitcoin_primitives::pow::CompactTargetEncoder +pub type bitcoin_primitives::pow::CompactTargetDecoder::Error = bitcoin_primitives::pow::CompactTargetDecoderError +pub type bitcoin_primitives::pow::CompactTargetDecoder::Output = bitcoin_primitives::pow::CompactTarget +pub type bitcoin_primitives::script::RedeemScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::RedeemScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::Script::Encoder<'a> where Self: 'a = bitcoin_primitives::script::ScriptEncoder<'a> +pub type bitcoin_primitives::script::Script::Output = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::Script::Owned = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptBuf::Decoder = bitcoin_primitives::script::ScriptBufDecoder +pub type bitcoin_primitives::script::ScriptBuf::Target = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::ScriptBufDecoder::Error = bitcoin_primitives::script::ScriptBufDecoderError +pub type bitcoin_primitives::script::ScriptBufDecoder::Output = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptHash::Error = bitcoin_primitives::script::RedeemScriptSizeError +pub type bitcoin_primitives::script::ScriptPubKey = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::ScriptPubKeyBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptPubKeyBufDecoder = bitcoin_primitives::script::ScriptBufDecoder +pub type bitcoin_primitives::script::ScriptSig = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::ScriptSigBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::ScriptSigBufDecoder = bitcoin_primitives::script::ScriptBufDecoder +pub type bitcoin_primitives::script::TapScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::TapScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::script::WScriptHash::Error = bitcoin_primitives::script::WitnessScriptSizeError +pub type bitcoin_primitives::script::WitnessScript = bitcoin_primitives::script::Script +pub type bitcoin_primitives::script::WitnessScriptBuf = bitcoin_primitives::script::ScriptBuf +pub type bitcoin_primitives::transaction::OutPoint::Decoder = bitcoin_primitives::transaction::OutPointDecoder +pub type bitcoin_primitives::transaction::OutPoint::Encoder<'e> where Self: 'e = bitcoin_primitives::transaction::OutPointEncoder<'e> +pub type bitcoin_primitives::transaction::OutPointDecoder::Error = bitcoin_primitives::transaction::OutPointDecoderError +pub type bitcoin_primitives::transaction::OutPointDecoder::Output = bitcoin_primitives::transaction::OutPoint +pub type bitcoin_primitives::transaction::Transaction::Decoder = bitcoin_primitives::transaction::TransactionDecoder +pub type bitcoin_primitives::transaction::Transaction::Encoder<'e> where Self: 'e = bitcoin_primitives::transaction::TransactionEncoder<'e> +pub type bitcoin_primitives::transaction::TransactionDecoder::Error = bitcoin_primitives::transaction::TransactionDecoderError +pub type bitcoin_primitives::transaction::TransactionDecoder::Output = bitcoin_primitives::transaction::Transaction +pub type bitcoin_primitives::transaction::TxIn::Decoder = bitcoin_primitives::transaction::TxInDecoder +pub type bitcoin_primitives::transaction::TxIn::Encoder<'e> where Self: 'e = bitcoin_consensus_encoding::encode::encoders::Encoder3, bitcoin_primitives::script::ScriptEncoder<'e>, bitcoin_units::sequence::SequenceEncoder> +pub type bitcoin_primitives::transaction::TxInDecoder::Error = bitcoin_primitives::transaction::TxInDecoderError +pub type bitcoin_primitives::transaction::TxInDecoder::Output = bitcoin_primitives::transaction::TxIn +pub type bitcoin_primitives::transaction::TxMerkleNodeDecoder::Error = bitcoin_primitives::transaction::TxMerkleNodeDecoderError +pub type bitcoin_primitives::transaction::TxMerkleNodeDecoder::Output = bitcoin_primitives::TxMerkleNode +pub type bitcoin_primitives::transaction::TxOut::Decoder = bitcoin_primitives::transaction::TxOutDecoder +pub type bitcoin_primitives::transaction::TxOut::Encoder<'e> where Self: 'e = bitcoin_consensus_encoding::encode::encoders::Encoder2> +pub type bitcoin_primitives::transaction::TxOutDecoder::Error = bitcoin_primitives::transaction::TxOutDecoderError +pub type bitcoin_primitives::transaction::TxOutDecoder::Output = bitcoin_primitives::transaction::TxOut +pub type bitcoin_primitives::transaction::Version::Decoder = bitcoin_primitives::transaction::VersionDecoder +pub type bitcoin_primitives::transaction::Version::Encoder<'e> = bitcoin_primitives::transaction::VersionEncoder +pub type bitcoin_primitives::transaction::VersionDecoder::Error = bitcoin_primitives::transaction::VersionDecoderError +pub type bitcoin_primitives::transaction::VersionDecoder::Output = bitcoin_primitives::transaction::Version +pub type bitcoin_primitives::witness::Iter<'a>::Item = &'a [u8] +pub type bitcoin_primitives::witness::Witness::Decoder = bitcoin_primitives::witness::WitnessDecoder +pub type bitcoin_primitives::witness::Witness::Encoder<'a> where Self: 'a = bitcoin_primitives::witness::WitnessEncoder<'a> +pub type bitcoin_primitives::witness::Witness::Output = [u8] +pub type bitcoin_primitives::witness::WitnessDecoder::Error = bitcoin_primitives::witness::WitnessDecoderError +pub type bitcoin_primitives::witness::WitnessDecoder::Output = bitcoin_primitives::witness::Witness +pub use bitcoin_primitives::Amount +pub use bitcoin_primitives::BlockHeight +pub use bitcoin_primitives::BlockHeightInterval +pub use bitcoin_primitives::BlockMtp +pub use bitcoin_primitives::BlockMtpInterval +pub use bitcoin_primitives::BlockTime +pub use bitcoin_primitives::BlockTimeDecoder +pub use bitcoin_primitives::BlockTimeDecoderError +pub use bitcoin_primitives::FeeRate +pub use bitcoin_primitives::NumOpResult +pub use bitcoin_primitives::Sequence +pub use bitcoin_primitives::SignedAmount +pub use bitcoin_primitives::Weight +pub use bitcoin_primitives::absolute +pub use bitcoin_primitives::amount +pub use bitcoin_primitives::block::BlockHeight +pub use bitcoin_primitives::block::BlockHeightDecoder +pub use bitcoin_primitives::block::BlockHeightDecoderError +pub use bitcoin_primitives::block::BlockHeightEncoder +pub use bitcoin_primitives::block::BlockHeightInterval +pub use bitcoin_primitives::block::BlockMtp +pub use bitcoin_primitives::block::BlockMtpInterval +pub use bitcoin_primitives::block::TooBigForRelativeHeightError +pub use bitcoin_primitives::fee_rate +pub use bitcoin_primitives::locktime +pub use bitcoin_primitives::parse_int +pub use bitcoin_primitives::relative +pub use bitcoin_primitives::result +pub use bitcoin_primitives::sequence +pub use bitcoin_primitives::time +pub use bitcoin_primitives::weight diff --git a/api/primitives/no-features.txt b/api/primitives/no-features.txt new file mode 100644 index 0000000000..9a8113810b --- /dev/null +++ b/api/primitives/no-features.txt @@ -0,0 +1,789 @@ +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::BlockHash +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::TxMerkleNode +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::WitnessMerkleNode +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::block::Version +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::pow::CompactTarget +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::OutPoint +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_primitives::transaction::Version +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::BlockHashDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::block::VersionDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::pow::CompactTargetDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::OutPointDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_primitives::transaction::VersionDecoder +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::BlockHash +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::TxMerkleNode +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::WitnessMerkleNode +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Header +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::block::Version +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::pow::CompactTarget +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::OutPoint +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_primitives::transaction::Version +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::BlockHashEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::HeaderEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::block::VersionEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::pow::CompactTargetEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::VersionEncoder +impl bitcoin_primitives::BlockHash +impl bitcoin_primitives::Ntxid +impl bitcoin_primitives::TxMerkleNode +impl bitcoin_primitives::Txid +impl bitcoin_primitives::WitnessCommitment +impl bitcoin_primitives::WitnessMerkleNode +impl bitcoin_primitives::Wtxid +impl bitcoin_primitives::block::BlockHashDecoder +impl bitcoin_primitives::block::Header +impl bitcoin_primitives::block::Version +impl bitcoin_primitives::block::VersionDecoder +impl bitcoin_primitives::pow::CompactTarget +impl bitcoin_primitives::pow::CompactTargetDecoder +impl bitcoin_primitives::transaction::OutPoint +impl bitcoin_primitives::transaction::OutPointDecoder +impl bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl bitcoin_primitives::transaction::Version +impl bitcoin_primitives::transaction::VersionDecoder +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::BlockHash +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Ntxid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::TxMerkleNode +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Txid +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::WitnessCommitment +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::WitnessMerkleNode +impl core::borrow::Borrow<[u8; 32]> for bitcoin_primitives::Wtxid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::BlockHash +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Ntxid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::TxMerkleNode +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Txid +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::WitnessCommitment +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::WitnessMerkleNode +impl core::borrow::Borrow<[u8]> for bitcoin_primitives::Wtxid +impl core::clone::Clone for bitcoin_primitives::BlockHash +impl core::clone::Clone for bitcoin_primitives::Ntxid +impl core::clone::Clone for bitcoin_primitives::TxMerkleNode +impl core::clone::Clone for bitcoin_primitives::Txid +impl core::clone::Clone for bitcoin_primitives::WitnessCommitment +impl core::clone::Clone for bitcoin_primitives::WitnessMerkleNode +impl core::clone::Clone for bitcoin_primitives::Wtxid +impl core::clone::Clone for bitcoin_primitives::block::BlockHashDecoderError +impl core::clone::Clone for bitcoin_primitives::block::Header +impl core::clone::Clone for bitcoin_primitives::block::Version +impl core::clone::Clone for bitcoin_primitives::block::VersionDecoderError +impl core::clone::Clone for bitcoin_primitives::pow::CompactTarget +impl core::clone::Clone for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::OutPoint +impl core::clone::Clone for bitcoin_primitives::transaction::OutPointDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::clone::Clone for bitcoin_primitives::transaction::Version +impl core::clone::Clone for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::Eq for bitcoin_primitives::BlockHash +impl core::cmp::Eq for bitcoin_primitives::Ntxid +impl core::cmp::Eq for bitcoin_primitives::TxMerkleNode +impl core::cmp::Eq for bitcoin_primitives::Txid +impl core::cmp::Eq for bitcoin_primitives::WitnessCommitment +impl core::cmp::Eq for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::Eq for bitcoin_primitives::Wtxid +impl core::cmp::Eq for bitcoin_primitives::block::BlockHashDecoderError +impl core::cmp::Eq for bitcoin_primitives::block::Header +impl core::cmp::Eq for bitcoin_primitives::block::Version +impl core::cmp::Eq for bitcoin_primitives::block::VersionDecoderError +impl core::cmp::Eq for bitcoin_primitives::pow::CompactTarget +impl core::cmp::Eq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::OutPoint +impl core::cmp::Eq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::cmp::Eq for bitcoin_primitives::transaction::Version +impl core::cmp::Eq for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::Ord for bitcoin_primitives::BlockHash +impl core::cmp::Ord for bitcoin_primitives::Ntxid +impl core::cmp::Ord for bitcoin_primitives::TxMerkleNode +impl core::cmp::Ord for bitcoin_primitives::Txid +impl core::cmp::Ord for bitcoin_primitives::WitnessCommitment +impl core::cmp::Ord for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::Ord for bitcoin_primitives::Wtxid +impl core::cmp::Ord for bitcoin_primitives::block::Header +impl core::cmp::Ord for bitcoin_primitives::block::Version +impl core::cmp::Ord for bitcoin_primitives::pow::CompactTarget +impl core::cmp::Ord for bitcoin_primitives::transaction::OutPoint +impl core::cmp::Ord for bitcoin_primitives::transaction::Version +impl core::cmp::PartialEq for bitcoin_primitives::BlockHash +impl core::cmp::PartialEq for bitcoin_primitives::Ntxid +impl core::cmp::PartialEq for bitcoin_primitives::TxMerkleNode +impl core::cmp::PartialEq for bitcoin_primitives::Txid +impl core::cmp::PartialEq for bitcoin_primitives::WitnessCommitment +impl core::cmp::PartialEq for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::PartialEq for bitcoin_primitives::Wtxid +impl core::cmp::PartialEq for bitcoin_primitives::block::BlockHashDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::block::Header +impl core::cmp::PartialEq for bitcoin_primitives::block::Version +impl core::cmp::PartialEq for bitcoin_primitives::block::VersionDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::pow::CompactTarget +impl core::cmp::PartialEq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::OutPoint +impl core::cmp::PartialEq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::cmp::PartialEq for bitcoin_primitives::transaction::Version +impl core::cmp::PartialEq for bitcoin_primitives::transaction::VersionDecoderError +impl core::cmp::PartialOrd for bitcoin_primitives::BlockHash +impl core::cmp::PartialOrd for bitcoin_primitives::Ntxid +impl core::cmp::PartialOrd for bitcoin_primitives::TxMerkleNode +impl core::cmp::PartialOrd for bitcoin_primitives::Txid +impl core::cmp::PartialOrd for bitcoin_primitives::WitnessCommitment +impl core::cmp::PartialOrd for bitcoin_primitives::WitnessMerkleNode +impl core::cmp::PartialOrd for bitcoin_primitives::Wtxid +impl core::cmp::PartialOrd for bitcoin_primitives::block::Header +impl core::cmp::PartialOrd for bitcoin_primitives::block::Version +impl core::cmp::PartialOrd for bitcoin_primitives::pow::CompactTarget +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::OutPoint +impl core::cmp::PartialOrd for bitcoin_primitives::transaction::Version +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::BlockHash +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Ntxid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::TxMerkleNode +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Txid +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::WitnessCommitment +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::WitnessMerkleNode +impl core::convert::AsRef<[u8; 32]> for bitcoin_primitives::Wtxid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::BlockHash +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Ntxid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::TxMerkleNode +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Txid +impl core::convert::AsRef<[u8]> for bitcoin_primitives::WitnessCommitment +impl core::convert::AsRef<[u8]> for bitcoin_primitives::WitnessMerkleNode +impl core::convert::AsRef<[u8]> for bitcoin_primitives::Wtxid +impl core::convert::From<&bitcoin_primitives::block::Header> for bitcoin_primitives::BlockHash +impl core::convert::From for bitcoin_primitives::block::BlockHashDecoderError +impl core::convert::From for bitcoin_primitives::block::VersionDecoderError +impl core::convert::From for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::convert::From for bitcoin_primitives::BlockHash +impl core::convert::From for u32 +impl core::convert::From for bitcoin_primitives::block::BlockHashDecoderError +impl core::convert::From for bitcoin_primitives::block::VersionDecoderError +impl core::convert::From for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::convert::From for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::convert::From for bitcoin_primitives::transaction::VersionDecoderError +impl core::default::Default for bitcoin_primitives::block::BlockHashDecoder +impl core::default::Default for bitcoin_primitives::block::Version +impl core::default::Default for bitcoin_primitives::block::VersionDecoder +impl core::default::Default for bitcoin_primitives::pow::CompactTargetDecoder +impl core::default::Default for bitcoin_primitives::transaction::OutPointDecoder +impl core::default::Default for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::default::Default for bitcoin_primitives::transaction::VersionDecoder +impl core::fmt::Debug for bitcoin_primitives::BlockHash +impl core::fmt::Debug for bitcoin_primitives::Ntxid +impl core::fmt::Debug for bitcoin_primitives::TxMerkleNode +impl core::fmt::Debug for bitcoin_primitives::Txid +impl core::fmt::Debug for bitcoin_primitives::WitnessCommitment +impl core::fmt::Debug for bitcoin_primitives::WitnessMerkleNode +impl core::fmt::Debug for bitcoin_primitives::Wtxid +impl core::fmt::Debug for bitcoin_primitives::block::BlockHashDecoderError +impl core::fmt::Debug for bitcoin_primitives::block::Header +impl core::fmt::Debug for bitcoin_primitives::block::Version +impl core::fmt::Debug for bitcoin_primitives::block::VersionDecoderError +impl core::fmt::Debug for bitcoin_primitives::pow::CompactTarget +impl core::fmt::Debug for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::OutPoint +impl core::fmt::Debug for bitcoin_primitives::transaction::OutPointDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::fmt::Debug for bitcoin_primitives::transaction::Version +impl core::fmt::Debug for bitcoin_primitives::transaction::VersionDecoderError +impl core::fmt::Display for bitcoin_primitives::block::BlockHashDecoderError +impl core::fmt::Display for bitcoin_primitives::block::VersionDecoderError +impl core::fmt::Display for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::OutPointDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::fmt::Display for bitcoin_primitives::transaction::Version +impl core::fmt::Display for bitcoin_primitives::transaction::VersionDecoderError +impl core::fmt::LowerHex for bitcoin_primitives::pow::CompactTarget +impl core::fmt::UpperHex for bitcoin_primitives::pow::CompactTarget +impl core::hash::Hash for bitcoin_primitives::BlockHash +impl core::hash::Hash for bitcoin_primitives::Ntxid +impl core::hash::Hash for bitcoin_primitives::TxMerkleNode +impl core::hash::Hash for bitcoin_primitives::Txid +impl core::hash::Hash for bitcoin_primitives::WitnessCommitment +impl core::hash::Hash for bitcoin_primitives::WitnessMerkleNode +impl core::hash::Hash for bitcoin_primitives::Wtxid +impl core::hash::Hash for bitcoin_primitives::block::Header +impl core::hash::Hash for bitcoin_primitives::block::Version +impl core::hash::Hash for bitcoin_primitives::pow::CompactTarget +impl core::hash::Hash for bitcoin_primitives::transaction::OutPoint +impl core::hash::Hash for bitcoin_primitives::transaction::Version +impl core::marker::Copy for bitcoin_primitives::BlockHash +impl core::marker::Copy for bitcoin_primitives::Ntxid +impl core::marker::Copy for bitcoin_primitives::TxMerkleNode +impl core::marker::Copy for bitcoin_primitives::Txid +impl core::marker::Copy for bitcoin_primitives::WitnessCommitment +impl core::marker::Copy for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Copy for bitcoin_primitives::Wtxid +impl core::marker::Copy for bitcoin_primitives::block::Header +impl core::marker::Copy for bitcoin_primitives::block::Version +impl core::marker::Copy for bitcoin_primitives::pow::CompactTarget +impl core::marker::Copy for bitcoin_primitives::transaction::OutPoint +impl core::marker::Copy for bitcoin_primitives::transaction::Version +impl core::marker::Freeze for bitcoin_primitives::BlockHash +impl core::marker::Freeze for bitcoin_primitives::Ntxid +impl core::marker::Freeze for bitcoin_primitives::TxMerkleNode +impl core::marker::Freeze for bitcoin_primitives::Txid +impl core::marker::Freeze for bitcoin_primitives::WitnessCommitment +impl core::marker::Freeze for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Freeze for bitcoin_primitives::Wtxid +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Freeze for bitcoin_primitives::block::Header +impl core::marker::Freeze for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Freeze for bitcoin_primitives::block::Version +impl core::marker::Freeze for bitcoin_primitives::block::VersionDecoder +impl core::marker::Freeze for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Freeze for bitcoin_primitives::block::VersionEncoder +impl core::marker::Freeze for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTarget +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Freeze for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPoint +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::Version +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Freeze for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Send for bitcoin_primitives::BlockHash +impl core::marker::Send for bitcoin_primitives::Ntxid +impl core::marker::Send for bitcoin_primitives::TxMerkleNode +impl core::marker::Send for bitcoin_primitives::Txid +impl core::marker::Send for bitcoin_primitives::WitnessCommitment +impl core::marker::Send for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Send for bitcoin_primitives::Wtxid +impl core::marker::Send for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Send for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Send for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Send for bitcoin_primitives::block::Header +impl core::marker::Send for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Send for bitcoin_primitives::block::Version +impl core::marker::Send for bitcoin_primitives::block::VersionDecoder +impl core::marker::Send for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Send for bitcoin_primitives::block::VersionEncoder +impl core::marker::Send for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Send for bitcoin_primitives::pow::CompactTarget +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Send for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Send for bitcoin_primitives::transaction::OutPoint +impl core::marker::Send for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Send for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Send for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::Version +impl core::marker::Send for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Send for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Send for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::StructuralPartialEq for bitcoin_primitives::BlockHash +impl core::marker::StructuralPartialEq for bitcoin_primitives::Ntxid +impl core::marker::StructuralPartialEq for bitcoin_primitives::TxMerkleNode +impl core::marker::StructuralPartialEq for bitcoin_primitives::Txid +impl core::marker::StructuralPartialEq for bitcoin_primitives::WitnessCommitment +impl core::marker::StructuralPartialEq for bitcoin_primitives::WitnessMerkleNode +impl core::marker::StructuralPartialEq for bitcoin_primitives::Wtxid +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Header +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::Version +impl core::marker::StructuralPartialEq for bitcoin_primitives::block::VersionDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::pow::CompactTarget +impl core::marker::StructuralPartialEq for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::OutPoint +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::Version +impl core::marker::StructuralPartialEq for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::BlockHash +impl core::marker::Sync for bitcoin_primitives::Ntxid +impl core::marker::Sync for bitcoin_primitives::TxMerkleNode +impl core::marker::Sync for bitcoin_primitives::Txid +impl core::marker::Sync for bitcoin_primitives::WitnessCommitment +impl core::marker::Sync for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Sync for bitcoin_primitives::Wtxid +impl core::marker::Sync for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Sync for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Sync for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Sync for bitcoin_primitives::block::Header +impl core::marker::Sync for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Sync for bitcoin_primitives::block::Version +impl core::marker::Sync for bitcoin_primitives::block::VersionDecoder +impl core::marker::Sync for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::block::VersionEncoder +impl core::marker::Sync for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Sync for bitcoin_primitives::pow::CompactTarget +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Sync for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Sync for bitcoin_primitives::transaction::OutPoint +impl core::marker::Sync for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::Version +impl core::marker::Sync for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Sync for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Sync for bitcoin_primitives::transaction::VersionEncoder +impl core::marker::Unpin for bitcoin_primitives::BlockHash +impl core::marker::Unpin for bitcoin_primitives::Ntxid +impl core::marker::Unpin for bitcoin_primitives::TxMerkleNode +impl core::marker::Unpin for bitcoin_primitives::Txid +impl core::marker::Unpin for bitcoin_primitives::WitnessCommitment +impl core::marker::Unpin for bitcoin_primitives::WitnessMerkleNode +impl core::marker::Unpin for bitcoin_primitives::Wtxid +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashDecoder +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::BlockHashEncoder +impl core::marker::Unpin for bitcoin_primitives::block::Header +impl core::marker::Unpin for bitcoin_primitives::block::HeaderEncoder +impl core::marker::Unpin for bitcoin_primitives::block::Version +impl core::marker::Unpin for bitcoin_primitives::block::VersionDecoder +impl core::marker::Unpin for bitcoin_primitives::block::VersionDecoderError +impl core::marker::Unpin for bitcoin_primitives::block::VersionEncoder +impl core::marker::Unpin for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTarget +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetDecoder +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::marker::Unpin for bitcoin_primitives::pow::CompactTargetEncoder +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPoint +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPointDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::OutPointDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::Version +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionDecoder +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionDecoderError +impl core::marker::Unpin for bitcoin_primitives::transaction::VersionEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::BlockHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Ntxid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::TxMerkleNode +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Txid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::WitnessCommitment +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::WitnessMerkleNode +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::Wtxid +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::BlockHashEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Header +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::HeaderEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::Version +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::block::VersionEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTarget +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::pow::CompactTargetEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPoint +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::Version +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::VersionEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::BlockHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Ntxid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::TxMerkleNode +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Txid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::WitnessCommitment +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::WitnessMerkleNode +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::Wtxid +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::BlockHashEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Header +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::HeaderEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::Version +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::block::VersionEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTarget +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::pow::CompactTargetEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPoint +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::TxMerkleNodeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::Version +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::VersionEncoder +impl<'e> bitcoin_consensus_encoding::encode::Encoder for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Freeze for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Send for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Sync for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::marker::Unpin for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::panic::unwind_safe::RefUnwindSafe for bitcoin_primitives::transaction::OutPointEncoder<'e> +impl<'e> core::panic::unwind_safe::UnwindSafe for bitcoin_primitives::transaction::OutPointEncoder<'e> +pub bitcoin_primitives::BlockHeader::bits: bitcoin_primitives::pow::CompactTarget +pub bitcoin_primitives::BlockHeader::merkle_root: bitcoin_primitives::TxMerkleNode +pub bitcoin_primitives::BlockHeader::nonce: u32 +pub bitcoin_primitives::BlockHeader::prev_blockhash: bitcoin_primitives::BlockHash +pub bitcoin_primitives::BlockHeader::time: bitcoin_units::time::encapsulate::BlockTime +pub bitcoin_primitives::BlockHeader::version: bitcoin_primitives::block::Version +pub bitcoin_primitives::OutPoint::txid: bitcoin_primitives::Txid +pub bitcoin_primitives::OutPoint::vout: u32 +pub bitcoin_primitives::block::Header::bits: bitcoin_primitives::pow::CompactTarget +pub bitcoin_primitives::block::Header::merkle_root: bitcoin_primitives::TxMerkleNode +pub bitcoin_primitives::block::Header::nonce: u32 +pub bitcoin_primitives::block::Header::prev_blockhash: bitcoin_primitives::BlockHash +pub bitcoin_primitives::block::Header::time: bitcoin_units::time::encapsulate::BlockTime +pub bitcoin_primitives::block::Header::version: bitcoin_primitives::block::Version +pub bitcoin_primitives::transaction::OutPoint::txid: bitcoin_primitives::Txid +pub bitcoin_primitives::transaction::OutPoint::vout: u32 +pub const bitcoin_primitives::BlockHash::GENESIS_PREVIOUS_BLOCK_HASH: Self +pub const bitcoin_primitives::Txid::COINBASE_PREVOUT: Self +pub const bitcoin_primitives::WitnessCommitment::GENESIS_PREVIOUS_BLOCK_HASH: Self +pub const bitcoin_primitives::Wtxid::COINBASE: Self +pub const bitcoin_primitives::block::Header::SIZE: usize +pub const bitcoin_primitives::block::Version::NO_SOFT_FORK_SIGNALLING: Self +pub const bitcoin_primitives::block::Version::ONE: Self +pub const bitcoin_primitives::block::Version::TWO: Self +pub const bitcoin_primitives::transaction::OutPoint::COINBASE_PREVOUT: Self +pub const bitcoin_primitives::transaction::OutPoint::SIZE: usize +pub const bitcoin_primitives::transaction::Version::ONE: Self +pub const bitcoin_primitives::transaction::Version::THREE: Self +pub const bitcoin_primitives::transaction::Version::TWO: Self +pub const fn bitcoin_primitives::BlockHash::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::BlockHash::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::BlockHash::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Ntxid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Ntxid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Ntxid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::TxMerkleNode::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::TxMerkleNode::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::TxMerkleNode::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Txid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Txid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Txid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::WitnessCommitment::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::WitnessCommitment::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::WitnessCommitment::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::WitnessMerkleNode::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::WitnessMerkleNode::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::WitnessMerkleNode::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::Wtxid::as_byte_array(&self) -> &[u8; 32] +pub const fn bitcoin_primitives::Wtxid::from_byte_array(bytes: [u8; 32]) -> Self +pub const fn bitcoin_primitives::Wtxid::to_byte_array(self) -> [u8; 32] +pub const fn bitcoin_primitives::block::BlockHashDecoder::new() -> Self +pub const fn bitcoin_primitives::block::Version::from_consensus(v: i32) -> Self +pub const fn bitcoin_primitives::block::Version::to_consensus(self) -> i32 +pub const fn bitcoin_primitives::block::VersionDecoder::new() -> Self +pub const fn bitcoin_primitives::pow::CompactTarget::to_consensus(self) -> u32 +pub const fn bitcoin_primitives::pow::CompactTargetDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::OutPointDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::new() -> Self +pub const fn bitcoin_primitives::transaction::Version::is_standard(self) -> bool +pub const fn bitcoin_primitives::transaction::Version::maybe_non_standard(version: u32) -> Self +pub const fn bitcoin_primitives::transaction::Version::to_u32(self) -> u32 +pub const fn bitcoin_primitives::transaction::VersionDecoder::new() -> Self +pub fn bitcoin_primitives::BlockHash::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::BlockHash::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::BlockHash::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::BlockHash::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::BlockHash::clone(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::BlockHash::cmp(&self, other: &bitcoin_primitives::BlockHash) -> core::cmp::Ordering +pub fn bitcoin_primitives::BlockHash::decoder() -> Self::Decoder +pub fn bitcoin_primitives::BlockHash::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::BlockHash::eq(&self, other: &bitcoin_primitives::BlockHash) -> bool +pub fn bitcoin_primitives::BlockHash::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::BlockHash::from(header: &bitcoin_primitives::block::Header) -> Self +pub fn bitcoin_primitives::BlockHash::from(header: bitcoin_primitives::block::Header) -> Self +pub fn bitcoin_primitives::BlockHash::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::BlockHash::partial_cmp(&self, other: &bitcoin_primitives::BlockHash) -> core::option::Option +pub fn bitcoin_primitives::Ntxid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Ntxid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Ntxid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Ntxid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Ntxid::clone(&self) -> bitcoin_primitives::Ntxid +pub fn bitcoin_primitives::Ntxid::cmp(&self, other: &bitcoin_primitives::Ntxid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Ntxid::eq(&self, other: &bitcoin_primitives::Ntxid) -> bool +pub fn bitcoin_primitives::Ntxid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Ntxid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Ntxid::partial_cmp(&self, other: &bitcoin_primitives::Ntxid) -> core::option::Option +pub fn bitcoin_primitives::TxMerkleNode::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::TxMerkleNode::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::TxMerkleNode::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::TxMerkleNode::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::TxMerkleNode::calculate_root>(iter: I) -> core::option::Option +pub fn bitcoin_primitives::TxMerkleNode::clone(&self) -> bitcoin_primitives::TxMerkleNode +pub fn bitcoin_primitives::TxMerkleNode::cmp(&self, other: &bitcoin_primitives::TxMerkleNode) -> core::cmp::Ordering +pub fn bitcoin_primitives::TxMerkleNode::combine(&self, other: &Self) -> Self +pub fn bitcoin_primitives::TxMerkleNode::decoder() -> Self::Decoder +pub fn bitcoin_primitives::TxMerkleNode::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::TxMerkleNode::eq(&self, other: &bitcoin_primitives::TxMerkleNode) -> bool +pub fn bitcoin_primitives::TxMerkleNode::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::TxMerkleNode::from_leaf(leaf: bitcoin_primitives::Txid) -> Self +pub fn bitcoin_primitives::TxMerkleNode::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::TxMerkleNode::partial_cmp(&self, other: &bitcoin_primitives::TxMerkleNode) -> core::option::Option +pub fn bitcoin_primitives::Txid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Txid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Txid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Txid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Txid::clone(&self) -> bitcoin_primitives::Txid +pub fn bitcoin_primitives::Txid::cmp(&self, other: &bitcoin_primitives::Txid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Txid::eq(&self, other: &bitcoin_primitives::Txid) -> bool +pub fn bitcoin_primitives::Txid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Txid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Txid::partial_cmp(&self, other: &bitcoin_primitives::Txid) -> core::option::Option +pub fn bitcoin_primitives::WitnessCommitment::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessCommitment::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessCommitment::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessCommitment::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessCommitment::clone(&self) -> bitcoin_primitives::WitnessCommitment +pub fn bitcoin_primitives::WitnessCommitment::cmp(&self, other: &bitcoin_primitives::WitnessCommitment) -> core::cmp::Ordering +pub fn bitcoin_primitives::WitnessCommitment::eq(&self, other: &bitcoin_primitives::WitnessCommitment) -> bool +pub fn bitcoin_primitives::WitnessCommitment::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::WitnessCommitment::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::WitnessCommitment::partial_cmp(&self, other: &bitcoin_primitives::WitnessCommitment) -> core::option::Option +pub fn bitcoin_primitives::WitnessMerkleNode::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessMerkleNode::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessMerkleNode::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::WitnessMerkleNode::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::WitnessMerkleNode::calculate_root>(iter: I) -> core::option::Option +pub fn bitcoin_primitives::WitnessMerkleNode::clone(&self) -> bitcoin_primitives::WitnessMerkleNode +pub fn bitcoin_primitives::WitnessMerkleNode::cmp(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> core::cmp::Ordering +pub fn bitcoin_primitives::WitnessMerkleNode::combine(&self, other: &Self) -> Self +pub fn bitcoin_primitives::WitnessMerkleNode::decoder() -> Self::Decoder +pub fn bitcoin_primitives::WitnessMerkleNode::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::WitnessMerkleNode::eq(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> bool +pub fn bitcoin_primitives::WitnessMerkleNode::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::WitnessMerkleNode::from_leaf(leaf: bitcoin_primitives::Wtxid) -> Self +pub fn bitcoin_primitives::WitnessMerkleNode::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::WitnessMerkleNode::partial_cmp(&self, other: &bitcoin_primitives::WitnessMerkleNode) -> core::option::Option +pub fn bitcoin_primitives::Wtxid::as_ref(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Wtxid::as_ref(&self) -> &[u8] +pub fn bitcoin_primitives::Wtxid::borrow(&self) -> &[u8; 32] +pub fn bitcoin_primitives::Wtxid::borrow(&self) -> &[u8] +pub fn bitcoin_primitives::Wtxid::clone(&self) -> bitcoin_primitives::Wtxid +pub fn bitcoin_primitives::Wtxid::cmp(&self, other: &bitcoin_primitives::Wtxid) -> core::cmp::Ordering +pub fn bitcoin_primitives::Wtxid::eq(&self, other: &bitcoin_primitives::Wtxid) -> bool +pub fn bitcoin_primitives::Wtxid::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::Wtxid::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::Wtxid::partial_cmp(&self, other: &bitcoin_primitives::Wtxid) -> core::option::Option +pub fn bitcoin_primitives::block::BlockHashDecoder::default() -> Self +pub fn bitcoin_primitives::block::BlockHashDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::BlockHashDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::BlockHashDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::BlockHashDecoderError::clone(&self) -> bitcoin_primitives::block::BlockHashDecoderError +pub fn bitcoin_primitives::block::BlockHashDecoderError::eq(&self, other: &bitcoin_primitives::block::BlockHashDecoderError) -> bool +pub fn bitcoin_primitives::block::BlockHashDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::BlockHashDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::block::BlockHashDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::BlockHashEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::BlockHashEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::Header::block_hash(&self) -> bitcoin_primitives::BlockHash +pub fn bitcoin_primitives::block::Header::clone(&self) -> bitcoin_primitives::block::Header +pub fn bitcoin_primitives::block::Header::cmp(&self, other: &bitcoin_primitives::block::Header) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Header::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Header::eq(&self, other: &bitcoin_primitives::block::Header) -> bool +pub fn bitcoin_primitives::block::Header::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Header::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Header::partial_cmp(&self, other: &bitcoin_primitives::block::Header) -> core::option::Option +pub fn bitcoin_primitives::block::HeaderEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::HeaderEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::block::Version::clone(&self) -> bitcoin_primitives::block::Version +pub fn bitcoin_primitives::block::Version::cmp(&self, other: &bitcoin_primitives::block::Version) -> core::cmp::Ordering +pub fn bitcoin_primitives::block::Version::decoder() -> Self::Decoder +pub fn bitcoin_primitives::block::Version::default() -> Self +pub fn bitcoin_primitives::block::Version::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::block::Version::eq(&self, other: &bitcoin_primitives::block::Version) -> bool +pub fn bitcoin_primitives::block::Version::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::Version::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::block::Version::is_signalling_soft_fork(self, bit: u8) -> bool +pub fn bitcoin_primitives::block::Version::partial_cmp(&self, other: &bitcoin_primitives::block::Version) -> core::option::Option +pub fn bitcoin_primitives::block::VersionDecoder::default() -> Self +pub fn bitcoin_primitives::block::VersionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::block::VersionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::block::VersionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::block::VersionDecoderError::clone(&self) -> bitcoin_primitives::block::VersionDecoderError +pub fn bitcoin_primitives::block::VersionDecoderError::eq(&self, other: &bitcoin_primitives::block::VersionDecoderError) -> bool +pub fn bitcoin_primitives::block::VersionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::block::VersionDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::block::VersionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::block::VersionEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::block::VersionEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::pow::CompactTarget::clone(&self) -> bitcoin_primitives::pow::CompactTarget +pub fn bitcoin_primitives::pow::CompactTarget::cmp(&self, other: &bitcoin_primitives::pow::CompactTarget) -> core::cmp::Ordering +pub fn bitcoin_primitives::pow::CompactTarget::decoder() -> Self::Decoder +pub fn bitcoin_primitives::pow::CompactTarget::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::pow::CompactTarget::eq(&self, other: &bitcoin_primitives::pow::CompactTarget) -> bool +pub fn bitcoin_primitives::pow::CompactTarget::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::pow::CompactTarget::from_consensus(bits: u32) -> Self +pub fn bitcoin_primitives::pow::CompactTarget::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::pow::CompactTarget::partial_cmp(&self, other: &bitcoin_primitives::pow::CompactTarget) -> core::option::Option +pub fn bitcoin_primitives::pow::CompactTargetDecoder::default() -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::clone(&self) -> bitcoin_primitives::pow::CompactTargetDecoderError +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::eq(&self, other: &bitcoin_primitives::pow::CompactTargetDecoderError) -> bool +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::pow::CompactTargetDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::pow::CompactTargetEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::pow::CompactTargetEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::OutPoint::clone(&self) -> bitcoin_primitives::transaction::OutPoint +pub fn bitcoin_primitives::transaction::OutPoint::cmp(&self, other: &bitcoin_primitives::transaction::OutPoint) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::OutPoint::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::OutPoint::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::OutPoint::eq(&self, other: &bitcoin_primitives::transaction::OutPoint) -> bool +pub fn bitcoin_primitives::transaction::OutPoint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::OutPoint::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::OutPoint::partial_cmp(&self, other: &bitcoin_primitives::transaction::OutPoint) -> core::option::Option +pub fn bitcoin_primitives::transaction::OutPointDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::OutPointDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPointDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::OutPointDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::OutPointDecoderError::clone(&self) -> bitcoin_primitives::transaction::OutPointDecoderError +pub fn bitcoin_primitives::transaction::OutPointDecoderError::eq(&self, other: &bitcoin_primitives::transaction::OutPointDecoderError) -> bool +pub fn bitcoin_primitives::transaction::OutPointDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::OutPointEncoder<'e>::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::OutPointEncoder<'e>::current_chunk(&self) -> &[u8] +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::clone(&self) -> bitcoin_primitives::transaction::TxMerkleNodeDecoderError +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::eq(&self, other: &bitcoin_primitives::transaction::TxMerkleNodeDecoderError) -> bool +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::from(e: bitcoin_consensus_encoding::decode::decoders::UnexpectedEofError) -> Self +pub fn bitcoin_primitives::transaction::TxMerkleNodeDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::Version::clone(&self) -> bitcoin_primitives::transaction::Version +pub fn bitcoin_primitives::transaction::Version::cmp(&self, other: &bitcoin_primitives::transaction::Version) -> core::cmp::Ordering +pub fn bitcoin_primitives::transaction::Version::decoder() -> Self::Decoder +pub fn bitcoin_primitives::transaction::Version::encoder(&self) -> Self::Encoder +pub fn bitcoin_primitives::transaction::Version::eq(&self, other: &bitcoin_primitives::transaction::Version) -> bool +pub fn bitcoin_primitives::transaction::Version::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::Version::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_primitives::transaction::Version::partial_cmp(&self, other: &bitcoin_primitives::transaction::Version) -> core::option::Option +pub fn bitcoin_primitives::transaction::VersionDecoder::default() -> Self +pub fn bitcoin_primitives::transaction::VersionDecoder::end(self) -> core::result::Result +pub fn bitcoin_primitives::transaction::VersionDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_primitives::transaction::VersionDecoder::read_limit(&self) -> usize +pub fn bitcoin_primitives::transaction::VersionDecoderError::clone(&self) -> bitcoin_primitives::transaction::VersionDecoderError +pub fn bitcoin_primitives::transaction::VersionDecoderError::eq(&self, other: &bitcoin_primitives::transaction::VersionDecoderError) -> bool +pub fn bitcoin_primitives::transaction::VersionDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_primitives::transaction::VersionDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_primitives::transaction::VersionEncoder::advance(&mut self) -> bool +pub fn bitcoin_primitives::transaction::VersionEncoder::current_chunk(&self) -> &[u8] +pub fn u32::from(version: bitcoin_primitives::transaction::Version) -> Self +pub mod bitcoin_primitives +pub mod bitcoin_primitives::block +pub mod bitcoin_primitives::merkle_tree +pub mod bitcoin_primitives::pow +pub mod bitcoin_primitives::transaction +pub struct bitcoin_primitives::BlockHash(_) +pub struct bitcoin_primitives::BlockHeader +pub struct bitcoin_primitives::BlockVersion(_) +pub struct bitcoin_primitives::CompactTarget(_) +pub struct bitcoin_primitives::Ntxid(_) +pub struct bitcoin_primitives::OutPoint +pub struct bitcoin_primitives::TransactionVersion(_) +pub struct bitcoin_primitives::TxMerkleNode(_) +pub struct bitcoin_primitives::Txid(_) +pub struct bitcoin_primitives::WitnessCommitment(_) +pub struct bitcoin_primitives::WitnessMerkleNode(_) +pub struct bitcoin_primitives::Wtxid(_) +pub struct bitcoin_primitives::block::BlockHash(_) +pub struct bitcoin_primitives::block::BlockHashDecoder(_) +pub struct bitcoin_primitives::block::BlockHashDecoderError(_) +pub struct bitcoin_primitives::block::BlockHashEncoder(_) +pub struct bitcoin_primitives::block::Header +pub struct bitcoin_primitives::block::HeaderEncoder(_) +pub struct bitcoin_primitives::block::Version(_) +pub struct bitcoin_primitives::block::VersionDecoder(_) +pub struct bitcoin_primitives::block::VersionDecoderError(_) +pub struct bitcoin_primitives::block::VersionEncoder(_) +pub struct bitcoin_primitives::block::WitnessCommitment(_) +pub struct bitcoin_primitives::merkle_tree::TxMerkleNode(_) +pub struct bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder(_) +pub struct bitcoin_primitives::merkle_tree::WitnessMerkleNode(_) +pub struct bitcoin_primitives::pow::CompactTarget(_) +pub struct bitcoin_primitives::pow::CompactTargetDecoder(_) +pub struct bitcoin_primitives::pow::CompactTargetDecoderError(_) +pub struct bitcoin_primitives::pow::CompactTargetEncoder(_) +pub struct bitcoin_primitives::transaction::BlockHashDecoder(_) +pub struct bitcoin_primitives::transaction::BlockHashDecoderError(_) +pub struct bitcoin_primitives::transaction::Ntxid(_) +pub struct bitcoin_primitives::transaction::OutPoint +pub struct bitcoin_primitives::transaction::OutPointDecoder(_) +pub struct bitcoin_primitives::transaction::OutPointDecoderError(_) +pub struct bitcoin_primitives::transaction::OutPointEncoder<'e>(_) +pub struct bitcoin_primitives::transaction::TxMerkleNodeDecoder(_) +pub struct bitcoin_primitives::transaction::TxMerkleNodeDecoderError(_) +pub struct bitcoin_primitives::transaction::Txid(_) +pub struct bitcoin_primitives::transaction::Version(_) +pub struct bitcoin_primitives::transaction::VersionDecoder(_) +pub struct bitcoin_primitives::transaction::VersionDecoderError(_) +pub struct bitcoin_primitives::transaction::VersionEncoder(_) +pub struct bitcoin_primitives::transaction::Wtxid(_) +pub type bitcoin_primitives::BlockHash::Decoder = bitcoin_primitives::block::BlockHashDecoder +pub type bitcoin_primitives::BlockHash::Encoder<'e> = bitcoin_primitives::block::BlockHashEncoder +pub type bitcoin_primitives::TxMerkleNode::Decoder = bitcoin_primitives::transaction::TxMerkleNodeDecoder +pub type bitcoin_primitives::TxMerkleNode::Encoder<'e> = bitcoin_primitives::merkle_tree::TxMerkleNodeEncoder +pub type bitcoin_primitives::WitnessMerkleNode::Decoder = bitcoin_primitives::hash_types::witness_merkle_node::WitnessMerkleNodeDecoder +pub type bitcoin_primitives::WitnessMerkleNode::Encoder<'e> = bitcoin_primitives::hash_types::witness_merkle_node::WitnessMerkleNodeEncoder +pub type bitcoin_primitives::block::BlockHashDecoder::Error = bitcoin_primitives::block::BlockHashDecoderError +pub type bitcoin_primitives::block::BlockHashDecoder::Output = bitcoin_primitives::BlockHash +pub type bitcoin_primitives::block::Header::Encoder<'e> = bitcoin_primitives::block::HeaderEncoder +pub type bitcoin_primitives::block::Version::Decoder = bitcoin_primitives::block::VersionDecoder +pub type bitcoin_primitives::block::Version::Encoder<'e> = bitcoin_primitives::block::VersionEncoder +pub type bitcoin_primitives::block::VersionDecoder::Error = bitcoin_primitives::block::VersionDecoderError +pub type bitcoin_primitives::block::VersionDecoder::Output = bitcoin_primitives::block::Version +pub type bitcoin_primitives::pow::CompactTarget::Decoder = bitcoin_primitives::pow::CompactTargetDecoder +pub type bitcoin_primitives::pow::CompactTarget::Encoder<'e> = bitcoin_primitives::pow::CompactTargetEncoder +pub type bitcoin_primitives::pow::CompactTargetDecoder::Error = bitcoin_primitives::pow::CompactTargetDecoderError +pub type bitcoin_primitives::pow::CompactTargetDecoder::Output = bitcoin_primitives::pow::CompactTarget +pub type bitcoin_primitives::transaction::OutPoint::Decoder = bitcoin_primitives::transaction::OutPointDecoder +pub type bitcoin_primitives::transaction::OutPoint::Encoder<'e> where Self: 'e = bitcoin_primitives::transaction::OutPointEncoder<'e> +pub type bitcoin_primitives::transaction::OutPointDecoder::Error = bitcoin_primitives::transaction::OutPointDecoderError +pub type bitcoin_primitives::transaction::OutPointDecoder::Output = bitcoin_primitives::transaction::OutPoint +pub type bitcoin_primitives::transaction::TxMerkleNodeDecoder::Error = bitcoin_primitives::transaction::TxMerkleNodeDecoderError +pub type bitcoin_primitives::transaction::TxMerkleNodeDecoder::Output = bitcoin_primitives::TxMerkleNode +pub type bitcoin_primitives::transaction::Version::Decoder = bitcoin_primitives::transaction::VersionDecoder +pub type bitcoin_primitives::transaction::Version::Encoder<'e> = bitcoin_primitives::transaction::VersionEncoder +pub type bitcoin_primitives::transaction::VersionDecoder::Error = bitcoin_primitives::transaction::VersionDecoderError +pub type bitcoin_primitives::transaction::VersionDecoder::Output = bitcoin_primitives::transaction::Version +pub use bitcoin_primitives::Amount +pub use bitcoin_primitives::BlockHeight +pub use bitcoin_primitives::BlockHeightInterval +pub use bitcoin_primitives::BlockMtp +pub use bitcoin_primitives::BlockMtpInterval +pub use bitcoin_primitives::BlockTime +pub use bitcoin_primitives::BlockTimeDecoder +pub use bitcoin_primitives::BlockTimeDecoderError +pub use bitcoin_primitives::FeeRate +pub use bitcoin_primitives::NumOpResult +pub use bitcoin_primitives::Sequence +pub use bitcoin_primitives::SignedAmount +pub use bitcoin_primitives::Weight +pub use bitcoin_primitives::absolute +pub use bitcoin_primitives::amount +pub use bitcoin_primitives::block::BlockHeight +pub use bitcoin_primitives::block::BlockHeightDecoder +pub use bitcoin_primitives::block::BlockHeightDecoderError +pub use bitcoin_primitives::block::BlockHeightEncoder +pub use bitcoin_primitives::block::BlockHeightInterval +pub use bitcoin_primitives::block::BlockMtp +pub use bitcoin_primitives::block::BlockMtpInterval +pub use bitcoin_primitives::block::TooBigForRelativeHeightError +pub use bitcoin_primitives::fee_rate +pub use bitcoin_primitives::locktime +pub use bitcoin_primitives::parse_int +pub use bitcoin_primitives::relative +pub use bitcoin_primitives::result +pub use bitcoin_primitives::sequence +pub use bitcoin_primitives::time +pub use bitcoin_primitives::weight diff --git a/api/units/all-features.txt b/api/units/all-features.txt new file mode 100644 index 0000000000..50fc84ca62 --- /dev/null +++ b/api/units/all-features.txt @@ -0,0 +1,2865 @@ +#[non_exhaustive] pub enum bitcoin_units::amount::Denomination +#[non_exhaustive] pub enum bitcoin_units::amount::ParseDenominationError +#[non_exhaustive] pub enum bitcoin_units::amount::error::ParseDenominationError +#[non_exhaustive] pub enum bitcoin_units::result::MathOp +#[non_exhaustive] pub struct bitcoin_units::absolute::ConversionError +#[non_exhaustive] pub struct bitcoin_units::absolute::error::ConversionError +#[non_exhaustive] pub struct bitcoin_units::amount::error::MissingDenominationError +#[non_exhaustive] pub struct bitcoin_units::amount::error::PossiblyConfusingDenominationError(_) +#[non_exhaustive] pub struct bitcoin_units::amount::error::UnknownDenominationError(_) +#[non_exhaustive] pub struct bitcoin_units::fee_rate::serde::OverflowError +#[non_exhaustive] pub struct bitcoin_units::locktime::absolute::ConversionError +#[non_exhaustive] pub struct bitcoin_units::locktime::absolute::error::ConversionError +#[non_exhaustive] pub struct bitcoin_units::parse_int::ParseIntError +#[non_exhaustive] pub struct bitcoin_units::result::NumOpError(_) +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_units::Amount +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_units::BlockTime +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_units::block::BlockHeight +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_units::locktime::absolute::LockTime +impl bitcoin_consensus_encoding::decode::Decodable for bitcoin_units::sequence::Sequence +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_units::amount::AmountDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_units::block::BlockHeightDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_units::locktime::absolute::LockTimeDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_units::sequence::SequenceDecoder +impl bitcoin_consensus_encoding::decode::Decoder for bitcoin_units::time::BlockTimeDecoder +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_units::Amount +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_units::BlockTime +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_units::block::BlockHeight +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_units::locktime::absolute::LockTime +impl bitcoin_consensus_encoding::encode::Encodable for bitcoin_units::sequence::Sequence +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_units::amount::AmountEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_units::block::BlockHeightEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_units::locktime::absolute::LockTimeEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_units::sequence::SequenceEncoder +impl bitcoin_consensus_encoding::encode::Encoder for bitcoin_units::time::BlockTimeEncoder +impl bitcoin_units::Amount +impl bitcoin_units::BlockTime +impl bitcoin_units::FeeRate +impl bitcoin_units::SignedAmount +impl bitcoin_units::Weight +impl bitcoin_units::amount::AmountDecoder +impl bitcoin_units::amount::Denomination +impl bitcoin_units::amount::Display +impl bitcoin_units::amount::error::OutOfRangeError +impl bitcoin_units::block::BlockHeight +impl bitcoin_units::block::BlockHeightDecoder +impl bitcoin_units::block::BlockHeightInterval +impl bitcoin_units::block::BlockMtp +impl bitcoin_units::block::BlockMtpInterval +impl bitcoin_units::locktime::absolute::Height +impl bitcoin_units::locktime::absolute::LockTime +impl bitcoin_units::locktime::absolute::LockTimeDecoder +impl bitcoin_units::locktime::absolute::MedianTimePast +impl bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl bitcoin_units::locktime::relative::LockTime +impl bitcoin_units::locktime::relative::NumberOf512Seconds +impl bitcoin_units::locktime::relative::NumberOfBlocks +impl bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl bitcoin_units::parse_int::Integer for i128 +impl bitcoin_units::parse_int::Integer for i16 +impl bitcoin_units::parse_int::Integer for i32 +impl bitcoin_units::parse_int::Integer for i64 +impl bitcoin_units::parse_int::Integer for i8 +impl bitcoin_units::parse_int::Integer for u128 +impl bitcoin_units::parse_int::Integer for u16 +impl bitcoin_units::parse_int::Integer for u32 +impl bitcoin_units::parse_int::Integer for u64 +impl bitcoin_units::parse_int::Integer for u8 +impl bitcoin_units::result::MathOp +impl bitcoin_units::result::NumOpError +impl bitcoin_units::sequence::Sequence +impl bitcoin_units::sequence::SequenceDecoder +impl bitcoin_units::time::BlockTimeDecoder +impl core::clone::Clone for bitcoin_units::Amount +impl core::clone::Clone for bitcoin_units::BlockTime +impl core::clone::Clone for bitcoin_units::FeeRate +impl core::clone::Clone for bitcoin_units::SignedAmount +impl core::clone::Clone for bitcoin_units::Weight +impl core::clone::Clone for bitcoin_units::amount::Denomination +impl core::clone::Clone for bitcoin_units::amount::Display +impl core::clone::Clone for bitcoin_units::amount::error::AmountDecoderError +impl core::clone::Clone for bitcoin_units::amount::error::BadPositionError +impl core::clone::Clone for bitcoin_units::amount::error::InputTooLargeError +impl core::clone::Clone for bitcoin_units::amount::error::InvalidCharacterError +impl core::clone::Clone for bitcoin_units::amount::error::MissingDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::MissingDigitsError +impl core::clone::Clone for bitcoin_units::amount::error::OutOfRangeError +impl core::clone::Clone for bitcoin_units::amount::error::ParseAmountError +impl core::clone::Clone for bitcoin_units::amount::error::ParseDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::ParseError +impl core::clone::Clone for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::TooPreciseError +impl core::clone::Clone for bitcoin_units::amount::error::UnknownDenominationError +impl core::clone::Clone for bitcoin_units::block::BlockHeight +impl core::clone::Clone for bitcoin_units::block::BlockHeightDecoderError +impl core::clone::Clone for bitcoin_units::block::BlockHeightInterval +impl core::clone::Clone for bitcoin_units::block::BlockMtp +impl core::clone::Clone for bitcoin_units::block::BlockMtpInterval +impl core::clone::Clone for bitcoin_units::block::TooBigForRelativeHeightError +impl core::clone::Clone for bitcoin_units::fee_rate::serde::OverflowError +impl core::clone::Clone for bitcoin_units::locktime::absolute::Height +impl core::clone::Clone for bitcoin_units::locktime::absolute::LockTime +impl core::clone::Clone for bitcoin_units::locktime::absolute::MedianTimePast +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ConversionError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::LockTime +impl core::clone::Clone for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::clone::Clone for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::clone::Clone for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::clone::Clone for bitcoin_units::parse_int::ParseIntError +impl core::clone::Clone for bitcoin_units::parse_int::PrefixedHexError +impl core::clone::Clone for bitcoin_units::parse_int::UnprefixedHexError +impl core::clone::Clone for bitcoin_units::result::MathOp +impl core::clone::Clone for bitcoin_units::result::NumOpError +impl core::clone::Clone for bitcoin_units::sequence::Sequence +impl core::clone::Clone for bitcoin_units::sequence::SequenceDecoderError +impl core::clone::Clone for bitcoin_units::time::BlockTimeDecoderError +impl core::cmp::Eq for bitcoin_units::Amount +impl core::cmp::Eq for bitcoin_units::BlockTime +impl core::cmp::Eq for bitcoin_units::FeeRate +impl core::cmp::Eq for bitcoin_units::SignedAmount +impl core::cmp::Eq for bitcoin_units::Weight +impl core::cmp::Eq for bitcoin_units::amount::Denomination +impl core::cmp::Eq for bitcoin_units::amount::error::AmountDecoderError +impl core::cmp::Eq for bitcoin_units::amount::error::BadPositionError +impl core::cmp::Eq for bitcoin_units::amount::error::InputTooLargeError +impl core::cmp::Eq for bitcoin_units::amount::error::InvalidCharacterError +impl core::cmp::Eq for bitcoin_units::amount::error::MissingDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::MissingDigitsError +impl core::cmp::Eq for bitcoin_units::amount::error::OutOfRangeError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseAmountError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseError +impl core::cmp::Eq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::TooPreciseError +impl core::cmp::Eq for bitcoin_units::amount::error::UnknownDenominationError +impl core::cmp::Eq for bitcoin_units::block::BlockHeight +impl core::cmp::Eq for bitcoin_units::block::BlockHeightDecoderError +impl core::cmp::Eq for bitcoin_units::block::BlockHeightInterval +impl core::cmp::Eq for bitcoin_units::block::BlockMtp +impl core::cmp::Eq for bitcoin_units::block::BlockMtpInterval +impl core::cmp::Eq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::cmp::Eq for bitcoin_units::fee_rate::serde::OverflowError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::Height +impl core::cmp::Eq for bitcoin_units::locktime::absolute::LockTime +impl core::cmp::Eq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::LockTime +impl core::cmp::Eq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::Eq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::cmp::Eq for bitcoin_units::parse_int::ParseIntError +impl core::cmp::Eq for bitcoin_units::parse_int::PrefixedHexError +impl core::cmp::Eq for bitcoin_units::parse_int::UnprefixedHexError +impl core::cmp::Eq for bitcoin_units::result::MathOp +impl core::cmp::Eq for bitcoin_units::result::NumOpError +impl core::cmp::Eq for bitcoin_units::sequence::Sequence +impl core::cmp::Eq for bitcoin_units::sequence::SequenceDecoderError +impl core::cmp::Eq for bitcoin_units::time::BlockTimeDecoderError +impl core::cmp::Ord for bitcoin_units::Amount +impl core::cmp::Ord for bitcoin_units::BlockTime +impl core::cmp::Ord for bitcoin_units::FeeRate +impl core::cmp::Ord for bitcoin_units::SignedAmount +impl core::cmp::Ord for bitcoin_units::Weight +impl core::cmp::Ord for bitcoin_units::block::BlockHeight +impl core::cmp::Ord for bitcoin_units::block::BlockHeightInterval +impl core::cmp::Ord for bitcoin_units::block::BlockMtp +impl core::cmp::Ord for bitcoin_units::block::BlockMtpInterval +impl core::cmp::Ord for bitcoin_units::locktime::absolute::Height +impl core::cmp::Ord for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::Ord for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::Ord for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::Ord for bitcoin_units::sequence::Sequence +impl core::cmp::PartialEq for bitcoin_units::Amount +impl core::cmp::PartialEq for bitcoin_units::BlockTime +impl core::cmp::PartialEq for bitcoin_units::FeeRate +impl core::cmp::PartialEq for bitcoin_units::SignedAmount +impl core::cmp::PartialEq for bitcoin_units::Weight +impl core::cmp::PartialEq for bitcoin_units::amount::Denomination +impl core::cmp::PartialEq for bitcoin_units::amount::error::AmountDecoderError +impl core::cmp::PartialEq for bitcoin_units::amount::error::BadPositionError +impl core::cmp::PartialEq for bitcoin_units::amount::error::InputTooLargeError +impl core::cmp::PartialEq for bitcoin_units::amount::error::InvalidCharacterError +impl core::cmp::PartialEq for bitcoin_units::amount::error::MissingDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::MissingDigitsError +impl core::cmp::PartialEq for bitcoin_units::amount::error::OutOfRangeError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseAmountError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseError +impl core::cmp::PartialEq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::TooPreciseError +impl core::cmp::PartialEq for bitcoin_units::amount::error::UnknownDenominationError +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeight +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeightDecoderError +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeightInterval +impl core::cmp::PartialEq for bitcoin_units::block::BlockMtp +impl core::cmp::PartialEq for bitcoin_units::block::BlockMtpInterval +impl core::cmp::PartialEq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::cmp::PartialEq for bitcoin_units::fee_rate::serde::OverflowError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::Height +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::LockTime +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::LockTime +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::cmp::PartialEq for bitcoin_units::parse_int::ParseIntError +impl core::cmp::PartialEq for bitcoin_units::parse_int::PrefixedHexError +impl core::cmp::PartialEq for bitcoin_units::parse_int::UnprefixedHexError +impl core::cmp::PartialEq for bitcoin_units::result::MathOp +impl core::cmp::PartialEq for bitcoin_units::result::NumOpError +impl core::cmp::PartialEq for bitcoin_units::sequence::Sequence +impl core::cmp::PartialEq for bitcoin_units::sequence::SequenceDecoderError +impl core::cmp::PartialEq for bitcoin_units::time::BlockTimeDecoderError +impl core::cmp::PartialOrd for bitcoin_units::Amount +impl core::cmp::PartialOrd for bitcoin_units::BlockTime +impl core::cmp::PartialOrd for bitcoin_units::FeeRate +impl core::cmp::PartialOrd for bitcoin_units::SignedAmount +impl core::cmp::PartialOrd for bitcoin_units::Weight +impl core::cmp::PartialOrd for bitcoin_units::block::BlockHeight +impl core::cmp::PartialOrd for bitcoin_units::block::BlockHeightInterval +impl core::cmp::PartialOrd for bitcoin_units::block::BlockMtp +impl core::cmp::PartialOrd for bitcoin_units::block::BlockMtpInterval +impl core::cmp::PartialOrd for bitcoin_units::locktime::absolute::Height +impl core::cmp::PartialOrd for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::PartialOrd for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::PartialOrd for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::PartialOrd for bitcoin_units::sequence::Sequence +impl core::convert::AsRef for bitcoin_units::parse_int::ParseIntError +impl core::convert::From<&bitcoin_units::Amount> for bitcoin_units::result::NumOpResult +impl core::convert::From<&bitcoin_units::SignedAmount> for bitcoin_units::result::NumOpResult +impl core::convert::From for bitcoin_units::SignedAmount +impl core::convert::From for bitcoin_units::result::NumOpResult +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::result::NumOpResult +impl core::convert::From for u64 +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::block::BlockHeight +impl core::convert::From for bitcoin_units::locktime::absolute::LockTime +impl core::convert::From for bitcoin_units::block::BlockMtp +impl core::convert::From for bitcoin_units::locktime::absolute::LockTime +impl core::convert::From for bitcoin_units::sequence::Sequence +impl core::convert::From for bitcoin_units::block::BlockMtpInterval +impl core::convert::From for bitcoin_units::locktime::relative::LockTime +impl core::convert::From for bitcoin_units::block::BlockHeightInterval +impl core::convert::From for bitcoin_units::locktime::relative::LockTime +impl core::convert::From for bitcoin_units::parse_int::PrefixedHexError +impl core::convert::From for bitcoin_units::parse_int::UnprefixedHexError +impl core::convert::From for core::num::error::ParseIntError +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::amount::error::AmountDecoderError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseDenominationError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::block::BlockHeightDecoderError +impl core::convert::From for bitcoin_units::fee_rate::serde::OverflowError +impl core::convert::From for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::convert::From for bitcoin_units::parse_int::PrefixedHexError +impl core::convert::From for bitcoin_units::parse_int::UnprefixedHexError +impl core::convert::From for bitcoin_units::sequence::SequenceDecoderError +impl core::convert::From for bitcoin_units::time::BlockTimeDecoderError +impl core::convert::From for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::From for bitcoin_units::BlockTime +impl core::convert::From for bitcoin_units::block::BlockHeight +impl core::convert::From for bitcoin_units::block::BlockHeightInterval +impl core::convert::From for bitcoin_units::block::BlockMtp +impl core::convert::From for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom<&str> for bitcoin_units::Weight +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom<&str> for bitcoin_units::sequence::Sequence +impl core::convert::TryFrom> for bitcoin_units::Weight +impl core::convert::TryFrom> for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom> for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom> for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom> for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom> for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom> for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom> for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom> for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom> for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom> for bitcoin_units::sequence::Sequence +impl core::convert::TryFrom for bitcoin_units::Weight +impl core::convert::TryFrom for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom for bitcoin_units::sequence::Sequence +impl core::convert::TryFrom for bitcoin_units::Amount +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom for bitcoin_units::locktime::relative::LockTime +impl core::default::Default for bitcoin_units::Amount +impl core::default::Default for bitcoin_units::SignedAmount +impl core::default::Default for bitcoin_units::amount::AmountDecoder +impl core::default::Default for bitcoin_units::block::BlockHeightDecoder +impl core::default::Default for bitcoin_units::block::BlockHeightInterval +impl core::default::Default for bitcoin_units::block::BlockMtpInterval +impl core::default::Default for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::default::Default for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::default::Default for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::default::Default for bitcoin_units::sequence::Sequence +impl core::default::Default for bitcoin_units::sequence::SequenceDecoder +impl core::default::Default for bitcoin_units::time::BlockTimeDecoder +impl core::error::Error for bitcoin_units::amount::error::AmountDecoderError +impl core::error::Error for bitcoin_units::amount::error::BadPositionError +impl core::error::Error for bitcoin_units::amount::error::InputTooLargeError +impl core::error::Error for bitcoin_units::amount::error::InvalidCharacterError +impl core::error::Error for bitcoin_units::amount::error::MissingDigitsError +impl core::error::Error for bitcoin_units::amount::error::OutOfRangeError +impl core::error::Error for bitcoin_units::amount::error::ParseAmountError +impl core::error::Error for bitcoin_units::amount::error::ParseDenominationError +impl core::error::Error for bitcoin_units::amount::error::ParseError +impl core::error::Error for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::error::Error for bitcoin_units::amount::error::TooPreciseError +impl core::error::Error for bitcoin_units::amount::error::UnknownDenominationError +impl core::error::Error for bitcoin_units::block::BlockHeightDecoderError +impl core::error::Error for bitcoin_units::block::TooBigForRelativeHeightError +impl core::error::Error for bitcoin_units::fee_rate::serde::OverflowError +impl core::error::Error for bitcoin_units::locktime::absolute::error::ConversionError +impl core::error::Error for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::error::Error for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::error::Error for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::error::Error for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::error::Error for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::error::Error for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::error::Error for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::error::Error for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::error::Error for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::error::Error for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::error::Error for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::error::Error for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::error::Error for bitcoin_units::parse_int::ParseIntError +impl core::error::Error for bitcoin_units::parse_int::PrefixedHexError +impl core::error::Error for bitcoin_units::parse_int::UnprefixedHexError +impl core::error::Error for bitcoin_units::result::NumOpError +impl core::error::Error for bitcoin_units::sequence::SequenceDecoderError +impl core::error::Error for bitcoin_units::time::BlockTimeDecoderError +impl core::fmt::Debug for bitcoin_units::Amount +impl core::fmt::Debug for bitcoin_units::BlockTime +impl core::fmt::Debug for bitcoin_units::FeeRate +impl core::fmt::Debug for bitcoin_units::SignedAmount +impl core::fmt::Debug for bitcoin_units::Weight +impl core::fmt::Debug for bitcoin_units::amount::Denomination +impl core::fmt::Debug for bitcoin_units::amount::Display +impl core::fmt::Debug for bitcoin_units::amount::error::AmountDecoderError +impl core::fmt::Debug for bitcoin_units::amount::error::BadPositionError +impl core::fmt::Debug for bitcoin_units::amount::error::InputTooLargeError +impl core::fmt::Debug for bitcoin_units::amount::error::InvalidCharacterError +impl core::fmt::Debug for bitcoin_units::amount::error::MissingDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::MissingDigitsError +impl core::fmt::Debug for bitcoin_units::amount::error::OutOfRangeError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseAmountError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseError +impl core::fmt::Debug for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::TooPreciseError +impl core::fmt::Debug for bitcoin_units::amount::error::UnknownDenominationError +impl core::fmt::Debug for bitcoin_units::block::BlockHeight +impl core::fmt::Debug for bitcoin_units::block::BlockHeightDecoderError +impl core::fmt::Debug for bitcoin_units::block::BlockHeightInterval +impl core::fmt::Debug for bitcoin_units::block::BlockMtp +impl core::fmt::Debug for bitcoin_units::block::BlockMtpInterval +impl core::fmt::Debug for bitcoin_units::block::TooBigForRelativeHeightError +impl core::fmt::Debug for bitcoin_units::fee_rate::serde::OverflowError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::Height +impl core::fmt::Debug for bitcoin_units::locktime::absolute::LockTime +impl core::fmt::Debug for bitcoin_units::locktime::absolute::MedianTimePast +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ConversionError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::LockTime +impl core::fmt::Debug for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::fmt::Debug for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::fmt::Debug for bitcoin_units::parse_int::ParseIntError +impl core::fmt::Debug for bitcoin_units::parse_int::PrefixedHexError +impl core::fmt::Debug for bitcoin_units::parse_int::UnprefixedHexError +impl core::fmt::Debug for bitcoin_units::result::MathOp +impl core::fmt::Debug for bitcoin_units::result::NumOpError +impl core::fmt::Debug for bitcoin_units::sequence::Sequence +impl core::fmt::Debug for bitcoin_units::sequence::SequenceDecoderError +impl core::fmt::Debug for bitcoin_units::time::BlockTimeDecoderError +impl core::fmt::Display for bitcoin_units::Amount +impl core::fmt::Display for bitcoin_units::SignedAmount +impl core::fmt::Display for bitcoin_units::Weight +impl core::fmt::Display for bitcoin_units::amount::Denomination +impl core::fmt::Display for bitcoin_units::amount::Display +impl core::fmt::Display for bitcoin_units::amount::error::AmountDecoderError +impl core::fmt::Display for bitcoin_units::amount::error::BadPositionError +impl core::fmt::Display for bitcoin_units::amount::error::InputTooLargeError +impl core::fmt::Display for bitcoin_units::amount::error::InvalidCharacterError +impl core::fmt::Display for bitcoin_units::amount::error::MissingDigitsError +impl core::fmt::Display for bitcoin_units::amount::error::OutOfRangeError +impl core::fmt::Display for bitcoin_units::amount::error::ParseAmountError +impl core::fmt::Display for bitcoin_units::amount::error::ParseDenominationError +impl core::fmt::Display for bitcoin_units::amount::error::ParseError +impl core::fmt::Display for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::fmt::Display for bitcoin_units::amount::error::TooPreciseError +impl core::fmt::Display for bitcoin_units::amount::error::UnknownDenominationError +impl core::fmt::Display for bitcoin_units::block::BlockHeight +impl core::fmt::Display for bitcoin_units::block::BlockHeightDecoderError +impl core::fmt::Display for bitcoin_units::block::BlockHeightInterval +impl core::fmt::Display for bitcoin_units::block::BlockMtp +impl core::fmt::Display for bitcoin_units::block::BlockMtpInterval +impl core::fmt::Display for bitcoin_units::block::TooBigForRelativeHeightError +impl core::fmt::Display for bitcoin_units::fee_rate::serde::OverflowError +impl core::fmt::Display for bitcoin_units::locktime::absolute::Height +impl core::fmt::Display for bitcoin_units::locktime::absolute::LockTime +impl core::fmt::Display for bitcoin_units::locktime::absolute::MedianTimePast +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ConversionError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::LockTime +impl core::fmt::Display for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::fmt::Display for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::fmt::Display for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::fmt::Display for bitcoin_units::parse_int::ParseIntError +impl core::fmt::Display for bitcoin_units::parse_int::PrefixedHexError +impl core::fmt::Display for bitcoin_units::parse_int::UnprefixedHexError +impl core::fmt::Display for bitcoin_units::result::MathOp +impl core::fmt::Display for bitcoin_units::result::NumOpError +impl core::fmt::Display for bitcoin_units::sequence::Sequence +impl core::fmt::Display for bitcoin_units::sequence::SequenceDecoderError +impl core::fmt::Display for bitcoin_units::time::BlockTimeDecoderError +impl core::fmt::LowerHex for bitcoin_units::sequence::Sequence +impl core::fmt::UpperHex for bitcoin_units::sequence::Sequence +impl core::hash::Hash for bitcoin_units::Amount +impl core::hash::Hash for bitcoin_units::BlockTime +impl core::hash::Hash for bitcoin_units::FeeRate +impl core::hash::Hash for bitcoin_units::SignedAmount +impl core::hash::Hash for bitcoin_units::Weight +impl core::hash::Hash for bitcoin_units::amount::Denomination +impl core::hash::Hash for bitcoin_units::block::BlockHeight +impl core::hash::Hash for bitcoin_units::block::BlockHeightInterval +impl core::hash::Hash for bitcoin_units::block::BlockMtp +impl core::hash::Hash for bitcoin_units::block::BlockMtpInterval +impl core::hash::Hash for bitcoin_units::locktime::absolute::Height +impl core::hash::Hash for bitcoin_units::locktime::absolute::LockTime +impl core::hash::Hash for bitcoin_units::locktime::absolute::MedianTimePast +impl core::hash::Hash for bitcoin_units::locktime::relative::LockTime +impl core::hash::Hash for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::hash::Hash for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::hash::Hash for bitcoin_units::sequence::Sequence +impl core::iter::traits::accum::Sum for bitcoin_units::FeeRate +impl core::iter::traits::accum::Sum for bitcoin_units::Weight +impl core::iter::traits::accum::Sum for bitcoin_units::block::BlockHeightInterval +impl core::iter::traits::accum::Sum for bitcoin_units::block::BlockMtpInterval +impl core::iter::traits::accum::Sum for bitcoin_units::result::NumOpResult +impl core::iter::traits::accum::Sum for bitcoin_units::result::NumOpResult +impl core::marker::Copy for bitcoin_units::Amount +impl core::marker::Copy for bitcoin_units::BlockTime +impl core::marker::Copy for bitcoin_units::FeeRate +impl core::marker::Copy for bitcoin_units::SignedAmount +impl core::marker::Copy for bitcoin_units::Weight +impl core::marker::Copy for bitcoin_units::amount::Denomination +impl core::marker::Copy for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Copy for bitcoin_units::block::BlockHeight +impl core::marker::Copy for bitcoin_units::block::BlockHeightInterval +impl core::marker::Copy for bitcoin_units::block::BlockMtp +impl core::marker::Copy for bitcoin_units::block::BlockMtpInterval +impl core::marker::Copy for bitcoin_units::locktime::absolute::Height +impl core::marker::Copy for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Copy for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Copy for bitcoin_units::locktime::relative::LockTime +impl core::marker::Copy for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Copy for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Copy for bitcoin_units::result::MathOp +impl core::marker::Copy for bitcoin_units::result::NumOpError +impl core::marker::Copy for bitcoin_units::sequence::Sequence +impl core::marker::Freeze for bitcoin_units::Amount +impl core::marker::Freeze for bitcoin_units::BlockTime +impl core::marker::Freeze for bitcoin_units::FeeRate +impl core::marker::Freeze for bitcoin_units::SignedAmount +impl core::marker::Freeze for bitcoin_units::Weight +impl core::marker::Freeze for bitcoin_units::amount::AmountDecoder +impl core::marker::Freeze for bitcoin_units::amount::AmountEncoder +impl core::marker::Freeze for bitcoin_units::amount::Denomination +impl core::marker::Freeze for bitcoin_units::amount::Display +impl core::marker::Freeze for bitcoin_units::amount::error::AmountDecoderError +impl core::marker::Freeze for bitcoin_units::amount::error::BadPositionError +impl core::marker::Freeze for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Freeze for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Freeze for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Freeze for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseError +impl core::marker::Freeze for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Freeze for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Freeze for bitcoin_units::block::BlockHeight +impl core::marker::Freeze for bitcoin_units::block::BlockHeightDecoder +impl core::marker::Freeze for bitcoin_units::block::BlockHeightDecoderError +impl core::marker::Freeze for bitcoin_units::block::BlockHeightEncoder +impl core::marker::Freeze for bitcoin_units::block::BlockHeightInterval +impl core::marker::Freeze for bitcoin_units::block::BlockMtp +impl core::marker::Freeze for bitcoin_units::block::BlockMtpInterval +impl core::marker::Freeze for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Freeze for bitcoin_units::fee_rate::serde::OverflowError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::Height +impl core::marker::Freeze for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Freeze for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::marker::Freeze for bitcoin_units::locktime::absolute::LockTimeEncoder +impl core::marker::Freeze for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::LockTime +impl core::marker::Freeze for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Freeze for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Freeze for bitcoin_units::parse_int::ParseIntError +impl core::marker::Freeze for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Freeze for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Freeze for bitcoin_units::result::MathOp +impl core::marker::Freeze for bitcoin_units::result::NumOpError +impl core::marker::Freeze for bitcoin_units::sequence::Sequence +impl core::marker::Freeze for bitcoin_units::sequence::SequenceDecoder +impl core::marker::Freeze for bitcoin_units::sequence::SequenceDecoderError +impl core::marker::Freeze for bitcoin_units::sequence::SequenceEncoder +impl core::marker::Freeze for bitcoin_units::time::BlockTimeDecoder +impl core::marker::Freeze for bitcoin_units::time::BlockTimeDecoderError +impl core::marker::Freeze for bitcoin_units::time::BlockTimeEncoder +impl core::marker::Send for bitcoin_units::Amount +impl core::marker::Send for bitcoin_units::BlockTime +impl core::marker::Send for bitcoin_units::FeeRate +impl core::marker::Send for bitcoin_units::SignedAmount +impl core::marker::Send for bitcoin_units::Weight +impl core::marker::Send for bitcoin_units::amount::AmountDecoder +impl core::marker::Send for bitcoin_units::amount::AmountEncoder +impl core::marker::Send for bitcoin_units::amount::Denomination +impl core::marker::Send for bitcoin_units::amount::Display +impl core::marker::Send for bitcoin_units::amount::error::AmountDecoderError +impl core::marker::Send for bitcoin_units::amount::error::BadPositionError +impl core::marker::Send for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Send for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Send for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Send for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Send for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Send for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Send for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Send for bitcoin_units::amount::error::ParseError +impl core::marker::Send for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Send for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Send for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Send for bitcoin_units::block::BlockHeight +impl core::marker::Send for bitcoin_units::block::BlockHeightDecoder +impl core::marker::Send for bitcoin_units::block::BlockHeightDecoderError +impl core::marker::Send for bitcoin_units::block::BlockHeightEncoder +impl core::marker::Send for bitcoin_units::block::BlockHeightInterval +impl core::marker::Send for bitcoin_units::block::BlockMtp +impl core::marker::Send for bitcoin_units::block::BlockMtpInterval +impl core::marker::Send for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Send for bitcoin_units::fee_rate::serde::OverflowError +impl core::marker::Send for bitcoin_units::locktime::absolute::Height +impl core::marker::Send for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Send for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::marker::Send for bitcoin_units::locktime::absolute::LockTimeEncoder +impl core::marker::Send for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::LockTime +impl core::marker::Send for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Send for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Send for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Send for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Send for bitcoin_units::parse_int::ParseIntError +impl core::marker::Send for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Send for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Send for bitcoin_units::result::MathOp +impl core::marker::Send for bitcoin_units::result::NumOpError +impl core::marker::Send for bitcoin_units::sequence::Sequence +impl core::marker::Send for bitcoin_units::sequence::SequenceDecoder +impl core::marker::Send for bitcoin_units::sequence::SequenceDecoderError +impl core::marker::Send for bitcoin_units::sequence::SequenceEncoder +impl core::marker::Send for bitcoin_units::time::BlockTimeDecoder +impl core::marker::Send for bitcoin_units::time::BlockTimeDecoderError +impl core::marker::Send for bitcoin_units::time::BlockTimeEncoder +impl core::marker::StructuralPartialEq for bitcoin_units::Amount +impl core::marker::StructuralPartialEq for bitcoin_units::BlockTime +impl core::marker::StructuralPartialEq for bitcoin_units::FeeRate +impl core::marker::StructuralPartialEq for bitcoin_units::SignedAmount +impl core::marker::StructuralPartialEq for bitcoin_units::Weight +impl core::marker::StructuralPartialEq for bitcoin_units::amount::Denomination +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::AmountDecoderError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::BadPositionError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseAmountError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::TooPreciseError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeight +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeightDecoderError +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeightInterval +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockMtp +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockMtpInterval +impl core::marker::StructuralPartialEq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::fee_rate::serde::OverflowError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::Height +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::LockTime +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::LockTime +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::ParseIntError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::result::MathOp +impl core::marker::StructuralPartialEq for bitcoin_units::result::NumOpError +impl core::marker::StructuralPartialEq for bitcoin_units::sequence::Sequence +impl core::marker::StructuralPartialEq for bitcoin_units::sequence::SequenceDecoderError +impl core::marker::StructuralPartialEq for bitcoin_units::time::BlockTimeDecoderError +impl core::marker::Sync for bitcoin_units::Amount +impl core::marker::Sync for bitcoin_units::BlockTime +impl core::marker::Sync for bitcoin_units::FeeRate +impl core::marker::Sync for bitcoin_units::SignedAmount +impl core::marker::Sync for bitcoin_units::Weight +impl core::marker::Sync for bitcoin_units::amount::AmountDecoder +impl core::marker::Sync for bitcoin_units::amount::AmountEncoder +impl core::marker::Sync for bitcoin_units::amount::Denomination +impl core::marker::Sync for bitcoin_units::amount::Display +impl core::marker::Sync for bitcoin_units::amount::error::AmountDecoderError +impl core::marker::Sync for bitcoin_units::amount::error::BadPositionError +impl core::marker::Sync for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Sync for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Sync for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Sync for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Sync for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Sync for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::ParseError +impl core::marker::Sync for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Sync for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Sync for bitcoin_units::block::BlockHeight +impl core::marker::Sync for bitcoin_units::block::BlockHeightDecoder +impl core::marker::Sync for bitcoin_units::block::BlockHeightDecoderError +impl core::marker::Sync for bitcoin_units::block::BlockHeightEncoder +impl core::marker::Sync for bitcoin_units::block::BlockHeightInterval +impl core::marker::Sync for bitcoin_units::block::BlockMtp +impl core::marker::Sync for bitcoin_units::block::BlockMtpInterval +impl core::marker::Sync for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Sync for bitcoin_units::fee_rate::serde::OverflowError +impl core::marker::Sync for bitcoin_units::locktime::absolute::Height +impl core::marker::Sync for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Sync for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::marker::Sync for bitcoin_units::locktime::absolute::LockTimeEncoder +impl core::marker::Sync for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::LockTime +impl core::marker::Sync for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Sync for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Sync for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Sync for bitcoin_units::parse_int::ParseIntError +impl core::marker::Sync for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Sync for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Sync for bitcoin_units::result::MathOp +impl core::marker::Sync for bitcoin_units::result::NumOpError +impl core::marker::Sync for bitcoin_units::sequence::Sequence +impl core::marker::Sync for bitcoin_units::sequence::SequenceDecoder +impl core::marker::Sync for bitcoin_units::sequence::SequenceDecoderError +impl core::marker::Sync for bitcoin_units::sequence::SequenceEncoder +impl core::marker::Sync for bitcoin_units::time::BlockTimeDecoder +impl core::marker::Sync for bitcoin_units::time::BlockTimeDecoderError +impl core::marker::Sync for bitcoin_units::time::BlockTimeEncoder +impl core::marker::Unpin for bitcoin_units::Amount +impl core::marker::Unpin for bitcoin_units::BlockTime +impl core::marker::Unpin for bitcoin_units::FeeRate +impl core::marker::Unpin for bitcoin_units::SignedAmount +impl core::marker::Unpin for bitcoin_units::Weight +impl core::marker::Unpin for bitcoin_units::amount::AmountDecoder +impl core::marker::Unpin for bitcoin_units::amount::AmountEncoder +impl core::marker::Unpin for bitcoin_units::amount::Denomination +impl core::marker::Unpin for bitcoin_units::amount::Display +impl core::marker::Unpin for bitcoin_units::amount::error::AmountDecoderError +impl core::marker::Unpin for bitcoin_units::amount::error::BadPositionError +impl core::marker::Unpin for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Unpin for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Unpin for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Unpin for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseError +impl core::marker::Unpin for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Unpin for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Unpin for bitcoin_units::block::BlockHeight +impl core::marker::Unpin for bitcoin_units::block::BlockHeightDecoder +impl core::marker::Unpin for bitcoin_units::block::BlockHeightDecoderError +impl core::marker::Unpin for bitcoin_units::block::BlockHeightEncoder +impl core::marker::Unpin for bitcoin_units::block::BlockHeightInterval +impl core::marker::Unpin for bitcoin_units::block::BlockMtp +impl core::marker::Unpin for bitcoin_units::block::BlockMtpInterval +impl core::marker::Unpin for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Unpin for bitcoin_units::fee_rate::serde::OverflowError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::Height +impl core::marker::Unpin for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Unpin for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::marker::Unpin for bitcoin_units::locktime::absolute::LockTimeEncoder +impl core::marker::Unpin for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::LockTime +impl core::marker::Unpin for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Unpin for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Unpin for bitcoin_units::parse_int::ParseIntError +impl core::marker::Unpin for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Unpin for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Unpin for bitcoin_units::result::MathOp +impl core::marker::Unpin for bitcoin_units::result::NumOpError +impl core::marker::Unpin for bitcoin_units::sequence::Sequence +impl core::marker::Unpin for bitcoin_units::sequence::SequenceDecoder +impl core::marker::Unpin for bitcoin_units::sequence::SequenceDecoderError +impl core::marker::Unpin for bitcoin_units::sequence::SequenceEncoder +impl core::marker::Unpin for bitcoin_units::time::BlockTimeDecoder +impl core::marker::Unpin for bitcoin_units::time::BlockTimeDecoderError +impl core::marker::Unpin for bitcoin_units::time::BlockTimeEncoder +impl core::ops::arith::Add for bitcoin_units::Amount +impl core::ops::arith::Add for bitcoin_units::FeeRate +impl core::ops::arith::Add for bitcoin_units::SignedAmount +impl core::ops::arith::Add for bitcoin_units::Weight +impl core::ops::arith::Add for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Add<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::Add<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Add<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Add<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Add<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Add<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::SignedAmount +impl core::ops::arith::Add for &bitcoin_units::Amount +impl core::ops::arith::Add for &bitcoin_units::FeeRate +impl core::ops::arith::Add for &bitcoin_units::SignedAmount +impl core::ops::arith::Add for &bitcoin_units::Weight +impl core::ops::arith::Add for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Add for &bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockHeight +impl core::ops::arith::Add for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Add for &bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockMtp +impl core::ops::arith::Add> for &bitcoin_units::Amount +impl core::ops::arith::Add> for bitcoin_units::Amount +impl core::ops::arith::Add> for &bitcoin_units::SignedAmount +impl core::ops::arith::Add> for bitcoin_units::SignedAmount +impl core::ops::arith::AddAssign for bitcoin_units::FeeRate +impl core::ops::arith::AddAssign for bitcoin_units::Weight +impl core::ops::arith::AddAssign for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::AddAssign for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::AddAssign<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::AddAssign<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::AddAssign<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::SignedAmount +impl core::ops::arith::Div for bitcoin_units::Weight +impl core::ops::arith::Div<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::FeeRate> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::FeeRate> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::Amount +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::FeeRate +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::Weight +impl core::ops::arith::Div<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&u64> for bitcoin_units::Amount +impl core::ops::arith::Div<&u64> for bitcoin_units::Weight +impl core::ops::arith::Div<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::SignedAmount +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::SignedAmount +impl core::ops::arith::Div> for bitcoin_units::SignedAmount +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::FeeRate +impl core::ops::arith::Div> for &bitcoin_units::Weight +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::FeeRate +impl core::ops::arith::Div> for bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::SignedAmount +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::SignedAmount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::Weight +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign for bitcoin_units::Weight +impl core::ops::arith::DivAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::Amount> for u64 +impl core::ops::arith::Mul<&bitcoin_units::FeeRate> for bitcoin_units::Weight +impl core::ops::arith::Mul<&bitcoin_units::FeeRate> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::SignedAmount> for i64 +impl core::ops::arith::Mul<&bitcoin_units::Weight> for bitcoin_units::FeeRate +impl core::ops::arith::Mul<&bitcoin_units::Weight> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::Weight> for u64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for u64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::Weight +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for i64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::FeeRate +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Mul<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&u64> for bitcoin_units::Amount +impl core::ops::arith::Mul<&u64> for bitcoin_units::Weight +impl core::ops::arith::Mul<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &u64 +impl core::ops::arith::Mul for u64 +impl core::ops::arith::Mul for &bitcoin_units::Weight +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::Weight +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &i64 +impl core::ops::arith::Mul for i64 +impl core::ops::arith::Mul for &bitcoin_units::FeeRate +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &u64 +impl core::ops::arith::Mul for bitcoin_units::FeeRate +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for u64 +impl core::ops::arith::Mul> for &u64 +impl core::ops::arith::Mul> for u64 +impl core::ops::arith::Mul> for &bitcoin_units::Weight +impl core::ops::arith::Mul> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for bitcoin_units::Weight +impl core::ops::arith::Mul> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for &i64 +impl core::ops::arith::Mul> for i64 +impl core::ops::arith::Mul> for &bitcoin_units::FeeRate +impl core::ops::arith::Mul> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for bitcoin_units::FeeRate +impl core::ops::arith::Mul> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &bitcoin_units::SignedAmount +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::SignedAmount +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &bitcoin_units::Amount +impl core::ops::arith::Mul for &bitcoin_units::Weight +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::Amount +impl core::ops::arith::Mul for bitcoin_units::Weight +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign for bitcoin_units::Weight +impl core::ops::arith::MulAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Neg for bitcoin_units::SignedAmount +impl core::ops::arith::Rem for bitcoin_units::Weight +impl core::ops::arith::Rem<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Rem<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Rem<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem<&u64> for bitcoin_units::Amount +impl core::ops::arith::Rem<&u64> for bitcoin_units::Weight +impl core::ops::arith::Rem<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for &bitcoin_units::Weight +impl core::ops::arith::Rem for &bitcoin_units::SignedAmount +impl core::ops::arith::Rem for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for bitcoin_units::SignedAmount +impl core::ops::arith::Rem for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for &bitcoin_units::Amount +impl core::ops::arith::Rem for &bitcoin_units::Weight +impl core::ops::arith::Rem for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for bitcoin_units::Amount +impl core::ops::arith::Rem for bitcoin_units::Weight +impl core::ops::arith::Rem for bitcoin_units::result::NumOpResult +impl core::ops::arith::RemAssign for bitcoin_units::Weight +impl core::ops::arith::Sub for bitcoin_units::Amount +impl core::ops::arith::Sub for bitcoin_units::FeeRate +impl core::ops::arith::Sub for bitcoin_units::SignedAmount +impl core::ops::arith::Sub for bitcoin_units::Weight +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Sub<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::Sub<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Sub<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeight> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtp> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::SignedAmount +impl core::ops::arith::Sub for &bitcoin_units::Amount +impl core::ops::arith::Sub for &bitcoin_units::FeeRate +impl core::ops::arith::Sub for &bitcoin_units::SignedAmount +impl core::ops::arith::Sub for &bitcoin_units::Weight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub> for &bitcoin_units::Amount +impl core::ops::arith::Sub> for bitcoin_units::Amount +impl core::ops::arith::Sub> for &bitcoin_units::SignedAmount +impl core::ops::arith::Sub> for bitcoin_units::SignedAmount +impl core::ops::arith::SubAssign for bitcoin_units::FeeRate +impl core::ops::arith::SubAssign for bitcoin_units::Weight +impl core::ops::arith::SubAssign for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::SubAssign for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::SubAssign<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::SubAssign<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::SubAssign<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::Amount +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::BlockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::FeeRate +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::SignedAmount +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::Weight +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::AmountDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::AmountEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::Denomination +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::Display +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::AmountDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::BadPositionError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::InputTooLargeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::InvalidCharacterError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::MissingDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::MissingDigitsError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::OutOfRangeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseAmountError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::TooPreciseError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::UnknownDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeight +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeightDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeightDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeightEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeightInterval +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockMtp +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockMtpInterval +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::TooBigForRelativeHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::fee_rate::serde::OverflowError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::Height +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::LockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::LockTimeEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::MedianTimePast +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ConversionError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::LockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::ParseIntError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::PrefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::UnprefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::MathOp +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::NumOpError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::sequence::Sequence +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::sequence::SequenceDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::sequence::SequenceDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::sequence::SequenceEncoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::time::BlockTimeDecoder +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::time::BlockTimeDecoderError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::time::BlockTimeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::Amount +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::BlockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::FeeRate +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::SignedAmount +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::Weight +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::AmountDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::AmountEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Denomination +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Display +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::AmountDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::BadPositionError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::InputTooLargeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::InvalidCharacterError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::MissingDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::MissingDigitsError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::OutOfRangeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseAmountError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::TooPreciseError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::UnknownDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeight +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeightDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeightDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeightEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeightInterval +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockMtp +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockMtpInterval +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::TooBigForRelativeHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::fee_rate::serde::OverflowError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::Height +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::LockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::LockTimeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::LockTimeEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::MedianTimePast +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ConversionError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::LockTimeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::LockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::ParseIntError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::PrefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::UnprefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::MathOp +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::NumOpError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::sequence::Sequence +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::sequence::SequenceDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::sequence::SequenceDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::sequence::SequenceEncoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::time::BlockTimeDecoder +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::time::BlockTimeDecoderError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::time::BlockTimeEncoder +impl core::str::traits::FromStr for bitcoin_units::Amount +impl core::str::traits::FromStr for bitcoin_units::SignedAmount +impl core::str::traits::FromStr for bitcoin_units::Weight +impl core::str::traits::FromStr for bitcoin_units::amount::Denomination +impl core::str::traits::FromStr for bitcoin_units::block::BlockHeight +impl core::str::traits::FromStr for bitcoin_units::block::BlockHeightInterval +impl core::str::traits::FromStr for bitcoin_units::block::BlockMtp +impl core::str::traits::FromStr for bitcoin_units::block::BlockMtpInterval +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::Height +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::LockTime +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::MedianTimePast +impl core::str::traits::FromStr for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::str::traits::FromStr for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::str::traits::FromStr for bitcoin_units::sequence::Sequence +impl serde::ser::Serialize for bitcoin_units::BlockTime +impl serde::ser::Serialize for bitcoin_units::Weight +impl serde::ser::Serialize for bitcoin_units::block::BlockHeight +impl serde::ser::Serialize for bitcoin_units::block::BlockHeightInterval +impl serde::ser::Serialize for bitcoin_units::block::BlockMtp +impl serde::ser::Serialize for bitcoin_units::block::BlockMtpInterval +impl serde::ser::Serialize for bitcoin_units::locktime::absolute::LockTime +impl serde::ser::Serialize for bitcoin_units::locktime::relative::LockTime +impl serde::ser::Serialize for bitcoin_units::sequence::Sequence +impl<'a, T: arbitrary::Arbitrary<'a>> arbitrary::Arbitrary<'a> for bitcoin_units::result::NumOpResult +impl<'a, T> core::ops::arith::Add<&'a T> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl<'a, T> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl<'a, T> core::ops::arith::Sub<&'a T> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl<'a, T> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::Amount +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::BlockTime +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::FeeRate +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::SignedAmount +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::Weight +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::amount::Denomination +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::block::BlockHeight +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::block::BlockHeightInterval +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::block::BlockMtp +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::block::BlockMtpInterval +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::locktime::absolute::Height +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::locktime::absolute::LockTime +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::locktime::absolute::MedianTimePast +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::locktime::relative::NumberOf512Seconds +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::locktime::relative::NumberOfBlocks +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::result::MathOp +impl<'a> arbitrary::Arbitrary<'a> for bitcoin_units::sequence::Sequence +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::Weight> for bitcoin_units::Weight +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Add<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::FeeRate> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Add<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeightInterval +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtpInterval +impl<'a> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::FeeRate> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::FeeRate> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Amount> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::FeeRate> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::FeeRate> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::SignedAmount> for &i64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &i64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Mul<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Rem<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Rem<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Rem<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::FeeRate> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeight> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeightInterval +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtp> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtpInterval +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::SignedAmount +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::BlockTime +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::Weight +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::block::BlockHeight +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::block::BlockHeightInterval +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::block::BlockMtp +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::block::BlockMtpInterval +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::locktime::absolute::LockTime +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::locktime::relative::LockTime +impl<'de> serde::de::Deserialize<'de> for bitcoin_units::sequence::Sequence +impl core::clone::Clone for bitcoin_units::result::NumOpResult +impl core::cmp::Eq for bitcoin_units::result::NumOpResult +impl core::cmp::PartialEq for bitcoin_units::result::NumOpResult +impl bitcoin_units::result::NumOpResult +impl core::fmt::Debug for bitcoin_units::result::NumOpResult +impl core::marker::Copy for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl bitcoin_units::result::NumOpResult +impl core::marker::Freeze for bitcoin_units::result::NumOpResult where T: core::marker::Freeze +impl core::marker::Send for bitcoin_units::result::NumOpResult where T: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_units::result::NumOpResult +impl core::marker::Sync for bitcoin_units::result::NumOpResult where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_units::result::NumOpResult where T: core::marker::Unpin +impl core::ops::arith::Add for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Add<&T> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Add for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Sub for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub<&T> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::NumOpResult where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::NumOpResult where T: core::panic::unwind_safe::UnwindSafe +pub bitcoin_units::NumOpResult::Error(bitcoin_units::result::NumOpError) +pub bitcoin_units::NumOpResult::Valid(T) +pub bitcoin_units::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) +pub bitcoin_units::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::MedianTimePast) +pub bitcoin_units::amount::Denomination::Bit +pub bitcoin_units::amount::Denomination::Bitcoin +pub bitcoin_units::amount::Denomination::CentiBitcoin +pub bitcoin_units::amount::Denomination::MicroBitcoin +pub bitcoin_units::amount::Denomination::MilliBitcoin +pub bitcoin_units::amount::Denomination::Satoshi +pub bitcoin_units::amount::ParseDenominationError::PossiblyConfusing(bitcoin_units::amount::error::PossiblyConfusingDenominationError) +pub bitcoin_units::amount::ParseDenominationError::Unknown(bitcoin_units::amount::error::UnknownDenominationError) +pub bitcoin_units::amount::error::ParseDenominationError::PossiblyConfusing(bitcoin_units::amount::error::PossiblyConfusingDenominationError) +pub bitcoin_units::amount::error::ParseDenominationError::Unknown(bitcoin_units::amount::error::UnknownDenominationError) +pub bitcoin_units::locktime::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) +pub bitcoin_units::locktime::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::MedianTimePast) +pub bitcoin_units::locktime::relative::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::LockTime::Blocks(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::LockTime::Time(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::LockTime::Blocks(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::LockTime::Time(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::error::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::error::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::error::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::error::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::error::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::error::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::result::MathOp::Add +pub bitcoin_units::result::MathOp::Div +pub bitcoin_units::result::MathOp::Mul +pub bitcoin_units::result::MathOp::Neg +pub bitcoin_units::result::MathOp::Rem +pub bitcoin_units::result::MathOp::Sub +pub bitcoin_units::result::NumOpResult::Error(bitcoin_units::result::NumOpError) +pub bitcoin_units::result::NumOpResult::Valid(T) +pub const bitcoin_units::Amount::FIFTY_BTC: Self +pub const bitcoin_units::Amount::MAX: Self +pub const bitcoin_units::Amount::MAX_MONEY: Self +pub const bitcoin_units::Amount::MIN: Self +pub const bitcoin_units::Amount::ONE_BTC: Self +pub const bitcoin_units::Amount::ONE_SAT: Self +pub const bitcoin_units::Amount::SIZE: usize +pub const bitcoin_units::Amount::ZERO: Self +pub const bitcoin_units::FeeRate::BROADCAST_MIN: Self +pub const bitcoin_units::FeeRate::DUST: Self +pub const bitcoin_units::FeeRate::MAX: Self +pub const bitcoin_units::FeeRate::MIN: Self +pub const bitcoin_units::FeeRate::ZERO: Self +pub const bitcoin_units::SignedAmount::FIFTY_BTC: Self +pub const bitcoin_units::SignedAmount::MAX: Self +pub const bitcoin_units::SignedAmount::MAX_MONEY: Self +pub const bitcoin_units::SignedAmount::MIN: Self +pub const bitcoin_units::SignedAmount::ONE_BTC: Self +pub const bitcoin_units::SignedAmount::ONE_SAT: Self +pub const bitcoin_units::SignedAmount::ZERO: Self +pub const bitcoin_units::Weight::MAX: Self +pub const bitcoin_units::Weight::MAX_BLOCK: Self +pub const bitcoin_units::Weight::MIN: Self +pub const bitcoin_units::Weight::MIN_TRANSACTION: Self +pub const bitcoin_units::Weight::WITNESS_SCALE_FACTOR: u64 +pub const bitcoin_units::Weight::ZERO: Self +pub const bitcoin_units::absolute::LOCK_TIME_THRESHOLD: u32 +pub const bitcoin_units::amount::Denomination::BTC: Self +pub const bitcoin_units::amount::Denomination::SAT: Self +pub const bitcoin_units::block::BlockHeight::MAX: Self +pub const bitcoin_units::block::BlockHeight::MIN: Self +pub const bitcoin_units::block::BlockHeight::ZERO: Self +pub const bitcoin_units::block::BlockHeightInterval::MAX: Self +pub const bitcoin_units::block::BlockHeightInterval::MIN: Self +pub const bitcoin_units::block::BlockHeightInterval::ZERO: Self +pub const bitcoin_units::block::BlockMtp::MAX: Self +pub const bitcoin_units::block::BlockMtp::MIN: Self +pub const bitcoin_units::block::BlockMtp::ZERO: Self +pub const bitcoin_units::block::BlockMtpInterval::MAX: Self +pub const bitcoin_units::block::BlockMtpInterval::MIN: Self +pub const bitcoin_units::block::BlockMtpInterval::ZERO: Self +pub const bitcoin_units::locktime::absolute::Height::MAX: Self +pub const bitcoin_units::locktime::absolute::Height::MIN: Self +pub const bitcoin_units::locktime::absolute::Height::ZERO: Self +pub const bitcoin_units::locktime::absolute::LOCK_TIME_THRESHOLD: u32 +pub const bitcoin_units::locktime::absolute::LockTime::SIZE: usize +pub const bitcoin_units::locktime::absolute::LockTime::ZERO: Self +pub const bitcoin_units::locktime::absolute::MedianTimePast::MAX: Self +pub const bitcoin_units::locktime::absolute::MedianTimePast::MIN: Self +pub const bitcoin_units::locktime::relative::LockTime::SIZE: usize +pub const bitcoin_units::locktime::relative::LockTime::ZERO: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::MAX: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::MIN: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::ZERO: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::MAX: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::MIN: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::ZERO: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_LOCKTIME_AND_RBF: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_LOCKTIME_NO_RBF: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_RBF_NO_LOCKTIME: Self +pub const bitcoin_units::sequence::Sequence::FINAL: Self +pub const bitcoin_units::sequence::Sequence::MAX: Self +pub const bitcoin_units::sequence::Sequence::SIZE: usize +pub const bitcoin_units::sequence::Sequence::ZERO: Self +pub const bitcoin_units::weight::WITNESS_SCALE_FACTOR: usize +pub const fn bitcoin_units::Amount::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_rem(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Amount::div_by_fee_rate_ceil(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_fee_rate_floor(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_weight_ceil(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_weight_floor(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::from_btc_u16(whole_bitcoin: u16) -> Self +pub const fn bitcoin_units::Amount::from_sat(satoshi: u64) -> core::result::Result +pub const fn bitcoin_units::Amount::from_sat_u32(satoshi: u32) -> Self +pub const fn bitcoin_units::Amount::to_sat(self) -> u64 +pub const fn bitcoin_units::BlockTime::from_u32(t: u32) -> Self +pub const fn bitcoin_units::BlockTime::to_u32(self) -> u32 +pub const fn bitcoin_units::FeeRate::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::FeeRate::from_per_kvb(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_per_kwu(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_per_vb(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_sat_per_kvb(sat_kvb: u32) -> Self +pub const fn bitcoin_units::FeeRate::from_sat_per_kwu(sat_kwu: u32) -> Self +pub const fn bitcoin_units::FeeRate::from_sat_per_vb(sat_vb: u32) -> Self +pub const fn bitcoin_units::FeeRate::mul_by_weight(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::to_fee(self, weight: bitcoin_units::Weight) -> bitcoin_units::Amount +pub const fn bitcoin_units::FeeRate::to_sat_per_kvb_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kvb_floor(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kwu_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kwu_floor(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_vb_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_vb_floor(self) -> u64 +pub const fn bitcoin_units::SignedAmount::abs(self) -> Self +pub const fn bitcoin_units::SignedAmount::checked_abs(self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_div(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_mul(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_rem(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::from_btc_i16(whole_bitcoin: i16) -> Self +pub const fn bitcoin_units::SignedAmount::from_sat(satoshi: i64) -> core::result::Result +pub const fn bitcoin_units::SignedAmount::from_sat_i32(satoshi: i32) -> Self +pub const fn bitcoin_units::SignedAmount::to_sat(self) -> i64 +pub const fn bitcoin_units::Weight::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Weight::from_kwu(wu: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::from_non_witness_data_size(non_witness_size: u64) -> Self +pub const fn bitcoin_units::Weight::from_vb(vb: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::from_vb_unchecked(vb: u64) -> Self +pub const fn bitcoin_units::Weight::from_vb_unwrap(vb: u64) -> Self +pub const fn bitcoin_units::Weight::from_witness_data_size(witness_size: u64) -> Self +pub const fn bitcoin_units::Weight::from_wu(wu: u64) -> Self +pub const fn bitcoin_units::Weight::mul_by_fee_rate(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Weight::to_kwu_ceil(self) -> u64 +pub const fn bitcoin_units::Weight::to_kwu_floor(self) -> u64 +pub const fn bitcoin_units::Weight::to_vbytes_ceil(self) -> u64 +pub const fn bitcoin_units::Weight::to_vbytes_floor(self) -> u64 +pub const fn bitcoin_units::Weight::to_wu(self) -> u64 +pub const fn bitcoin_units::absolute::is_block_height(n: u32) -> bool +pub const fn bitcoin_units::absolute::is_block_time(n: u32) -> bool +pub const fn bitcoin_units::amount::AmountDecoder::new() -> Self +pub const fn bitcoin_units::block::BlockHeight::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockHeight::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockHeightDecoder::new() -> Self +pub const fn bitcoin_units::block::BlockHeightInterval::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockHeightInterval::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockMtp::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockMtp::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockMtpInterval::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockMtpInterval::to_relative_mtp_interval_ceil(self) -> core::result::Result +pub const fn bitcoin_units::block::BlockMtpInterval::to_relative_mtp_interval_floor(self) -> core::result::Result +pub const fn bitcoin_units::block::BlockMtpInterval::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::Height::from_u32(n: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::absolute::Height::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::LockTime::is_block_height(self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTime::is_block_time(self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTime::is_same_unit(self, other: Self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTimeDecoder::new() -> Self +pub const fn bitcoin_units::locktime::absolute::MedianTimePast::from_u32(n: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::absolute::MedianTimePast::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::is_block_height(n: u32) -> bool +pub const fn bitcoin_units::locktime::absolute::is_block_time(n: u32) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::from_512_second_intervals(intervals: u16) -> Self +pub const fn bitcoin_units::locktime::relative::LockTime::from_height(n: u16) -> Self +pub const fn bitcoin_units::locktime::relative::LockTime::from_seconds_ceil(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::LockTime::from_seconds_floor(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::LockTime::is_block_height(self) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::is_block_time(self) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::is_same_unit(self, other: Self) -> bool +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_512_second_intervals(intervals: u16) -> Self +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_seconds_ceil(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_seconds_floor(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_512_second_intervals(self) -> u16 +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_seconds(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::from_height(blocks: u16) -> Self +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::to_height(self) -> u16 +pub const fn bitcoin_units::sequence::Sequence::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::sequence::SequenceDecoder::new() -> Self +pub const fn bitcoin_units::time::BlockTimeDecoder::new() -> Self +pub enum bitcoin_units::NumOpResult +pub enum bitcoin_units::absolute::LockTime +pub enum bitcoin_units::locktime::absolute::LockTime +pub enum bitcoin_units::locktime::relative::IsSatisfiedByError +pub enum bitcoin_units::locktime::relative::IsSatisfiedByHeightError +pub enum bitcoin_units::locktime::relative::IsSatisfiedByTimeError +pub enum bitcoin_units::locktime::relative::LockTime +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByError +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +pub enum bitcoin_units::relative::IsSatisfiedByError +pub enum bitcoin_units::relative::IsSatisfiedByHeightError +pub enum bitcoin_units::relative::IsSatisfiedByTimeError +pub enum bitcoin_units::relative::LockTime +pub enum bitcoin_units::relative::error::IsSatisfiedByError +pub enum bitcoin_units::relative::error::IsSatisfiedByHeightError +pub enum bitcoin_units::relative::error::IsSatisfiedByTimeError +pub enum bitcoin_units::result::NumOpResult +pub fn &bitcoin_units::Amount::add(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::add(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::add(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::FeeRate::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::sub(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::sub(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &core::num::nonzero::NonZeroI64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: core::num::nonzero::NonZeroI64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::mul(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::mul(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::rem(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::rem(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::add(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::add(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::sub(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::sub(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtp) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtp) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: &T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: &T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &i64::mul(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &i64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &i64::mul(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &i64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::Amount::clone(&self) -> bitcoin_units::Amount +pub fn bitcoin_units::Amount::cmp(&self, other: &bitcoin_units::Amount) -> core::cmp::Ordering +pub fn bitcoin_units::Amount::decoder() -> Self::Decoder +pub fn bitcoin_units::Amount::default() -> Self +pub fn bitcoin_units::Amount::display_dynamic(self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::Amount::display_in(self, denomination: bitcoin_units::amount::Denomination) -> bitcoin_units::amount::Display +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Amount::encoder(&self) -> Self::Encoder +pub fn bitcoin_units::Amount::eq(&self, other: &bitcoin_units::Amount) -> bool +pub fn bitcoin_units::Amount::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::Amount::from_btc(btc: f64) -> core::result::Result +pub fn bitcoin_units::Amount::from_float_in(value: f64, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::Amount::from_int_btc>(whole_bitcoin: T) -> Self +pub fn bitcoin_units::Amount::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::Amount::from_str_in(s: &str, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::Amount::from_str_with_denomination(s: &str) -> core::result::Result +pub fn bitcoin_units::Amount::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::Amount::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Amount::partial_cmp(&self, other: &bitcoin_units::Amount) -> core::option::Option +pub fn bitcoin_units::Amount::rem(self, modulus: u64) -> Self::Output +pub fn bitcoin_units::Amount::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::signed_sub(self, rhs: Self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::to_btc(self) -> f64 +pub fn bitcoin_units::Amount::to_float_in(self, denom: bitcoin_units::amount::Denomination) -> f64 +pub fn bitcoin_units::Amount::to_signed(self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::Amount::to_string_in(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::Amount::to_string_with_denomination(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::Amount::try_from(value: bitcoin_units::SignedAmount) -> core::result::Result +pub fn bitcoin_units::BlockTime::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::BlockTime::clone(&self) -> bitcoin_units::BlockTime +pub fn bitcoin_units::BlockTime::cmp(&self, other: &bitcoin_units::BlockTime) -> core::cmp::Ordering +pub fn bitcoin_units::BlockTime::decoder() -> Self::Decoder +pub fn bitcoin_units::BlockTime::deserialize(d: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::BlockTime::encoder(&self) -> Self::Encoder +pub fn bitcoin_units::BlockTime::eq(&self, other: &bitcoin_units::BlockTime) -> bool +pub fn bitcoin_units::BlockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::BlockTime::from(t: u32) -> Self +pub fn bitcoin_units::BlockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::BlockTime::partial_cmp(&self, other: &bitcoin_units::BlockTime) -> core::option::Option +pub fn bitcoin_units::BlockTime::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::FeeRate::add(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::add(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::add_assign(&mut self, rhs: &bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::add_assign(&mut self, rhs: bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::FeeRate::clone(&self) -> bitcoin_units::FeeRate +pub fn bitcoin_units::FeeRate::cmp(&self, other: &bitcoin_units::FeeRate) -> core::cmp::Ordering +pub fn bitcoin_units::FeeRate::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::FeeRate::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::FeeRate::eq(&self, other: &bitcoin_units::FeeRate) -> bool +pub fn bitcoin_units::FeeRate::fee_vb(self, vb: u64) -> core::option::Option +pub fn bitcoin_units::FeeRate::fee_wu(self, weight: bitcoin_units::Weight) -> core::option::Option +pub fn bitcoin_units::FeeRate::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::FeeRate::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::FeeRate::partial_cmp(&self, other: &bitcoin_units::FeeRate) -> core::option::Option +pub fn bitcoin_units::FeeRate::sub(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::sub(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::sub_assign(&mut self, rhs: &bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::sub_assign(&mut self, rhs: bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::FeeRate::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::SignedAmount::clone(&self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::SignedAmount::cmp(&self, other: &bitcoin_units::SignedAmount) -> core::cmp::Ordering +pub fn bitcoin_units::SignedAmount::default() -> Self +pub fn bitcoin_units::SignedAmount::display_dynamic(self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::SignedAmount::display_in(self, denomination: bitcoin_units::amount::Denomination) -> bitcoin_units::amount::Display +pub fn bitcoin_units::SignedAmount::div(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: &core::num::nonzero::NonZeroI64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: core::num::nonzero::NonZeroI64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::eq(&self, other: &bitcoin_units::SignedAmount) -> bool +pub fn bitcoin_units::SignedAmount::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::SignedAmount::from(value: bitcoin_units::Amount) -> Self +pub fn bitcoin_units::SignedAmount::from_btc(btc: f64) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_float_in(value: f64, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_int_btc>(whole_bitcoin: T) -> Self +pub fn bitcoin_units::SignedAmount::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_str_in(s: &str, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_str_with_denomination(s: &str) -> core::result::Result +pub fn bitcoin_units::SignedAmount::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::SignedAmount::is_negative(self) -> bool +pub fn bitcoin_units::SignedAmount::is_positive(self) -> bool +pub fn bitcoin_units::SignedAmount::mul(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::mul(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::neg(self) -> Self::Output +pub fn bitcoin_units::SignedAmount::partial_cmp(&self, other: &bitcoin_units::SignedAmount) -> core::option::Option +pub fn bitcoin_units::SignedAmount::positive_sub(self, rhs: Self) -> core::option::Option +pub fn bitcoin_units::SignedAmount::rem(self, modulus: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::rem(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::signum(self) -> i64 +pub fn bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::to_btc(self) -> f64 +pub fn bitcoin_units::SignedAmount::to_float_in(self, denom: bitcoin_units::amount::Denomination) -> f64 +pub fn bitcoin_units::SignedAmount::to_string_in(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::SignedAmount::to_string_with_denomination(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::SignedAmount::to_unsigned(self) -> core::result::Result +pub fn bitcoin_units::SignedAmount::unsigned_abs(self) -> bitcoin_units::Amount +pub fn bitcoin_units::Weight::add(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::add(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::add_assign(&mut self, rhs: &bitcoin_units::Weight) +pub fn bitcoin_units::Weight::add_assign(&mut self, rhs: bitcoin_units::Weight) +pub fn bitcoin_units::Weight::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::Weight::clone(&self) -> bitcoin_units::Weight +pub fn bitcoin_units::Weight::cmp(&self, other: &bitcoin_units::Weight) -> core::cmp::Ordering +pub fn bitcoin_units::Weight::deserialize(d: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::Weight::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::div_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::eq(&self, other: &bitcoin_units::Weight) -> bool +pub fn bitcoin_units::Weight::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::Weight::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::Weight::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::mul_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::partial_cmp(&self, other: &bitcoin_units::Weight) -> core::option::Option +pub fn bitcoin_units::Weight::rem(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::rem_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::Weight::sub(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::sub(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::sub_assign(&mut self, rhs: &bitcoin_units::Weight) +pub fn bitcoin_units::Weight::sub_assign(&mut self, rhs: bitcoin_units::Weight) +pub fn bitcoin_units::Weight::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::Weight::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::Weight::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::Weight::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::Weight::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::amount::AmountDecoder::default() -> Self +pub fn bitcoin_units::amount::AmountDecoder::end(self) -> core::result::Result +pub fn bitcoin_units::amount::AmountDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_units::amount::AmountDecoder::read_limit(&self) -> usize +pub fn bitcoin_units::amount::AmountEncoder::advance(&mut self) -> bool +pub fn bitcoin_units::amount::AmountEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_units::amount::Denomination::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::amount::Denomination::clone(&self) -> bitcoin_units::amount::Denomination +pub fn bitcoin_units::amount::Denomination::eq(&self, other: &bitcoin_units::amount::Denomination) -> bool +pub fn bitcoin_units::amount::Denomination::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::Denomination::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::amount::Denomination::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::amount::Display::clone(&self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::amount::Display::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::Display::show_denomination(self) -> Self +pub fn bitcoin_units::amount::error::AmountDecoderError::clone(&self) -> bitcoin_units::amount::error::AmountDecoderError +pub fn bitcoin_units::amount::error::AmountDecoderError::eq(&self, other: &bitcoin_units::amount::error::AmountDecoderError) -> bool +pub fn bitcoin_units::amount::error::AmountDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::AmountDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::AmountDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::amount::error::BadPositionError::clone(&self) -> bitcoin_units::amount::error::BadPositionError +pub fn bitcoin_units::amount::error::BadPositionError::eq(&self, other: &bitcoin_units::amount::error::BadPositionError) -> bool +pub fn bitcoin_units::amount::error::BadPositionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::InputTooLargeError::clone(&self) -> bitcoin_units::amount::error::InputTooLargeError +pub fn bitcoin_units::amount::error::InputTooLargeError::eq(&self, other: &bitcoin_units::amount::error::InputTooLargeError) -> bool +pub fn bitcoin_units::amount::error::InputTooLargeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::InvalidCharacterError::clone(&self) -> bitcoin_units::amount::error::InvalidCharacterError +pub fn bitcoin_units::amount::error::InvalidCharacterError::eq(&self, other: &bitcoin_units::amount::error::InvalidCharacterError) -> bool +pub fn bitcoin_units::amount::error::InvalidCharacterError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::MissingDenominationError::clone(&self) -> bitcoin_units::amount::error::MissingDenominationError +pub fn bitcoin_units::amount::error::MissingDenominationError::eq(&self, other: &bitcoin_units::amount::error::MissingDenominationError) -> bool +pub fn bitcoin_units::amount::error::MissingDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::MissingDigitsError::clone(&self) -> bitcoin_units::amount::error::MissingDigitsError +pub fn bitcoin_units::amount::error::MissingDigitsError::eq(&self, other: &bitcoin_units::amount::error::MissingDigitsError) -> bool +pub fn bitcoin_units::amount::error::MissingDigitsError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::OutOfRangeError::clone(&self) -> bitcoin_units::amount::error::OutOfRangeError +pub fn bitcoin_units::amount::error::OutOfRangeError::eq(&self, other: &bitcoin_units::amount::error::OutOfRangeError) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::OutOfRangeError::is_above_max(self) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::is_below_min(self) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::valid_range(self) -> (i64, u64) +pub fn bitcoin_units::amount::error::ParseAmountError::clone(&self) -> bitcoin_units::amount::error::ParseAmountError +pub fn bitcoin_units::amount::error::ParseAmountError::eq(&self, other: &bitcoin_units::amount::error::ParseAmountError) -> bool +pub fn bitcoin_units::amount::error::ParseAmountError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseAmountError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::BadPositionError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::InputTooLargeError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::InvalidCharacterError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::MissingDigitsError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::OutOfRangeError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::TooPreciseError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::amount::error::ParseDenominationError::clone(&self) -> bitcoin_units::amount::error::ParseDenominationError +pub fn bitcoin_units::amount::error::ParseDenominationError::eq(&self, other: &bitcoin_units::amount::error::ParseDenominationError) -> bool +pub fn bitcoin_units::amount::error::ParseDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseDenominationError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseDenominationError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::amount::error::ParseError::clone(&self) -> bitcoin_units::amount::error::ParseError +pub fn bitcoin_units::amount::error::ParseError::eq(&self, other: &bitcoin_units::amount::error::ParseError) -> bool +pub fn bitcoin_units::amount::error::ParseError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::BadPositionError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::InputTooLargeError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::InvalidCharacterError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::MissingDigitsError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::OutOfRangeError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::ParseAmountError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::ParseDenominationError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::TooPreciseError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::clone(&self) -> bitcoin_units::amount::error::PossiblyConfusingDenominationError +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::eq(&self, other: &bitcoin_units::amount::error::PossiblyConfusingDenominationError) -> bool +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::amount::error::TooPreciseError::clone(&self) -> bitcoin_units::amount::error::TooPreciseError +pub fn bitcoin_units::amount::error::TooPreciseError::eq(&self, other: &bitcoin_units::amount::error::TooPreciseError) -> bool +pub fn bitcoin_units::amount::error::TooPreciseError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::UnknownDenominationError::clone(&self) -> bitcoin_units::amount::error::UnknownDenominationError +pub fn bitcoin_units::amount::error::UnknownDenominationError::eq(&self, other: &bitcoin_units::amount::error::UnknownDenominationError) -> bool +pub fn bitcoin_units::amount::error::UnknownDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::UnknownDenominationError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::amount::serde::as_btc::deserialize<'d, A, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result::Error> where A: core::convert::TryFrom, >::Error: core::fmt::Display +pub fn bitcoin_units::amount::serde::as_btc::opt::deserialize<'d, A, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result, ::Error> where A: core::convert::TryFrom, >::Error: core::fmt::Display +pub fn bitcoin_units::amount::serde::as_btc::opt::serialize(a: &core::option::Option, s: S) -> core::result::Result<::Ok, ::Error> where A: core::convert::Into + core::marker::Copy +pub fn bitcoin_units::amount::serde::as_btc::serialize(a: &A, s: S) -> core::result::Result<::Ok, ::Error> where A: core::convert::Into + core::marker::Copy +pub fn bitcoin_units::amount::serde::as_sat::deserialize<'d, A, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result::Error> where A: core::convert::TryFrom, >::Error: core::fmt::Display +pub fn bitcoin_units::amount::serde::as_sat::opt::deserialize<'d, A, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result, ::Error> where A: core::convert::TryFrom, >::Error: core::fmt::Display +pub fn bitcoin_units::amount::serde::as_sat::opt::serialize(a: &core::option::Option, s: S) -> core::result::Result<::Ok, ::Error> where A: core::convert::Into + core::marker::Copy +pub fn bitcoin_units::amount::serde::as_sat::serialize(a: &A, s: S) -> core::result::Result<::Ok, ::Error> where A: core::convert::Into + core::marker::Copy +pub fn bitcoin_units::amount::serde::as_str::deserialize<'d, A, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result::Error> where A: core::convert::TryFrom, >::Error: core::fmt::Display +pub fn bitcoin_units::amount::serde::as_str::opt::deserialize<'d, A, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result, ::Error> where A: core::convert::TryFrom, >::Error: core::fmt::Display +pub fn bitcoin_units::amount::serde::as_str::opt::serialize(a: &core::option::Option, s: S) -> core::result::Result<::Ok, ::Error> where A: core::convert::Into + core::marker::Copy +pub fn bitcoin_units::amount::serde::as_str::serialize(a: &A, s: S) -> core::result::Result<::Ok, ::Error> where A: core::convert::Into + core::marker::Copy +pub fn bitcoin_units::block::BlockHeight::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::block::BlockHeight::checked_add(self, other: bitcoin_units::block::BlockHeightInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::clone(&self) -> bitcoin_units::block::BlockHeight +pub fn bitcoin_units::block::BlockHeight::cmp(&self, other: &bitcoin_units::block::BlockHeight) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockHeight::decoder() -> Self::Decoder +pub fn bitcoin_units::block::BlockHeight::deserialize(d: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::block::BlockHeight::encoder(&self) -> Self::Encoder +pub fn bitcoin_units::block::BlockHeight::eq(&self, other: &bitcoin_units::block::BlockHeight) -> bool +pub fn bitcoin_units::block::BlockHeight::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeight::from(h: bitcoin_units::locktime::absolute::Height) -> Self +pub fn bitcoin_units::block::BlockHeight::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockHeight::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockHeight::partial_cmp(&self, other: &bitcoin_units::block::BlockHeight) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeight) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeight) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightDecoder::default() -> Self +pub fn bitcoin_units::block::BlockHeightDecoder::end(self) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightDecoder::read_limit(&self) -> usize +pub fn bitcoin_units::block::BlockHeightDecoderError::clone(&self) -> bitcoin_units::block::BlockHeightDecoderError +pub fn bitcoin_units::block::BlockHeightDecoderError::eq(&self, other: &bitcoin_units::block::BlockHeightDecoderError) -> bool +pub fn bitcoin_units::block::BlockHeightDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeightDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::block::BlockHeightDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::block::BlockHeightEncoder::advance(&mut self) -> bool +pub fn bitcoin_units::block::BlockHeightEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_units::block::BlockHeightInterval::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::add_assign(&mut self, rhs: &bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::add_assign(&mut self, rhs: bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::block::BlockHeightInterval::checked_add(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::clone(&self) -> bitcoin_units::block::BlockHeightInterval +pub fn bitcoin_units::block::BlockHeightInterval::cmp(&self, other: &bitcoin_units::block::BlockHeightInterval) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockHeightInterval::default() -> bitcoin_units::block::BlockHeightInterval +pub fn bitcoin_units::block::BlockHeightInterval::deserialize(d: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::block::BlockHeightInterval::eq(&self, other: &bitcoin_units::block::BlockHeightInterval) -> bool +pub fn bitcoin_units::block::BlockHeightInterval::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeightInterval::from(h: bitcoin_units::locktime::relative::NumberOfBlocks) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockHeightInterval::partial_cmp(&self, other: &bitcoin_units::block::BlockHeightInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::block::BlockHeightInterval::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::sub_assign(&mut self, rhs: &bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::sub_assign(&mut self, rhs: bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::sum>(iter: I) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::block::BlockMtp::checked_add(self, other: bitcoin_units::block::BlockMtpInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::clone(&self) -> bitcoin_units::block::BlockMtp +pub fn bitcoin_units::block::BlockMtp::cmp(&self, other: &bitcoin_units::block::BlockMtp) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockMtp::deserialize(d: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::block::BlockMtp::eq(&self, other: &bitcoin_units::block::BlockMtp) -> bool +pub fn bitcoin_units::block::BlockMtp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockMtp::from(h: bitcoin_units::locktime::absolute::MedianTimePast) -> Self +pub fn bitcoin_units::block::BlockMtp::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockMtp::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockMtp::new(timestamps: [bitcoin_units::BlockTime; 11]) -> Self +pub fn bitcoin_units::block::BlockMtp::partial_cmp(&self, other: &bitcoin_units::block::BlockMtp) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtp) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtp) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::add_assign(&mut self, rhs: &bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::add_assign(&mut self, rhs: bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::block::BlockMtpInterval::checked_add(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::clone(&self) -> bitcoin_units::block::BlockMtpInterval +pub fn bitcoin_units::block::BlockMtpInterval::cmp(&self, other: &bitcoin_units::block::BlockMtpInterval) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockMtpInterval::default() -> bitcoin_units::block::BlockMtpInterval +pub fn bitcoin_units::block::BlockMtpInterval::deserialize(d: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::block::BlockMtpInterval::eq(&self, other: &bitcoin_units::block::BlockMtpInterval) -> bool +pub fn bitcoin_units::block::BlockMtpInterval::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockMtpInterval::from(h: bitcoin_units::locktime::relative::NumberOf512Seconds) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockMtpInterval::partial_cmp(&self, other: &bitcoin_units::block::BlockMtpInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::serialize(&self, s: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::block::BlockMtpInterval::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::sub_assign(&mut self, rhs: &bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::sub_assign(&mut self, rhs: bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::sum>(iter: I) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::TooBigForRelativeHeightError::clone(&self) -> bitcoin_units::block::TooBigForRelativeHeightError +pub fn bitcoin_units::block::TooBigForRelativeHeightError::eq(&self, other: &bitcoin_units::block::TooBigForRelativeHeightError) -> bool +pub fn bitcoin_units::block::TooBigForRelativeHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::fee_rate::serde::OverflowError::clone(&self) -> bitcoin_units::fee_rate::serde::OverflowError +pub fn bitcoin_units::fee_rate::serde::OverflowError::eq(&self, other: &bitcoin_units::fee_rate::serde::OverflowError) -> bool +pub fn bitcoin_units::fee_rate::serde::OverflowError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::fee_rate::serde::OverflowError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::fee_rate::serde::as_sat_per_kwu_floor::deserialize<'d, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_kwu_floor::opt::deserialize<'d, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_kwu_floor::opt::serialize(f: &core::option::Option, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_kwu_floor::serialize(f: &bitcoin_units::FeeRate, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_ceil::deserialize<'d, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_ceil::opt::deserialize<'d, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_ceil::opt::serialize(f: &core::option::Option, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_ceil::serialize(f: &bitcoin_units::FeeRate, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_floor::deserialize<'d, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_floor::opt::deserialize<'d, D: serde::de::Deserializer<'d>>(d: D) -> core::result::Result, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_floor::opt::serialize(f: &core::option::Option, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_units::fee_rate::serde::as_sat_per_vb_floor::serialize(f: &bitcoin_units::FeeRate, s: S) -> core::result::Result<::Ok, ::Error> +pub fn bitcoin_units::locktime::absolute::Height::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::locktime::absolute::Height::clone(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::Height::cmp(&self, other: &bitcoin_units::locktime::absolute::Height) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::absolute::Height::eq(&self, other: &bitcoin_units::locktime::absolute::Height) -> bool +pub fn bitcoin_units::locktime::absolute::Height::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::Height::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::Height::is_satisfied_by(self, height: Self) -> bool +pub fn bitcoin_units::locktime::absolute::Height::partial_cmp(&self, other: &bitcoin_units::locktime::absolute::Height) -> core::option::Option +pub fn bitcoin_units::locktime::absolute::Height::try_from(h: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::locktime::absolute::LockTime::clone(&self) -> bitcoin_units::locktime::absolute::LockTime +pub fn bitcoin_units::locktime::absolute::LockTime::decoder() -> Self::Decoder +pub fn bitcoin_units::locktime::absolute::LockTime::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::locktime::absolute::LockTime::encoder(&self) -> Self::Encoder +pub fn bitcoin_units::locktime::absolute::LockTime::eq(&self, other: &bitcoin_units::locktime::absolute::LockTime) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from(h: bitcoin_units::locktime::absolute::Height) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from(t: bitcoin_units::locktime::absolute::MedianTimePast) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from_consensus(n: u32) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from_height(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_mtp(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::LockTime::is_implied_by(self, other: Self) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by(self, height: bitcoin_units::locktime::absolute::Height, mtp: bitcoin_units::locktime::absolute::MedianTimePast) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by_height(self, height: bitcoin_units::locktime::absolute::Height) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by_time(self, mtp: bitcoin_units::locktime::absolute::MedianTimePast) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::locktime::absolute::LockTime::to_consensus_u32(self) -> u32 +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTimeDecoder::default() -> Self +pub fn bitcoin_units::locktime::absolute::LockTimeDecoder::end(self) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTimeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTimeDecoder::read_limit(&self) -> usize +pub fn bitcoin_units::locktime::absolute::LockTimeEncoder::advance(&mut self) -> bool +pub fn bitcoin_units::locktime::absolute::LockTimeEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_units::locktime::absolute::MedianTimePast::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::clone(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::MedianTimePast::cmp(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::absolute::MedianTimePast::eq(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> bool +pub fn bitcoin_units::locktime::absolute::MedianTimePast::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::MedianTimePast::is_satisfied_by(self, time: Self) -> bool +pub fn bitcoin_units::locktime::absolute::MedianTimePast::new(timestamps: [bitcoin_units::BlockTime; 11]) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::partial_cmp(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> core::option::Option +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(h: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::error::ConversionError::clone(&self) -> bitcoin_units::locktime::absolute::error::ConversionError +pub fn bitcoin_units::locktime::absolute::error::ConversionError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ConversionError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ConversionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::ConversionError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::clone(&self) -> bitcoin_units::locktime::absolute::error::IncompatibleHeightError +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::eq(&self, other: &bitcoin_units::locktime::absolute::error::IncompatibleHeightError) -> bool +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::incompatible(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::lock(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::clone(&self) -> bitcoin_units::locktime::absolute::error::IncompatibleTimeError +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::eq(&self, other: &bitcoin_units::locktime::absolute::error::IncompatibleTimeError) -> bool +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::incompatible(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::lock(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::error::LockTimeDecoderError::clone(&self) -> bitcoin_units::locktime::absolute::error::LockTimeDecoderError +pub fn bitcoin_units::locktime::absolute::error::LockTimeDecoderError::eq(&self, other: &bitcoin_units::locktime::absolute::error::LockTimeDecoderError) -> bool +pub fn bitcoin_units::locktime::absolute::error::LockTimeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::LockTimeDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::locktime::absolute::error::LockTimeDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::clone(&self) -> bitcoin_units::locktime::absolute::error::ParseHeightError +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ParseHeightError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::clone(&self) -> bitcoin_units::locktime::absolute::error::ParseTimeError +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ParseTimeError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::relative::LockTime::clone(&self) -> bitcoin_units::locktime::relative::LockTime +pub fn bitcoin_units::locktime::relative::LockTime::deserialize(deserializer: D) -> core::result::Result::Error> where D: serde::de::Deserializer<'de> +pub fn bitcoin_units::locktime::relative::LockTime::eq(&self, other: &bitcoin_units::locktime::relative::LockTime) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::LockTime::from(h: bitcoin_units::locktime::relative::NumberOfBlocks) -> Self +pub fn bitcoin_units::locktime::relative::LockTime::from(t: bitcoin_units::locktime::relative::NumberOf512Seconds) -> Self +pub fn bitcoin_units::locktime::relative::LockTime::from_consensus(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::from_sequence(n: bitcoin_units::sequence::Sequence) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::LockTime::is_implied_by(self, other: Self) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::is_implied_by_sequence(self, other: bitcoin_units::sequence::Sequence) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by(self, chain_tip_height: bitcoin_units::block::BlockHeight, chain_tip_mtp: bitcoin_units::block::BlockMtp, utxo_mined_at_height: bitcoin_units::block::BlockHeight, utxo_mined_at_mtp: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by_height(self, chain_tip: bitcoin_units::block::BlockHeight, utxo_mined_at: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by_time(self, chain_tip: bitcoin_units::block::BlockMtp, utxo_mined_at: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer +pub fn bitcoin_units::locktime::relative::LockTime::to_consensus_u32(self) -> u32 +pub fn bitcoin_units::locktime::relative::LockTime::to_sequence(self) -> bitcoin_units::sequence::Sequence +pub fn bitcoin_units::locktime::relative::LockTime::try_from(seq: bitcoin_units::sequence::Sequence) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::clone(&self) -> bitcoin_units::locktime::relative::NumberOf512Seconds +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::cmp(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::default() -> bitcoin_units::locktime::relative::NumberOf512Seconds +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::eq(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> bool +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::is_satisfied_by(self, chain_tip: bitcoin_units::block::BlockMtp, utxo_mined_at: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::partial_cmp(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> core::option::Option +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::clone(&self) -> bitcoin_units::locktime::relative::NumberOfBlocks +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::cmp(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::default() -> bitcoin_units::locktime::relative::NumberOfBlocks +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::eq(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> bool +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::from(value: u16) -> Self +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::is_satisfied_by(self, chain_tip: bitcoin_units::block::BlockHeight, utxo_mined_at: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::partial_cmp(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> core::option::Option +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(h: bitcoin_units::block::BlockHeightInterval) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::DisabledLockTimeError +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::disabled_locktime_value(&self) -> u32 +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::DisabledLockTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::clone(&self) -> bitcoin_units::locktime::relative::error::InvalidHeightError +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::eq(&self, other: &bitcoin_units::locktime::relative::error::InvalidHeightError) -> bool +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::InvalidTimeError +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::InvalidTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::clone(&self) -> bitcoin_units::locktime::relative::error::TimeOverflowError +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::eq(&self, other: &bitcoin_units::locktime::relative::error::TimeOverflowError) -> bool +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::ParseIntError::as_ref(&self) -> &core::num::error::ParseIntError +pub fn bitcoin_units::parse_int::ParseIntError::clone(&self) -> bitcoin_units::parse_int::ParseIntError +pub fn bitcoin_units::parse_int::ParseIntError::eq(&self, other: &bitcoin_units::parse_int::ParseIntError) -> bool +pub fn bitcoin_units::parse_int::ParseIntError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::ParseIntError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::parse_int::PrefixedHexError::clone(&self) -> bitcoin_units::parse_int::PrefixedHexError +pub fn bitcoin_units::parse_int::PrefixedHexError::eq(&self, other: &bitcoin_units::parse_int::PrefixedHexError) -> bool +pub fn bitcoin_units::parse_int::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::PrefixedHexError::from(e: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn bitcoin_units::parse_int::PrefixedHexError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::parse_int::PrefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::parse_int::UnprefixedHexError::clone(&self) -> bitcoin_units::parse_int::UnprefixedHexError +pub fn bitcoin_units::parse_int::UnprefixedHexError::eq(&self, other: &bitcoin_units::parse_int::UnprefixedHexError) -> bool +pub fn bitcoin_units::parse_int::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::UnprefixedHexError::from(e: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn bitcoin_units::parse_int::UnprefixedHexError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::parse_int::UnprefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::parse_int::hex_check_unprefixed(s: &str) -> core::result::Result<&str, bitcoin_units::parse_int::UnprefixedHexError> +pub fn bitcoin_units::parse_int::hex_remove_prefix(s: &str) -> core::result::Result<&str, bitcoin_units::parse_int::PrefixedHexError> +pub fn bitcoin_units::parse_int::hex_u128(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_box(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_string(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::result::MathOp::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::result::MathOp::clone(&self) -> bitcoin_units::result::MathOp +pub fn bitcoin_units::result::MathOp::eq(&self, other: &bitcoin_units::result::MathOp) -> bool +pub fn bitcoin_units::result::MathOp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::MathOp::is_addition(self) -> bool +pub fn bitcoin_units::result::MathOp::is_div_by_zero(self) -> bool +pub fn bitcoin_units::result::MathOp::is_multiplication(self) -> bool +pub fn bitcoin_units::result::MathOp::is_negation(self) -> bool +pub fn bitcoin_units::result::MathOp::is_overflow(self) -> bool +pub fn bitcoin_units::result::MathOp::is_subtraction(self) -> bool +pub fn bitcoin_units::result::NumOpError::clone(&self) -> bitcoin_units::result::NumOpError +pub fn bitcoin_units::result::NumOpError::eq(&self, other: &bitcoin_units::result::NumOpError) -> bool +pub fn bitcoin_units::result::NumOpError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::NumOpError::is_div_by_zero(self) -> bool +pub fn bitcoin_units::result::NumOpError::is_overflow(self) -> bool +pub fn bitcoin_units::result::NumOpError::operation(self) -> bitcoin_units::result::MathOp +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: &T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: Self) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: T) +pub fn bitcoin_units::result::NumOpResult::and_then(self, op: F) -> Self where F: core::ops::function::FnOnce(T) -> Self +pub fn bitcoin_units::result::NumOpResult::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::result::NumOpResult::clone(&self) -> bitcoin_units::result::NumOpResult +pub fn bitcoin_units::result::NumOpResult::eq(&self, other: &bitcoin_units::result::NumOpResult) -> bool +pub fn bitcoin_units::result::NumOpResult::expect(self, msg: &str) -> T +pub fn bitcoin_units::result::NumOpResult::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::NumOpResult::into_result(self) -> core::result::Result +pub fn bitcoin_units::result::NumOpResult::is_error(&self) -> bool +pub fn bitcoin_units::result::NumOpResult::is_valid(&self) -> bool +pub fn bitcoin_units::result::NumOpResult::map U>(self, op: F) -> bitcoin_units::result::NumOpResult +pub fn bitcoin_units::result::NumOpResult::ok(self) -> core::option::Option +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: &T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: Self) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: T) +pub fn bitcoin_units::result::NumOpResult::unwrap(self) -> T +pub fn bitcoin_units::result::NumOpResult::unwrap_err(self) -> bitcoin_units::result::NumOpError +pub fn bitcoin_units::result::NumOpResult::unwrap_or(self, default: T) -> T +pub fn bitcoin_units::result::NumOpResult::unwrap_or_else(self, f: F) -> T where F: core::ops::function::FnOnce() -> T +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: bitcoin_units::Amount) +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: &u64) +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: u64) +pub fn bitcoin_units::result::NumOpResult::from(a: &bitcoin_units::Amount) -> Self +pub fn bitcoin_units::result::NumOpResult::from(a: bitcoin_units::Amount) -> Self +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: &u64) +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: u64) +pub fn bitcoin_units::result::NumOpResult::rem(self, modulus: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: bitcoin_units::Amount) +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: bitcoin_units::SignedAmount) +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: &i64) +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: i64) +pub fn bitcoin_units::result::NumOpResult::from(a: &bitcoin_units::SignedAmount) -> Self +pub fn bitcoin_units::result::NumOpResult::from(a: bitcoin_units::SignedAmount) -> Self +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: &i64) +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: i64) +pub fn bitcoin_units::result::NumOpResult::rem(self, modulus: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::rem(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: bitcoin_units::SignedAmount) +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::sequence::Sequence::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'a>) -> arbitrary::error::Result +pub fn bitcoin_units::sequence::Sequence::clone(&self) -> bitcoin_units::sequence::Sequence +pub fn bitcoin_units::sequence::Sequence::cmp(&self, other: &bitcoin_units::sequence::Sequence) -> core::cmp::Ordering +pub fn bitcoin_units::sequence::Sequence::decoder() -> Self::Decoder +pub fn bitcoin_units::sequence::Sequence::default() -> Self +pub fn bitcoin_units::sequence::Sequence::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> +pub fn bitcoin_units::sequence::Sequence::enables_absolute_lock_time(self) -> bool +pub fn bitcoin_units::sequence::Sequence::encoder(&self) -> Self::Encoder +pub fn bitcoin_units::sequence::Sequence::eq(&self, other: &bitcoin_units::sequence::Sequence) -> bool +pub fn bitcoin_units::sequence::Sequence::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::sequence::Sequence::from(lt: bitcoin_units::locktime::relative::LockTime) -> Self +pub fn bitcoin_units::sequence::Sequence::from_512_second_intervals(intervals: u16) -> Self +pub fn bitcoin_units::sequence::Sequence::from_consensus(n: u32) -> Self +pub fn bitcoin_units::sequence::Sequence::from_height(height: u16) -> Self +pub fn bitcoin_units::sequence::Sequence::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_seconds_ceil(seconds: u32) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_seconds_floor(seconds: u32) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::sequence::Sequence::is_final(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_height_locked(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_rbf(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_relative_lock_time(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_time_locked(self) -> bool +pub fn bitcoin_units::sequence::Sequence::partial_cmp(&self, other: &bitcoin_units::sequence::Sequence) -> core::option::Option +pub fn bitcoin_units::sequence::Sequence::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer +pub fn bitcoin_units::sequence::Sequence::to_hex(self) -> alloc::string::String +pub fn bitcoin_units::sequence::Sequence::to_relative_lock_time(self) -> core::option::Option +pub fn bitcoin_units::sequence::Sequence::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::sequence::SequenceDecoder::default() -> Self +pub fn bitcoin_units::sequence::SequenceDecoder::end(self) -> core::result::Result +pub fn bitcoin_units::sequence::SequenceDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_units::sequence::SequenceDecoder::read_limit(&self) -> usize +pub fn bitcoin_units::sequence::SequenceDecoderError::clone(&self) -> bitcoin_units::sequence::SequenceDecoderError +pub fn bitcoin_units::sequence::SequenceDecoderError::eq(&self, other: &bitcoin_units::sequence::SequenceDecoderError) -> bool +pub fn bitcoin_units::sequence::SequenceDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::sequence::SequenceDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::sequence::SequenceDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::sequence::SequenceEncoder::advance(&mut self) -> bool +pub fn bitcoin_units::sequence::SequenceEncoder::current_chunk(&self) -> &[u8] +pub fn bitcoin_units::time::BlockTimeDecoder::default() -> Self +pub fn bitcoin_units::time::BlockTimeDecoder::end(self) -> core::result::Result +pub fn bitcoin_units::time::BlockTimeDecoder::push_bytes(&mut self, bytes: &mut &[u8]) -> core::result::Result +pub fn bitcoin_units::time::BlockTimeDecoder::read_limit(&self) -> usize +pub fn bitcoin_units::time::BlockTimeDecoderError::clone(&self) -> bitcoin_units::time::BlockTimeDecoderError +pub fn bitcoin_units::time::BlockTimeDecoderError::eq(&self, other: &bitcoin_units::time::BlockTimeDecoderError) -> bool +pub fn bitcoin_units::time::BlockTimeDecoderError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::time::BlockTimeDecoderError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::time::BlockTimeDecoderError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::time::BlockTimeEncoder::advance(&mut self) -> bool +pub fn bitcoin_units::time::BlockTimeEncoder::current_chunk(&self) -> &[u8] +pub fn core::num::error::ParseIntError::from(value: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn i64::mul(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn i64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn i64::mul(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn i64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn u32::from(height: bitcoin_units::block::BlockHeight) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockHeightInterval) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockMtp) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockMtpInterval) -> Self +pub fn u32::from(sequence: bitcoin_units::sequence::Sequence) -> Self +pub fn u32::from(t: bitcoin_units::BlockTime) -> Self +pub fn u64::from(value: bitcoin_units::Weight) -> Self +pub fn u64::mul(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn u64::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn u64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub mod bitcoin_units +pub mod bitcoin_units::absolute +pub mod bitcoin_units::absolute::error +pub mod bitcoin_units::amount +pub mod bitcoin_units::amount::error +pub mod bitcoin_units::amount::serde +pub mod bitcoin_units::amount::serde::as_btc +pub mod bitcoin_units::amount::serde::as_btc::opt +pub mod bitcoin_units::amount::serde::as_sat +pub mod bitcoin_units::amount::serde::as_sat::opt +pub mod bitcoin_units::amount::serde::as_str +pub mod bitcoin_units::amount::serde::as_str::opt +pub mod bitcoin_units::block +pub mod bitcoin_units::fee_rate +pub mod bitcoin_units::fee_rate::serde +pub mod bitcoin_units::fee_rate::serde::as_sat_per_kwu_floor +pub mod bitcoin_units::fee_rate::serde::as_sat_per_kwu_floor::opt +pub mod bitcoin_units::fee_rate::serde::as_sat_per_vb_ceil +pub mod bitcoin_units::fee_rate::serde::as_sat_per_vb_ceil::opt +pub mod bitcoin_units::fee_rate::serde::as_sat_per_vb_floor +pub mod bitcoin_units::fee_rate::serde::as_sat_per_vb_floor::opt +pub mod bitcoin_units::locktime +pub mod bitcoin_units::locktime::absolute +pub mod bitcoin_units::locktime::absolute::error +pub mod bitcoin_units::locktime::relative +pub mod bitcoin_units::locktime::relative::error +pub mod bitcoin_units::parse_int +pub mod bitcoin_units::relative +pub mod bitcoin_units::relative::error +pub mod bitcoin_units::result +pub mod bitcoin_units::sequence +pub mod bitcoin_units::time +pub mod bitcoin_units::weight +pub struct bitcoin_units::Amount(_) +pub struct bitcoin_units::BlockHeight(_) +pub struct bitcoin_units::BlockHeightInterval(_) +pub struct bitcoin_units::BlockMtp(_) +pub struct bitcoin_units::BlockMtpInterval(_) +pub struct bitcoin_units::BlockTime(_) +pub struct bitcoin_units::FeeRate(_) +pub struct bitcoin_units::Sequence(pub u32) +pub struct bitcoin_units::SignedAmount(_) +pub struct bitcoin_units::Weight(_) +pub struct bitcoin_units::absolute::Height(_) +pub struct bitcoin_units::absolute::IncompatibleHeightError +pub struct bitcoin_units::absolute::IncompatibleTimeError +pub struct bitcoin_units::absolute::LockTimeDecoder(_) +pub struct bitcoin_units::absolute::LockTimeDecoderError(_) +pub struct bitcoin_units::absolute::LockTimeEncoder(_) +pub struct bitcoin_units::absolute::MedianTimePast(_) +pub struct bitcoin_units::absolute::ParseHeightError(_) +pub struct bitcoin_units::absolute::ParseTimeError(_) +pub struct bitcoin_units::absolute::error::IncompatibleHeightError +pub struct bitcoin_units::absolute::error::IncompatibleTimeError +pub struct bitcoin_units::absolute::error::LockTimeDecoderError(_) +pub struct bitcoin_units::absolute::error::ParseHeightError(_) +pub struct bitcoin_units::absolute::error::ParseTimeError(_) +pub struct bitcoin_units::amount::Amount(_) +pub struct bitcoin_units::amount::AmountDecoder(_) +pub struct bitcoin_units::amount::AmountDecoderError(_) +pub struct bitcoin_units::amount::AmountEncoder(_) +pub struct bitcoin_units::amount::Display +pub struct bitcoin_units::amount::OutOfRangeError +pub struct bitcoin_units::amount::ParseAmountError(_) +pub struct bitcoin_units::amount::ParseError(_) +pub struct bitcoin_units::amount::SignedAmount(_) +pub struct bitcoin_units::amount::error::AmountDecoderError(_) +pub struct bitcoin_units::amount::error::BadPositionError +pub struct bitcoin_units::amount::error::InputTooLargeError +pub struct bitcoin_units::amount::error::InvalidCharacterError +pub struct bitcoin_units::amount::error::MissingDigitsError +pub struct bitcoin_units::amount::error::OutOfRangeError +pub struct bitcoin_units::amount::error::ParseAmountError(_) +pub struct bitcoin_units::amount::error::ParseError(_) +pub struct bitcoin_units::amount::error::TooPreciseError +pub struct bitcoin_units::block::BlockHeight(_) +pub struct bitcoin_units::block::BlockHeightDecoder(_) +pub struct bitcoin_units::block::BlockHeightDecoderError(_) +pub struct bitcoin_units::block::BlockHeightEncoder(_) +pub struct bitcoin_units::block::BlockHeightInterval(_) +pub struct bitcoin_units::block::BlockMtp(_) +pub struct bitcoin_units::block::BlockMtpInterval(_) +pub struct bitcoin_units::block::TooBigForRelativeHeightError(_) +pub struct bitcoin_units::fee_rate::FeeRate(_) +pub struct bitcoin_units::locktime::absolute::Height(_) +pub struct bitcoin_units::locktime::absolute::IncompatibleHeightError +pub struct bitcoin_units::locktime::absolute::IncompatibleTimeError +pub struct bitcoin_units::locktime::absolute::LockTimeDecoder(_) +pub struct bitcoin_units::locktime::absolute::LockTimeDecoderError(_) +pub struct bitcoin_units::locktime::absolute::LockTimeEncoder(_) +pub struct bitcoin_units::locktime::absolute::MedianTimePast(_) +pub struct bitcoin_units::locktime::absolute::ParseHeightError(_) +pub struct bitcoin_units::locktime::absolute::ParseTimeError(_) +pub struct bitcoin_units::locktime::absolute::error::IncompatibleHeightError +pub struct bitcoin_units::locktime::absolute::error::IncompatibleTimeError +pub struct bitcoin_units::locktime::absolute::error::LockTimeDecoderError(_) +pub struct bitcoin_units::locktime::absolute::error::ParseHeightError(_) +pub struct bitcoin_units::locktime::absolute::error::ParseTimeError(_) +pub struct bitcoin_units::locktime::relative::DisabledLockTimeError(_) +pub struct bitcoin_units::locktime::relative::InvalidHeightError +pub struct bitcoin_units::locktime::relative::InvalidTimeError +pub struct bitcoin_units::locktime::relative::NumberOf512Seconds(_) +pub struct bitcoin_units::locktime::relative::NumberOfBlocks(_) +pub struct bitcoin_units::locktime::relative::TimeOverflowError +pub struct bitcoin_units::locktime::relative::error::DisabledLockTimeError(_) +pub struct bitcoin_units::locktime::relative::error::InvalidHeightError +pub struct bitcoin_units::locktime::relative::error::InvalidTimeError +pub struct bitcoin_units::locktime::relative::error::TimeOverflowError +pub struct bitcoin_units::parse_int::PrefixedHexError(_) +pub struct bitcoin_units::parse_int::UnprefixedHexError(_) +pub struct bitcoin_units::relative::DisabledLockTimeError(_) +pub struct bitcoin_units::relative::InvalidHeightError +pub struct bitcoin_units::relative::InvalidTimeError +pub struct bitcoin_units::relative::NumberOf512Seconds(_) +pub struct bitcoin_units::relative::NumberOfBlocks(_) +pub struct bitcoin_units::relative::TimeOverflowError +pub struct bitcoin_units::relative::error::DisabledLockTimeError(_) +pub struct bitcoin_units::relative::error::InvalidHeightError +pub struct bitcoin_units::relative::error::InvalidTimeError +pub struct bitcoin_units::relative::error::TimeOverflowError +pub struct bitcoin_units::sequence::Sequence(pub u32) +pub struct bitcoin_units::sequence::SequenceDecoder(_) +pub struct bitcoin_units::sequence::SequenceDecoderError(_) +pub struct bitcoin_units::sequence::SequenceEncoder(_) +pub struct bitcoin_units::time::BlockTime(_) +pub struct bitcoin_units::time::BlockTimeDecoder(_) +pub struct bitcoin_units::time::BlockTimeDecoderError(_) +pub struct bitcoin_units::time::BlockTimeEncoder(_) +pub struct bitcoin_units::weight::Weight(_) +pub trait bitcoin_units::parse_int::Integer: core::str::traits::FromStr + core::convert::TryFrom + core::marker::Sized + bitcoin_units::parse_int::sealed::Sealed +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::FeeRate::Output = ::Output +pub type &bitcoin_units::FeeRate::Output = >>::Output +pub type &bitcoin_units::FeeRate::Output = >::Output +pub type &bitcoin_units::FeeRate::Output = >>::Output +pub type &bitcoin_units::FeeRate::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = >>::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = >>::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::block::BlockHeight::Output = >::Output +pub type &bitcoin_units::block::BlockHeight::Output = >::Output +pub type &bitcoin_units::block::BlockHeight::Output = ::Output +pub type &bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type &bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type &bitcoin_units::block::BlockMtp::Output = >::Output +pub type &bitcoin_units::block::BlockMtp::Output = >::Output +pub type &bitcoin_units::block::BlockMtp::Output = ::Output +pub type &bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type &bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type &i64::Output = >::Output +pub type &i64::Output = >>::Output +pub type &u64::Output = >::Output +pub type &u64::Output = >::Output +pub type &u64::Output = >>::Output +pub type bitcoin_units::Amount::Decoder = bitcoin_units::amount::AmountDecoder +pub type bitcoin_units::Amount::Encoder<'e> = bitcoin_units::amount::AmountEncoder +pub type bitcoin_units::Amount::Err = bitcoin_units::amount::error::ParseError +pub type bitcoin_units::Amount::Error = bitcoin_units::amount::error::OutOfRangeError +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = bitcoin_units::Amount +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::BlockTime::Decoder = bitcoin_units::time::BlockTimeDecoder +pub type bitcoin_units::BlockTime::Encoder<'e> = bitcoin_units::time::BlockTimeEncoder +pub type bitcoin_units::FeeRate::Output = ::Output +pub type bitcoin_units::FeeRate::Output = >>::Output +pub type bitcoin_units::FeeRate::Output = >::Output +pub type bitcoin_units::FeeRate::Output = >>::Output +pub type bitcoin_units::FeeRate::Output = ::Output +pub type bitcoin_units::FeeRate::Output = bitcoin_units::FeeRate +pub type bitcoin_units::FeeRate::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::SignedAmount::Err = bitcoin_units::amount::error::ParseError +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::SignedAmount +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Weight::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::Weight::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = >>::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = >>::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = bitcoin_units::Weight +pub type bitcoin_units::Weight::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Weight::Output = u64 +pub type bitcoin_units::amount::AmountDecoder::Error = bitcoin_units::amount::error::AmountDecoderError +pub type bitcoin_units::amount::AmountDecoder::Output = bitcoin_units::Amount +pub type bitcoin_units::amount::Denomination::Err = bitcoin_units::amount::error::ParseDenominationError +pub type bitcoin_units::block::BlockHeight::Decoder = bitcoin_units::block::BlockHeightDecoder +pub type bitcoin_units::block::BlockHeight::Encoder<'e> = bitcoin_units::block::BlockHeightEncoder +pub type bitcoin_units::block::BlockHeight::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeight::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeight::Output = >::Output +pub type bitcoin_units::block::BlockHeight::Output = >::Output +pub type bitcoin_units::block::BlockHeight::Output = ::Output +pub type bitcoin_units::block::BlockHeight::Output = bitcoin_units::block::BlockHeight +pub type bitcoin_units::block::BlockHeight::Output = bitcoin_units::block::BlockHeightInterval +pub type bitcoin_units::block::BlockHeightDecoder::Error = bitcoin_units::block::BlockHeightDecoderError +pub type bitcoin_units::block::BlockHeightDecoder::Output = bitcoin_units::block::BlockHeight +pub type bitcoin_units::block::BlockHeightInterval::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeightInterval::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type bitcoin_units::block::BlockHeightInterval::Output = bitcoin_units::block::BlockHeightInterval +pub type bitcoin_units::block::BlockMtp::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtp::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtp::Output = >::Output +pub type bitcoin_units::block::BlockMtp::Output = >::Output +pub type bitcoin_units::block::BlockMtp::Output = ::Output +pub type bitcoin_units::block::BlockMtp::Output = bitcoin_units::block::BlockMtp +pub type bitcoin_units::block::BlockMtp::Output = bitcoin_units::block::BlockMtpInterval +pub type bitcoin_units::block::BlockMtpInterval::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtpInterval::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type bitcoin_units::block::BlockMtpInterval::Output = bitcoin_units::block::BlockMtpInterval +pub type bitcoin_units::locktime::absolute::Height::Err = bitcoin_units::locktime::absolute::error::ParseHeightError +pub type bitcoin_units::locktime::absolute::Height::Error = bitcoin_units::locktime::absolute::error::ConversionError +pub type bitcoin_units::locktime::absolute::Height::Error = bitcoin_units::locktime::absolute::error::ParseHeightError +pub type bitcoin_units::locktime::absolute::LockTime::Decoder = bitcoin_units::locktime::absolute::LockTimeDecoder +pub type bitcoin_units::locktime::absolute::LockTime::Encoder<'e> = bitcoin_units::locktime::absolute::LockTimeEncoder +pub type bitcoin_units::locktime::absolute::LockTime::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::absolute::LockTime::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::absolute::LockTimeDecoder::Error = bitcoin_units::locktime::absolute::error::LockTimeDecoderError +pub type bitcoin_units::locktime::absolute::LockTimeDecoder::Output = bitcoin_units::locktime::absolute::LockTime +pub type bitcoin_units::locktime::absolute::MedianTimePast::Err = bitcoin_units::locktime::absolute::error::ParseTimeError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Error = bitcoin_units::locktime::absolute::error::ConversionError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Error = bitcoin_units::locktime::absolute::error::ParseTimeError +pub type bitcoin_units::locktime::relative::LockTime::Error = bitcoin_units::locktime::relative::error::DisabledLockTimeError +pub type bitcoin_units::locktime::relative::NumberOf512Seconds::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOf512Seconds::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Error = bitcoin_units::block::TooBigForRelativeHeightError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::sequence::Sequence::Decoder = bitcoin_units::sequence::SequenceDecoder +pub type bitcoin_units::sequence::Sequence::Encoder<'e> = bitcoin_units::sequence::SequenceEncoder +pub type bitcoin_units::sequence::Sequence::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::sequence::Sequence::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::sequence::SequenceDecoder::Error = bitcoin_units::sequence::SequenceDecoderError +pub type bitcoin_units::sequence::SequenceDecoder::Output = bitcoin_units::sequence::Sequence +pub type bitcoin_units::time::BlockTimeDecoder::Error = bitcoin_units::time::BlockTimeDecoderError +pub type bitcoin_units::time::BlockTimeDecoder::Output = bitcoin_units::BlockTime +pub type i64::Output = >::Output +pub type i64::Output = >>::Output +pub type i64::Output = bitcoin_units::result::NumOpResult +pub type u64::Output = >::Output +pub type u64::Output = >::Output +pub type u64::Output = >>::Output +pub type u64::Output = bitcoin_units::Weight +pub type u64::Output = bitcoin_units::result::NumOpResult diff --git a/api/units/alloc-only.txt b/api/units/alloc-only.txt new file mode 100644 index 0000000000..eeb4cec3b6 --- /dev/null +++ b/api/units/alloc-only.txt @@ -0,0 +1,2423 @@ +#[non_exhaustive] pub enum bitcoin_units::amount::Denomination +#[non_exhaustive] pub enum bitcoin_units::amount::ParseDenominationError +#[non_exhaustive] pub enum bitcoin_units::amount::error::ParseDenominationError +#[non_exhaustive] pub enum bitcoin_units::result::MathOp +#[non_exhaustive] pub struct bitcoin_units::absolute::ConversionError +#[non_exhaustive] pub struct bitcoin_units::absolute::error::ConversionError +#[non_exhaustive] pub struct bitcoin_units::amount::error::MissingDenominationError +#[non_exhaustive] pub struct bitcoin_units::amount::error::PossiblyConfusingDenominationError(_) +#[non_exhaustive] pub struct bitcoin_units::amount::error::UnknownDenominationError(_) +#[non_exhaustive] pub struct bitcoin_units::locktime::absolute::ConversionError +#[non_exhaustive] pub struct bitcoin_units::locktime::absolute::error::ConversionError +#[non_exhaustive] pub struct bitcoin_units::parse_int::ParseIntError +#[non_exhaustive] pub struct bitcoin_units::result::NumOpError(_) +impl bitcoin_units::Amount +impl bitcoin_units::BlockTime +impl bitcoin_units::FeeRate +impl bitcoin_units::SignedAmount +impl bitcoin_units::Weight +impl bitcoin_units::amount::Denomination +impl bitcoin_units::amount::Display +impl bitcoin_units::amount::error::OutOfRangeError +impl bitcoin_units::block::BlockHeight +impl bitcoin_units::block::BlockHeightInterval +impl bitcoin_units::block::BlockMtp +impl bitcoin_units::block::BlockMtpInterval +impl bitcoin_units::locktime::absolute::Height +impl bitcoin_units::locktime::absolute::LockTime +impl bitcoin_units::locktime::absolute::MedianTimePast +impl bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl bitcoin_units::locktime::relative::LockTime +impl bitcoin_units::locktime::relative::NumberOf512Seconds +impl bitcoin_units::locktime::relative::NumberOfBlocks +impl bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl bitcoin_units::parse_int::Integer for i128 +impl bitcoin_units::parse_int::Integer for i16 +impl bitcoin_units::parse_int::Integer for i32 +impl bitcoin_units::parse_int::Integer for i64 +impl bitcoin_units::parse_int::Integer for i8 +impl bitcoin_units::parse_int::Integer for u128 +impl bitcoin_units::parse_int::Integer for u16 +impl bitcoin_units::parse_int::Integer for u32 +impl bitcoin_units::parse_int::Integer for u64 +impl bitcoin_units::parse_int::Integer for u8 +impl bitcoin_units::result::MathOp +impl bitcoin_units::result::NumOpError +impl bitcoin_units::sequence::Sequence +impl core::clone::Clone for bitcoin_units::Amount +impl core::clone::Clone for bitcoin_units::BlockTime +impl core::clone::Clone for bitcoin_units::FeeRate +impl core::clone::Clone for bitcoin_units::SignedAmount +impl core::clone::Clone for bitcoin_units::Weight +impl core::clone::Clone for bitcoin_units::amount::Denomination +impl core::clone::Clone for bitcoin_units::amount::Display +impl core::clone::Clone for bitcoin_units::amount::error::BadPositionError +impl core::clone::Clone for bitcoin_units::amount::error::InputTooLargeError +impl core::clone::Clone for bitcoin_units::amount::error::InvalidCharacterError +impl core::clone::Clone for bitcoin_units::amount::error::MissingDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::MissingDigitsError +impl core::clone::Clone for bitcoin_units::amount::error::OutOfRangeError +impl core::clone::Clone for bitcoin_units::amount::error::ParseAmountError +impl core::clone::Clone for bitcoin_units::amount::error::ParseDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::ParseError +impl core::clone::Clone for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::TooPreciseError +impl core::clone::Clone for bitcoin_units::amount::error::UnknownDenominationError +impl core::clone::Clone for bitcoin_units::block::BlockHeight +impl core::clone::Clone for bitcoin_units::block::BlockHeightInterval +impl core::clone::Clone for bitcoin_units::block::BlockMtp +impl core::clone::Clone for bitcoin_units::block::BlockMtpInterval +impl core::clone::Clone for bitcoin_units::block::TooBigForRelativeHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::Height +impl core::clone::Clone for bitcoin_units::locktime::absolute::LockTime +impl core::clone::Clone for bitcoin_units::locktime::absolute::MedianTimePast +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ConversionError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::LockTime +impl core::clone::Clone for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::clone::Clone for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::clone::Clone for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::clone::Clone for bitcoin_units::parse_int::ParseIntError +impl core::clone::Clone for bitcoin_units::parse_int::PrefixedHexError +impl core::clone::Clone for bitcoin_units::parse_int::UnprefixedHexError +impl core::clone::Clone for bitcoin_units::result::MathOp +impl core::clone::Clone for bitcoin_units::result::NumOpError +impl core::clone::Clone for bitcoin_units::sequence::Sequence +impl core::cmp::Eq for bitcoin_units::Amount +impl core::cmp::Eq for bitcoin_units::BlockTime +impl core::cmp::Eq for bitcoin_units::FeeRate +impl core::cmp::Eq for bitcoin_units::SignedAmount +impl core::cmp::Eq for bitcoin_units::Weight +impl core::cmp::Eq for bitcoin_units::amount::Denomination +impl core::cmp::Eq for bitcoin_units::amount::error::BadPositionError +impl core::cmp::Eq for bitcoin_units::amount::error::InputTooLargeError +impl core::cmp::Eq for bitcoin_units::amount::error::InvalidCharacterError +impl core::cmp::Eq for bitcoin_units::amount::error::MissingDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::MissingDigitsError +impl core::cmp::Eq for bitcoin_units::amount::error::OutOfRangeError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseAmountError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseError +impl core::cmp::Eq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::TooPreciseError +impl core::cmp::Eq for bitcoin_units::amount::error::UnknownDenominationError +impl core::cmp::Eq for bitcoin_units::block::BlockHeight +impl core::cmp::Eq for bitcoin_units::block::BlockHeightInterval +impl core::cmp::Eq for bitcoin_units::block::BlockMtp +impl core::cmp::Eq for bitcoin_units::block::BlockMtpInterval +impl core::cmp::Eq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::Height +impl core::cmp::Eq for bitcoin_units::locktime::absolute::LockTime +impl core::cmp::Eq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::LockTime +impl core::cmp::Eq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::Eq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::cmp::Eq for bitcoin_units::parse_int::ParseIntError +impl core::cmp::Eq for bitcoin_units::parse_int::PrefixedHexError +impl core::cmp::Eq for bitcoin_units::parse_int::UnprefixedHexError +impl core::cmp::Eq for bitcoin_units::result::MathOp +impl core::cmp::Eq for bitcoin_units::result::NumOpError +impl core::cmp::Eq for bitcoin_units::sequence::Sequence +impl core::cmp::Ord for bitcoin_units::Amount +impl core::cmp::Ord for bitcoin_units::BlockTime +impl core::cmp::Ord for bitcoin_units::FeeRate +impl core::cmp::Ord for bitcoin_units::SignedAmount +impl core::cmp::Ord for bitcoin_units::Weight +impl core::cmp::Ord for bitcoin_units::block::BlockHeight +impl core::cmp::Ord for bitcoin_units::block::BlockHeightInterval +impl core::cmp::Ord for bitcoin_units::block::BlockMtp +impl core::cmp::Ord for bitcoin_units::block::BlockMtpInterval +impl core::cmp::Ord for bitcoin_units::locktime::absolute::Height +impl core::cmp::Ord for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::Ord for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::Ord for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::Ord for bitcoin_units::sequence::Sequence +impl core::cmp::PartialEq for bitcoin_units::Amount +impl core::cmp::PartialEq for bitcoin_units::BlockTime +impl core::cmp::PartialEq for bitcoin_units::FeeRate +impl core::cmp::PartialEq for bitcoin_units::SignedAmount +impl core::cmp::PartialEq for bitcoin_units::Weight +impl core::cmp::PartialEq for bitcoin_units::amount::Denomination +impl core::cmp::PartialEq for bitcoin_units::amount::error::BadPositionError +impl core::cmp::PartialEq for bitcoin_units::amount::error::InputTooLargeError +impl core::cmp::PartialEq for bitcoin_units::amount::error::InvalidCharacterError +impl core::cmp::PartialEq for bitcoin_units::amount::error::MissingDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::MissingDigitsError +impl core::cmp::PartialEq for bitcoin_units::amount::error::OutOfRangeError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseAmountError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseError +impl core::cmp::PartialEq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::TooPreciseError +impl core::cmp::PartialEq for bitcoin_units::amount::error::UnknownDenominationError +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeight +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeightInterval +impl core::cmp::PartialEq for bitcoin_units::block::BlockMtp +impl core::cmp::PartialEq for bitcoin_units::block::BlockMtpInterval +impl core::cmp::PartialEq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::Height +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::LockTime +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::LockTime +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::cmp::PartialEq for bitcoin_units::parse_int::ParseIntError +impl core::cmp::PartialEq for bitcoin_units::parse_int::PrefixedHexError +impl core::cmp::PartialEq for bitcoin_units::parse_int::UnprefixedHexError +impl core::cmp::PartialEq for bitcoin_units::result::MathOp +impl core::cmp::PartialEq for bitcoin_units::result::NumOpError +impl core::cmp::PartialEq for bitcoin_units::sequence::Sequence +impl core::cmp::PartialOrd for bitcoin_units::Amount +impl core::cmp::PartialOrd for bitcoin_units::BlockTime +impl core::cmp::PartialOrd for bitcoin_units::FeeRate +impl core::cmp::PartialOrd for bitcoin_units::SignedAmount +impl core::cmp::PartialOrd for bitcoin_units::Weight +impl core::cmp::PartialOrd for bitcoin_units::block::BlockHeight +impl core::cmp::PartialOrd for bitcoin_units::block::BlockHeightInterval +impl core::cmp::PartialOrd for bitcoin_units::block::BlockMtp +impl core::cmp::PartialOrd for bitcoin_units::block::BlockMtpInterval +impl core::cmp::PartialOrd for bitcoin_units::locktime::absolute::Height +impl core::cmp::PartialOrd for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::PartialOrd for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::PartialOrd for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::PartialOrd for bitcoin_units::sequence::Sequence +impl core::convert::AsRef for bitcoin_units::parse_int::ParseIntError +impl core::convert::From<&bitcoin_units::Amount> for bitcoin_units::result::NumOpResult +impl core::convert::From<&bitcoin_units::SignedAmount> for bitcoin_units::result::NumOpResult +impl core::convert::From for bitcoin_units::SignedAmount +impl core::convert::From for bitcoin_units::result::NumOpResult +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::result::NumOpResult +impl core::convert::From for u64 +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::block::BlockHeight +impl core::convert::From for bitcoin_units::locktime::absolute::LockTime +impl core::convert::From for bitcoin_units::block::BlockMtp +impl core::convert::From for bitcoin_units::locktime::absolute::LockTime +impl core::convert::From for bitcoin_units::sequence::Sequence +impl core::convert::From for bitcoin_units::block::BlockMtpInterval +impl core::convert::From for bitcoin_units::locktime::relative::LockTime +impl core::convert::From for bitcoin_units::block::BlockHeightInterval +impl core::convert::From for bitcoin_units::locktime::relative::LockTime +impl core::convert::From for bitcoin_units::parse_int::PrefixedHexError +impl core::convert::From for bitcoin_units::parse_int::UnprefixedHexError +impl core::convert::From for core::num::error::ParseIntError +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseDenominationError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::parse_int::PrefixedHexError +impl core::convert::From for bitcoin_units::parse_int::UnprefixedHexError +impl core::convert::From for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::From for bitcoin_units::BlockTime +impl core::convert::From for bitcoin_units::block::BlockHeight +impl core::convert::From for bitcoin_units::block::BlockHeightInterval +impl core::convert::From for bitcoin_units::block::BlockMtp +impl core::convert::From for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom<&str> for bitcoin_units::Weight +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom<&str> for bitcoin_units::sequence::Sequence +impl core::convert::TryFrom> for bitcoin_units::Weight +impl core::convert::TryFrom> for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom> for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom> for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom> for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom> for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom> for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom> for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom> for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom> for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom> for bitcoin_units::sequence::Sequence +impl core::convert::TryFrom for bitcoin_units::Weight +impl core::convert::TryFrom for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom for bitcoin_units::sequence::Sequence +impl core::convert::TryFrom for bitcoin_units::Amount +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom for bitcoin_units::locktime::relative::LockTime +impl core::default::Default for bitcoin_units::Amount +impl core::default::Default for bitcoin_units::SignedAmount +impl core::default::Default for bitcoin_units::block::BlockHeightInterval +impl core::default::Default for bitcoin_units::block::BlockMtpInterval +impl core::default::Default for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::default::Default for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::default::Default for bitcoin_units::sequence::Sequence +impl core::fmt::Debug for bitcoin_units::Amount +impl core::fmt::Debug for bitcoin_units::BlockTime +impl core::fmt::Debug for bitcoin_units::FeeRate +impl core::fmt::Debug for bitcoin_units::SignedAmount +impl core::fmt::Debug for bitcoin_units::Weight +impl core::fmt::Debug for bitcoin_units::amount::Denomination +impl core::fmt::Debug for bitcoin_units::amount::Display +impl core::fmt::Debug for bitcoin_units::amount::error::BadPositionError +impl core::fmt::Debug for bitcoin_units::amount::error::InputTooLargeError +impl core::fmt::Debug for bitcoin_units::amount::error::InvalidCharacterError +impl core::fmt::Debug for bitcoin_units::amount::error::MissingDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::MissingDigitsError +impl core::fmt::Debug for bitcoin_units::amount::error::OutOfRangeError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseAmountError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseError +impl core::fmt::Debug for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::TooPreciseError +impl core::fmt::Debug for bitcoin_units::amount::error::UnknownDenominationError +impl core::fmt::Debug for bitcoin_units::block::BlockHeight +impl core::fmt::Debug for bitcoin_units::block::BlockHeightInterval +impl core::fmt::Debug for bitcoin_units::block::BlockMtp +impl core::fmt::Debug for bitcoin_units::block::BlockMtpInterval +impl core::fmt::Debug for bitcoin_units::block::TooBigForRelativeHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::Height +impl core::fmt::Debug for bitcoin_units::locktime::absolute::LockTime +impl core::fmt::Debug for bitcoin_units::locktime::absolute::MedianTimePast +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ConversionError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::LockTime +impl core::fmt::Debug for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::fmt::Debug for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::fmt::Debug for bitcoin_units::parse_int::ParseIntError +impl core::fmt::Debug for bitcoin_units::parse_int::PrefixedHexError +impl core::fmt::Debug for bitcoin_units::parse_int::UnprefixedHexError +impl core::fmt::Debug for bitcoin_units::result::MathOp +impl core::fmt::Debug for bitcoin_units::result::NumOpError +impl core::fmt::Debug for bitcoin_units::sequence::Sequence +impl core::fmt::Display for bitcoin_units::Amount +impl core::fmt::Display for bitcoin_units::SignedAmount +impl core::fmt::Display for bitcoin_units::Weight +impl core::fmt::Display for bitcoin_units::amount::Denomination +impl core::fmt::Display for bitcoin_units::amount::Display +impl core::fmt::Display for bitcoin_units::amount::error::BadPositionError +impl core::fmt::Display for bitcoin_units::amount::error::InputTooLargeError +impl core::fmt::Display for bitcoin_units::amount::error::InvalidCharacterError +impl core::fmt::Display for bitcoin_units::amount::error::MissingDigitsError +impl core::fmt::Display for bitcoin_units::amount::error::OutOfRangeError +impl core::fmt::Display for bitcoin_units::amount::error::ParseAmountError +impl core::fmt::Display for bitcoin_units::amount::error::ParseDenominationError +impl core::fmt::Display for bitcoin_units::amount::error::ParseError +impl core::fmt::Display for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::fmt::Display for bitcoin_units::amount::error::TooPreciseError +impl core::fmt::Display for bitcoin_units::amount::error::UnknownDenominationError +impl core::fmt::Display for bitcoin_units::block::BlockHeight +impl core::fmt::Display for bitcoin_units::block::BlockHeightInterval +impl core::fmt::Display for bitcoin_units::block::BlockMtp +impl core::fmt::Display for bitcoin_units::block::BlockMtpInterval +impl core::fmt::Display for bitcoin_units::block::TooBigForRelativeHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::Height +impl core::fmt::Display for bitcoin_units::locktime::absolute::LockTime +impl core::fmt::Display for bitcoin_units::locktime::absolute::MedianTimePast +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ConversionError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::LockTime +impl core::fmt::Display for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::fmt::Display for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::fmt::Display for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::fmt::Display for bitcoin_units::parse_int::ParseIntError +impl core::fmt::Display for bitcoin_units::parse_int::PrefixedHexError +impl core::fmt::Display for bitcoin_units::parse_int::UnprefixedHexError +impl core::fmt::Display for bitcoin_units::result::MathOp +impl core::fmt::Display for bitcoin_units::result::NumOpError +impl core::fmt::Display for bitcoin_units::sequence::Sequence +impl core::fmt::LowerHex for bitcoin_units::sequence::Sequence +impl core::fmt::UpperHex for bitcoin_units::sequence::Sequence +impl core::hash::Hash for bitcoin_units::Amount +impl core::hash::Hash for bitcoin_units::BlockTime +impl core::hash::Hash for bitcoin_units::FeeRate +impl core::hash::Hash for bitcoin_units::SignedAmount +impl core::hash::Hash for bitcoin_units::Weight +impl core::hash::Hash for bitcoin_units::amount::Denomination +impl core::hash::Hash for bitcoin_units::block::BlockHeight +impl core::hash::Hash for bitcoin_units::block::BlockHeightInterval +impl core::hash::Hash for bitcoin_units::block::BlockMtp +impl core::hash::Hash for bitcoin_units::block::BlockMtpInterval +impl core::hash::Hash for bitcoin_units::locktime::absolute::Height +impl core::hash::Hash for bitcoin_units::locktime::absolute::LockTime +impl core::hash::Hash for bitcoin_units::locktime::absolute::MedianTimePast +impl core::hash::Hash for bitcoin_units::locktime::relative::LockTime +impl core::hash::Hash for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::hash::Hash for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::hash::Hash for bitcoin_units::sequence::Sequence +impl core::iter::traits::accum::Sum for bitcoin_units::FeeRate +impl core::iter::traits::accum::Sum for bitcoin_units::Weight +impl core::iter::traits::accum::Sum for bitcoin_units::block::BlockHeightInterval +impl core::iter::traits::accum::Sum for bitcoin_units::block::BlockMtpInterval +impl core::iter::traits::accum::Sum for bitcoin_units::result::NumOpResult +impl core::iter::traits::accum::Sum for bitcoin_units::result::NumOpResult +impl core::marker::Copy for bitcoin_units::Amount +impl core::marker::Copy for bitcoin_units::BlockTime +impl core::marker::Copy for bitcoin_units::FeeRate +impl core::marker::Copy for bitcoin_units::SignedAmount +impl core::marker::Copy for bitcoin_units::Weight +impl core::marker::Copy for bitcoin_units::amount::Denomination +impl core::marker::Copy for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Copy for bitcoin_units::block::BlockHeight +impl core::marker::Copy for bitcoin_units::block::BlockHeightInterval +impl core::marker::Copy for bitcoin_units::block::BlockMtp +impl core::marker::Copy for bitcoin_units::block::BlockMtpInterval +impl core::marker::Copy for bitcoin_units::locktime::absolute::Height +impl core::marker::Copy for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Copy for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Copy for bitcoin_units::locktime::relative::LockTime +impl core::marker::Copy for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Copy for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Copy for bitcoin_units::result::MathOp +impl core::marker::Copy for bitcoin_units::result::NumOpError +impl core::marker::Copy for bitcoin_units::sequence::Sequence +impl core::marker::Freeze for bitcoin_units::Amount +impl core::marker::Freeze for bitcoin_units::BlockTime +impl core::marker::Freeze for bitcoin_units::FeeRate +impl core::marker::Freeze for bitcoin_units::SignedAmount +impl core::marker::Freeze for bitcoin_units::Weight +impl core::marker::Freeze for bitcoin_units::amount::Denomination +impl core::marker::Freeze for bitcoin_units::amount::Display +impl core::marker::Freeze for bitcoin_units::amount::error::BadPositionError +impl core::marker::Freeze for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Freeze for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Freeze for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Freeze for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseError +impl core::marker::Freeze for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Freeze for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Freeze for bitcoin_units::block::BlockHeight +impl core::marker::Freeze for bitcoin_units::block::BlockHeightInterval +impl core::marker::Freeze for bitcoin_units::block::BlockMtp +impl core::marker::Freeze for bitcoin_units::block::BlockMtpInterval +impl core::marker::Freeze for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::Height +impl core::marker::Freeze for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Freeze for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::LockTime +impl core::marker::Freeze for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Freeze for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Freeze for bitcoin_units::parse_int::ParseIntError +impl core::marker::Freeze for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Freeze for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Freeze for bitcoin_units::result::MathOp +impl core::marker::Freeze for bitcoin_units::result::NumOpError +impl core::marker::Freeze for bitcoin_units::sequence::Sequence +impl core::marker::Send for bitcoin_units::Amount +impl core::marker::Send for bitcoin_units::BlockTime +impl core::marker::Send for bitcoin_units::FeeRate +impl core::marker::Send for bitcoin_units::SignedAmount +impl core::marker::Send for bitcoin_units::Weight +impl core::marker::Send for bitcoin_units::amount::Denomination +impl core::marker::Send for bitcoin_units::amount::Display +impl core::marker::Send for bitcoin_units::amount::error::BadPositionError +impl core::marker::Send for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Send for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Send for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Send for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Send for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Send for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Send for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Send for bitcoin_units::amount::error::ParseError +impl core::marker::Send for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Send for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Send for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Send for bitcoin_units::block::BlockHeight +impl core::marker::Send for bitcoin_units::block::BlockHeightInterval +impl core::marker::Send for bitcoin_units::block::BlockMtp +impl core::marker::Send for bitcoin_units::block::BlockMtpInterval +impl core::marker::Send for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::Height +impl core::marker::Send for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Send for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::LockTime +impl core::marker::Send for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Send for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Send for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Send for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Send for bitcoin_units::parse_int::ParseIntError +impl core::marker::Send for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Send for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Send for bitcoin_units::result::MathOp +impl core::marker::Send for bitcoin_units::result::NumOpError +impl core::marker::Send for bitcoin_units::sequence::Sequence +impl core::marker::StructuralPartialEq for bitcoin_units::Amount +impl core::marker::StructuralPartialEq for bitcoin_units::BlockTime +impl core::marker::StructuralPartialEq for bitcoin_units::FeeRate +impl core::marker::StructuralPartialEq for bitcoin_units::SignedAmount +impl core::marker::StructuralPartialEq for bitcoin_units::Weight +impl core::marker::StructuralPartialEq for bitcoin_units::amount::Denomination +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::BadPositionError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseAmountError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::TooPreciseError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeight +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeightInterval +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockMtp +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockMtpInterval +impl core::marker::StructuralPartialEq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::Height +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::LockTime +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::LockTime +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::ParseIntError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::result::MathOp +impl core::marker::StructuralPartialEq for bitcoin_units::result::NumOpError +impl core::marker::StructuralPartialEq for bitcoin_units::sequence::Sequence +impl core::marker::Sync for bitcoin_units::Amount +impl core::marker::Sync for bitcoin_units::BlockTime +impl core::marker::Sync for bitcoin_units::FeeRate +impl core::marker::Sync for bitcoin_units::SignedAmount +impl core::marker::Sync for bitcoin_units::Weight +impl core::marker::Sync for bitcoin_units::amount::Denomination +impl core::marker::Sync for bitcoin_units::amount::Display +impl core::marker::Sync for bitcoin_units::amount::error::BadPositionError +impl core::marker::Sync for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Sync for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Sync for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Sync for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Sync for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Sync for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::ParseError +impl core::marker::Sync for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Sync for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Sync for bitcoin_units::block::BlockHeight +impl core::marker::Sync for bitcoin_units::block::BlockHeightInterval +impl core::marker::Sync for bitcoin_units::block::BlockMtp +impl core::marker::Sync for bitcoin_units::block::BlockMtpInterval +impl core::marker::Sync for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::Height +impl core::marker::Sync for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Sync for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::LockTime +impl core::marker::Sync for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Sync for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Sync for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Sync for bitcoin_units::parse_int::ParseIntError +impl core::marker::Sync for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Sync for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Sync for bitcoin_units::result::MathOp +impl core::marker::Sync for bitcoin_units::result::NumOpError +impl core::marker::Sync for bitcoin_units::sequence::Sequence +impl core::marker::Unpin for bitcoin_units::Amount +impl core::marker::Unpin for bitcoin_units::BlockTime +impl core::marker::Unpin for bitcoin_units::FeeRate +impl core::marker::Unpin for bitcoin_units::SignedAmount +impl core::marker::Unpin for bitcoin_units::Weight +impl core::marker::Unpin for bitcoin_units::amount::Denomination +impl core::marker::Unpin for bitcoin_units::amount::Display +impl core::marker::Unpin for bitcoin_units::amount::error::BadPositionError +impl core::marker::Unpin for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Unpin for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Unpin for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Unpin for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseError +impl core::marker::Unpin for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Unpin for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Unpin for bitcoin_units::block::BlockHeight +impl core::marker::Unpin for bitcoin_units::block::BlockHeightInterval +impl core::marker::Unpin for bitcoin_units::block::BlockMtp +impl core::marker::Unpin for bitcoin_units::block::BlockMtpInterval +impl core::marker::Unpin for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::Height +impl core::marker::Unpin for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Unpin for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::LockTime +impl core::marker::Unpin for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Unpin for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Unpin for bitcoin_units::parse_int::ParseIntError +impl core::marker::Unpin for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Unpin for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Unpin for bitcoin_units::result::MathOp +impl core::marker::Unpin for bitcoin_units::result::NumOpError +impl core::marker::Unpin for bitcoin_units::sequence::Sequence +impl core::ops::arith::Add for bitcoin_units::Amount +impl core::ops::arith::Add for bitcoin_units::FeeRate +impl core::ops::arith::Add for bitcoin_units::SignedAmount +impl core::ops::arith::Add for bitcoin_units::Weight +impl core::ops::arith::Add for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Add<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::Add<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Add<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Add<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Add<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Add<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::SignedAmount +impl core::ops::arith::Add for &bitcoin_units::Amount +impl core::ops::arith::Add for &bitcoin_units::FeeRate +impl core::ops::arith::Add for &bitcoin_units::SignedAmount +impl core::ops::arith::Add for &bitcoin_units::Weight +impl core::ops::arith::Add for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Add for &bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockHeight +impl core::ops::arith::Add for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Add for &bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockMtp +impl core::ops::arith::Add> for &bitcoin_units::Amount +impl core::ops::arith::Add> for bitcoin_units::Amount +impl core::ops::arith::Add> for &bitcoin_units::SignedAmount +impl core::ops::arith::Add> for bitcoin_units::SignedAmount +impl core::ops::arith::AddAssign for bitcoin_units::FeeRate +impl core::ops::arith::AddAssign for bitcoin_units::Weight +impl core::ops::arith::AddAssign for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::AddAssign for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::AddAssign<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::AddAssign<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::AddAssign<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::SignedAmount +impl core::ops::arith::Div for bitcoin_units::Weight +impl core::ops::arith::Div<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::FeeRate> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::FeeRate> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::Amount +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::FeeRate +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::Weight +impl core::ops::arith::Div<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&u64> for bitcoin_units::Amount +impl core::ops::arith::Div<&u64> for bitcoin_units::Weight +impl core::ops::arith::Div<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::SignedAmount +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::SignedAmount +impl core::ops::arith::Div> for bitcoin_units::SignedAmount +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::FeeRate +impl core::ops::arith::Div> for &bitcoin_units::Weight +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::FeeRate +impl core::ops::arith::Div> for bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::SignedAmount +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::SignedAmount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::Weight +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign for bitcoin_units::Weight +impl core::ops::arith::DivAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::Amount> for u64 +impl core::ops::arith::Mul<&bitcoin_units::FeeRate> for bitcoin_units::Weight +impl core::ops::arith::Mul<&bitcoin_units::FeeRate> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::SignedAmount> for i64 +impl core::ops::arith::Mul<&bitcoin_units::Weight> for bitcoin_units::FeeRate +impl core::ops::arith::Mul<&bitcoin_units::Weight> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::Weight> for u64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for u64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::Weight +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for i64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::FeeRate +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Mul<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&u64> for bitcoin_units::Amount +impl core::ops::arith::Mul<&u64> for bitcoin_units::Weight +impl core::ops::arith::Mul<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &u64 +impl core::ops::arith::Mul for u64 +impl core::ops::arith::Mul for &bitcoin_units::Weight +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::Weight +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &i64 +impl core::ops::arith::Mul for i64 +impl core::ops::arith::Mul for &bitcoin_units::FeeRate +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &u64 +impl core::ops::arith::Mul for bitcoin_units::FeeRate +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for u64 +impl core::ops::arith::Mul> for &u64 +impl core::ops::arith::Mul> for u64 +impl core::ops::arith::Mul> for &bitcoin_units::Weight +impl core::ops::arith::Mul> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for bitcoin_units::Weight +impl core::ops::arith::Mul> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for &i64 +impl core::ops::arith::Mul> for i64 +impl core::ops::arith::Mul> for &bitcoin_units::FeeRate +impl core::ops::arith::Mul> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for bitcoin_units::FeeRate +impl core::ops::arith::Mul> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &bitcoin_units::SignedAmount +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::SignedAmount +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &bitcoin_units::Amount +impl core::ops::arith::Mul for &bitcoin_units::Weight +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::Amount +impl core::ops::arith::Mul for bitcoin_units::Weight +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign for bitcoin_units::Weight +impl core::ops::arith::MulAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Neg for bitcoin_units::SignedAmount +impl core::ops::arith::Rem for bitcoin_units::Weight +impl core::ops::arith::Rem<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Rem<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Rem<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem<&u64> for bitcoin_units::Amount +impl core::ops::arith::Rem<&u64> for bitcoin_units::Weight +impl core::ops::arith::Rem<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for &bitcoin_units::Weight +impl core::ops::arith::Rem for &bitcoin_units::SignedAmount +impl core::ops::arith::Rem for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for bitcoin_units::SignedAmount +impl core::ops::arith::Rem for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for &bitcoin_units::Amount +impl core::ops::arith::Rem for &bitcoin_units::Weight +impl core::ops::arith::Rem for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for bitcoin_units::Amount +impl core::ops::arith::Rem for bitcoin_units::Weight +impl core::ops::arith::Rem for bitcoin_units::result::NumOpResult +impl core::ops::arith::RemAssign for bitcoin_units::Weight +impl core::ops::arith::Sub for bitcoin_units::Amount +impl core::ops::arith::Sub for bitcoin_units::FeeRate +impl core::ops::arith::Sub for bitcoin_units::SignedAmount +impl core::ops::arith::Sub for bitcoin_units::Weight +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Sub<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::Sub<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Sub<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeight> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtp> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::SignedAmount +impl core::ops::arith::Sub for &bitcoin_units::Amount +impl core::ops::arith::Sub for &bitcoin_units::FeeRate +impl core::ops::arith::Sub for &bitcoin_units::SignedAmount +impl core::ops::arith::Sub for &bitcoin_units::Weight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub> for &bitcoin_units::Amount +impl core::ops::arith::Sub> for bitcoin_units::Amount +impl core::ops::arith::Sub> for &bitcoin_units::SignedAmount +impl core::ops::arith::Sub> for bitcoin_units::SignedAmount +impl core::ops::arith::SubAssign for bitcoin_units::FeeRate +impl core::ops::arith::SubAssign for bitcoin_units::Weight +impl core::ops::arith::SubAssign for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::SubAssign for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::SubAssign<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::SubAssign<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::SubAssign<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::Amount +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::BlockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::FeeRate +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::SignedAmount +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::Weight +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::Denomination +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::Display +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::BadPositionError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::InputTooLargeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::InvalidCharacterError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::MissingDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::MissingDigitsError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::OutOfRangeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseAmountError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::TooPreciseError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::UnknownDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeight +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeightInterval +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockMtp +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockMtpInterval +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::TooBigForRelativeHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::Height +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::LockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::MedianTimePast +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ConversionError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::LockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::ParseIntError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::PrefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::UnprefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::MathOp +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::NumOpError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::sequence::Sequence +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::Amount +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::BlockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::FeeRate +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::SignedAmount +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::Weight +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Denomination +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Display +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::BadPositionError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::InputTooLargeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::InvalidCharacterError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::MissingDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::MissingDigitsError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::OutOfRangeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseAmountError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::TooPreciseError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::UnknownDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeight +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeightInterval +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockMtp +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockMtpInterval +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::TooBigForRelativeHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::Height +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::LockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::MedianTimePast +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ConversionError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::LockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::ParseIntError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::PrefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::UnprefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::MathOp +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::NumOpError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::sequence::Sequence +impl core::str::traits::FromStr for bitcoin_units::Amount +impl core::str::traits::FromStr for bitcoin_units::SignedAmount +impl core::str::traits::FromStr for bitcoin_units::Weight +impl core::str::traits::FromStr for bitcoin_units::amount::Denomination +impl core::str::traits::FromStr for bitcoin_units::block::BlockHeight +impl core::str::traits::FromStr for bitcoin_units::block::BlockHeightInterval +impl core::str::traits::FromStr for bitcoin_units::block::BlockMtp +impl core::str::traits::FromStr for bitcoin_units::block::BlockMtpInterval +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::Height +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::LockTime +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::MedianTimePast +impl core::str::traits::FromStr for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::str::traits::FromStr for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::str::traits::FromStr for bitcoin_units::sequence::Sequence +impl<'a, T> core::ops::arith::Add<&'a T> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl<'a, T> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl<'a, T> core::ops::arith::Sub<&'a T> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl<'a, T> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::Weight> for bitcoin_units::Weight +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Add<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::FeeRate> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Add<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeightInterval +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtpInterval +impl<'a> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::FeeRate> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::FeeRate> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Amount> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::FeeRate> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::FeeRate> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::SignedAmount> for &i64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &i64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Mul<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Rem<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Rem<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Rem<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::FeeRate> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeight> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeightInterval +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtp> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtpInterval +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::SignedAmount +impl core::clone::Clone for bitcoin_units::result::NumOpResult +impl core::cmp::Eq for bitcoin_units::result::NumOpResult +impl core::cmp::PartialEq for bitcoin_units::result::NumOpResult +impl bitcoin_units::result::NumOpResult +impl core::fmt::Debug for bitcoin_units::result::NumOpResult +impl core::marker::Copy for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl bitcoin_units::result::NumOpResult +impl core::marker::Freeze for bitcoin_units::result::NumOpResult where T: core::marker::Freeze +impl core::marker::Send for bitcoin_units::result::NumOpResult where T: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_units::result::NumOpResult +impl core::marker::Sync for bitcoin_units::result::NumOpResult where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_units::result::NumOpResult where T: core::marker::Unpin +impl core::ops::arith::Add for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Add<&T> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Add for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Sub for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub<&T> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::NumOpResult where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::NumOpResult where T: core::panic::unwind_safe::UnwindSafe +pub bitcoin_units::NumOpResult::Error(bitcoin_units::result::NumOpError) +pub bitcoin_units::NumOpResult::Valid(T) +pub bitcoin_units::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) +pub bitcoin_units::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::MedianTimePast) +pub bitcoin_units::amount::Denomination::Bit +pub bitcoin_units::amount::Denomination::Bitcoin +pub bitcoin_units::amount::Denomination::CentiBitcoin +pub bitcoin_units::amount::Denomination::MicroBitcoin +pub bitcoin_units::amount::Denomination::MilliBitcoin +pub bitcoin_units::amount::Denomination::Satoshi +pub bitcoin_units::amount::ParseDenominationError::PossiblyConfusing(bitcoin_units::amount::error::PossiblyConfusingDenominationError) +pub bitcoin_units::amount::ParseDenominationError::Unknown(bitcoin_units::amount::error::UnknownDenominationError) +pub bitcoin_units::amount::error::ParseDenominationError::PossiblyConfusing(bitcoin_units::amount::error::PossiblyConfusingDenominationError) +pub bitcoin_units::amount::error::ParseDenominationError::Unknown(bitcoin_units::amount::error::UnknownDenominationError) +pub bitcoin_units::locktime::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) +pub bitcoin_units::locktime::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::MedianTimePast) +pub bitcoin_units::locktime::relative::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::LockTime::Blocks(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::LockTime::Time(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::LockTime::Blocks(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::LockTime::Time(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::error::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::error::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::error::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::error::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::error::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::error::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::result::MathOp::Add +pub bitcoin_units::result::MathOp::Div +pub bitcoin_units::result::MathOp::Mul +pub bitcoin_units::result::MathOp::Neg +pub bitcoin_units::result::MathOp::Rem +pub bitcoin_units::result::MathOp::Sub +pub bitcoin_units::result::NumOpResult::Error(bitcoin_units::result::NumOpError) +pub bitcoin_units::result::NumOpResult::Valid(T) +pub const bitcoin_units::Amount::FIFTY_BTC: Self +pub const bitcoin_units::Amount::MAX: Self +pub const bitcoin_units::Amount::MAX_MONEY: Self +pub const bitcoin_units::Amount::MIN: Self +pub const bitcoin_units::Amount::ONE_BTC: Self +pub const bitcoin_units::Amount::ONE_SAT: Self +pub const bitcoin_units::Amount::SIZE: usize +pub const bitcoin_units::Amount::ZERO: Self +pub const bitcoin_units::FeeRate::BROADCAST_MIN: Self +pub const bitcoin_units::FeeRate::DUST: Self +pub const bitcoin_units::FeeRate::MAX: Self +pub const bitcoin_units::FeeRate::MIN: Self +pub const bitcoin_units::FeeRate::ZERO: Self +pub const bitcoin_units::SignedAmount::FIFTY_BTC: Self +pub const bitcoin_units::SignedAmount::MAX: Self +pub const bitcoin_units::SignedAmount::MAX_MONEY: Self +pub const bitcoin_units::SignedAmount::MIN: Self +pub const bitcoin_units::SignedAmount::ONE_BTC: Self +pub const bitcoin_units::SignedAmount::ONE_SAT: Self +pub const bitcoin_units::SignedAmount::ZERO: Self +pub const bitcoin_units::Weight::MAX: Self +pub const bitcoin_units::Weight::MAX_BLOCK: Self +pub const bitcoin_units::Weight::MIN: Self +pub const bitcoin_units::Weight::MIN_TRANSACTION: Self +pub const bitcoin_units::Weight::WITNESS_SCALE_FACTOR: u64 +pub const bitcoin_units::Weight::ZERO: Self +pub const bitcoin_units::absolute::LOCK_TIME_THRESHOLD: u32 +pub const bitcoin_units::amount::Denomination::BTC: Self +pub const bitcoin_units::amount::Denomination::SAT: Self +pub const bitcoin_units::block::BlockHeight::MAX: Self +pub const bitcoin_units::block::BlockHeight::MIN: Self +pub const bitcoin_units::block::BlockHeight::ZERO: Self +pub const bitcoin_units::block::BlockHeightInterval::MAX: Self +pub const bitcoin_units::block::BlockHeightInterval::MIN: Self +pub const bitcoin_units::block::BlockHeightInterval::ZERO: Self +pub const bitcoin_units::block::BlockMtp::MAX: Self +pub const bitcoin_units::block::BlockMtp::MIN: Self +pub const bitcoin_units::block::BlockMtp::ZERO: Self +pub const bitcoin_units::block::BlockMtpInterval::MAX: Self +pub const bitcoin_units::block::BlockMtpInterval::MIN: Self +pub const bitcoin_units::block::BlockMtpInterval::ZERO: Self +pub const bitcoin_units::locktime::absolute::Height::MAX: Self +pub const bitcoin_units::locktime::absolute::Height::MIN: Self +pub const bitcoin_units::locktime::absolute::Height::ZERO: Self +pub const bitcoin_units::locktime::absolute::LOCK_TIME_THRESHOLD: u32 +pub const bitcoin_units::locktime::absolute::LockTime::SIZE: usize +pub const bitcoin_units::locktime::absolute::LockTime::ZERO: Self +pub const bitcoin_units::locktime::absolute::MedianTimePast::MAX: Self +pub const bitcoin_units::locktime::absolute::MedianTimePast::MIN: Self +pub const bitcoin_units::locktime::relative::LockTime::SIZE: usize +pub const bitcoin_units::locktime::relative::LockTime::ZERO: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::MAX: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::MIN: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::ZERO: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::MAX: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::MIN: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::ZERO: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_LOCKTIME_AND_RBF: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_LOCKTIME_NO_RBF: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_RBF_NO_LOCKTIME: Self +pub const bitcoin_units::sequence::Sequence::FINAL: Self +pub const bitcoin_units::sequence::Sequence::MAX: Self +pub const bitcoin_units::sequence::Sequence::SIZE: usize +pub const bitcoin_units::sequence::Sequence::ZERO: Self +pub const bitcoin_units::weight::WITNESS_SCALE_FACTOR: usize +pub const fn bitcoin_units::Amount::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_rem(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Amount::div_by_fee_rate_ceil(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_fee_rate_floor(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_weight_ceil(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_weight_floor(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::from_btc_u16(whole_bitcoin: u16) -> Self +pub const fn bitcoin_units::Amount::from_sat(satoshi: u64) -> core::result::Result +pub const fn bitcoin_units::Amount::from_sat_u32(satoshi: u32) -> Self +pub const fn bitcoin_units::Amount::to_sat(self) -> u64 +pub const fn bitcoin_units::BlockTime::from_u32(t: u32) -> Self +pub const fn bitcoin_units::BlockTime::to_u32(self) -> u32 +pub const fn bitcoin_units::FeeRate::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::FeeRate::from_per_kvb(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_per_kwu(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_per_vb(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_sat_per_kvb(sat_kvb: u32) -> Self +pub const fn bitcoin_units::FeeRate::from_sat_per_kwu(sat_kwu: u32) -> Self +pub const fn bitcoin_units::FeeRate::from_sat_per_vb(sat_vb: u32) -> Self +pub const fn bitcoin_units::FeeRate::mul_by_weight(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::to_fee(self, weight: bitcoin_units::Weight) -> bitcoin_units::Amount +pub const fn bitcoin_units::FeeRate::to_sat_per_kvb_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kvb_floor(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kwu_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kwu_floor(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_vb_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_vb_floor(self) -> u64 +pub const fn bitcoin_units::SignedAmount::abs(self) -> Self +pub const fn bitcoin_units::SignedAmount::checked_abs(self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_div(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_mul(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_rem(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::from_btc_i16(whole_bitcoin: i16) -> Self +pub const fn bitcoin_units::SignedAmount::from_sat(satoshi: i64) -> core::result::Result +pub const fn bitcoin_units::SignedAmount::from_sat_i32(satoshi: i32) -> Self +pub const fn bitcoin_units::SignedAmount::to_sat(self) -> i64 +pub const fn bitcoin_units::Weight::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Weight::from_kwu(wu: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::from_non_witness_data_size(non_witness_size: u64) -> Self +pub const fn bitcoin_units::Weight::from_vb(vb: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::from_vb_unchecked(vb: u64) -> Self +pub const fn bitcoin_units::Weight::from_vb_unwrap(vb: u64) -> Self +pub const fn bitcoin_units::Weight::from_witness_data_size(witness_size: u64) -> Self +pub const fn bitcoin_units::Weight::from_wu(wu: u64) -> Self +pub const fn bitcoin_units::Weight::mul_by_fee_rate(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Weight::to_kwu_ceil(self) -> u64 +pub const fn bitcoin_units::Weight::to_kwu_floor(self) -> u64 +pub const fn bitcoin_units::Weight::to_vbytes_ceil(self) -> u64 +pub const fn bitcoin_units::Weight::to_vbytes_floor(self) -> u64 +pub const fn bitcoin_units::Weight::to_wu(self) -> u64 +pub const fn bitcoin_units::absolute::is_block_height(n: u32) -> bool +pub const fn bitcoin_units::absolute::is_block_time(n: u32) -> bool +pub const fn bitcoin_units::block::BlockHeight::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockHeight::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockHeightInterval::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockHeightInterval::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockMtp::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockMtp::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockMtpInterval::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockMtpInterval::to_relative_mtp_interval_ceil(self) -> core::result::Result +pub const fn bitcoin_units::block::BlockMtpInterval::to_relative_mtp_interval_floor(self) -> core::result::Result +pub const fn bitcoin_units::block::BlockMtpInterval::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::Height::from_u32(n: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::absolute::Height::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::LockTime::is_block_height(self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTime::is_block_time(self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTime::is_same_unit(self, other: Self) -> bool +pub const fn bitcoin_units::locktime::absolute::MedianTimePast::from_u32(n: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::absolute::MedianTimePast::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::is_block_height(n: u32) -> bool +pub const fn bitcoin_units::locktime::absolute::is_block_time(n: u32) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::from_512_second_intervals(intervals: u16) -> Self +pub const fn bitcoin_units::locktime::relative::LockTime::from_height(n: u16) -> Self +pub const fn bitcoin_units::locktime::relative::LockTime::from_seconds_ceil(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::LockTime::from_seconds_floor(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::LockTime::is_block_height(self) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::is_block_time(self) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::is_same_unit(self, other: Self) -> bool +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_512_second_intervals(intervals: u16) -> Self +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_seconds_ceil(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_seconds_floor(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_512_second_intervals(self) -> u16 +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_seconds(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::from_height(blocks: u16) -> Self +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::to_height(self) -> u16 +pub const fn bitcoin_units::sequence::Sequence::to_consensus_u32(self) -> u32 +pub enum bitcoin_units::NumOpResult +pub enum bitcoin_units::absolute::LockTime +pub enum bitcoin_units::locktime::absolute::LockTime +pub enum bitcoin_units::locktime::relative::IsSatisfiedByError +pub enum bitcoin_units::locktime::relative::IsSatisfiedByHeightError +pub enum bitcoin_units::locktime::relative::IsSatisfiedByTimeError +pub enum bitcoin_units::locktime::relative::LockTime +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByError +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +pub enum bitcoin_units::relative::IsSatisfiedByError +pub enum bitcoin_units::relative::IsSatisfiedByHeightError +pub enum bitcoin_units::relative::IsSatisfiedByTimeError +pub enum bitcoin_units::relative::LockTime +pub enum bitcoin_units::relative::error::IsSatisfiedByError +pub enum bitcoin_units::relative::error::IsSatisfiedByHeightError +pub enum bitcoin_units::relative::error::IsSatisfiedByTimeError +pub enum bitcoin_units::result::NumOpResult +pub fn &bitcoin_units::Amount::add(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::add(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::add(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::FeeRate::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::sub(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::sub(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &core::num::nonzero::NonZeroI64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: core::num::nonzero::NonZeroI64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::mul(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::mul(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::rem(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::rem(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::add(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::add(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::sub(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::sub(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtp) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtp) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: &T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: &T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &i64::mul(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &i64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &i64::mul(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &i64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::clone(&self) -> bitcoin_units::Amount +pub fn bitcoin_units::Amount::cmp(&self, other: &bitcoin_units::Amount) -> core::cmp::Ordering +pub fn bitcoin_units::Amount::default() -> Self +pub fn bitcoin_units::Amount::display_dynamic(self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::Amount::display_in(self, denomination: bitcoin_units::amount::Denomination) -> bitcoin_units::amount::Display +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Amount::eq(&self, other: &bitcoin_units::Amount) -> bool +pub fn bitcoin_units::Amount::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::Amount::from_btc(btc: f64) -> core::result::Result +pub fn bitcoin_units::Amount::from_float_in(value: f64, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::Amount::from_int_btc>(whole_bitcoin: T) -> Self +pub fn bitcoin_units::Amount::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::Amount::from_str_in(s: &str, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::Amount::from_str_with_denomination(s: &str) -> core::result::Result +pub fn bitcoin_units::Amount::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::Amount::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Amount::partial_cmp(&self, other: &bitcoin_units::Amount) -> core::option::Option +pub fn bitcoin_units::Amount::rem(self, modulus: u64) -> Self::Output +pub fn bitcoin_units::Amount::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::signed_sub(self, rhs: Self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::to_btc(self) -> f64 +pub fn bitcoin_units::Amount::to_float_in(self, denom: bitcoin_units::amount::Denomination) -> f64 +pub fn bitcoin_units::Amount::to_signed(self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::Amount::to_string_in(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::Amount::to_string_with_denomination(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::Amount::try_from(value: bitcoin_units::SignedAmount) -> core::result::Result +pub fn bitcoin_units::BlockTime::clone(&self) -> bitcoin_units::BlockTime +pub fn bitcoin_units::BlockTime::cmp(&self, other: &bitcoin_units::BlockTime) -> core::cmp::Ordering +pub fn bitcoin_units::BlockTime::eq(&self, other: &bitcoin_units::BlockTime) -> bool +pub fn bitcoin_units::BlockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::BlockTime::from(t: u32) -> Self +pub fn bitcoin_units::BlockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::BlockTime::partial_cmp(&self, other: &bitcoin_units::BlockTime) -> core::option::Option +pub fn bitcoin_units::FeeRate::add(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::add(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::add_assign(&mut self, rhs: &bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::add_assign(&mut self, rhs: bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::clone(&self) -> bitcoin_units::FeeRate +pub fn bitcoin_units::FeeRate::cmp(&self, other: &bitcoin_units::FeeRate) -> core::cmp::Ordering +pub fn bitcoin_units::FeeRate::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::FeeRate::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::FeeRate::eq(&self, other: &bitcoin_units::FeeRate) -> bool +pub fn bitcoin_units::FeeRate::fee_vb(self, vb: u64) -> core::option::Option +pub fn bitcoin_units::FeeRate::fee_wu(self, weight: bitcoin_units::Weight) -> core::option::Option +pub fn bitcoin_units::FeeRate::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::FeeRate::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::FeeRate::partial_cmp(&self, other: &bitcoin_units::FeeRate) -> core::option::Option +pub fn bitcoin_units::FeeRate::sub(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::sub(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::sub_assign(&mut self, rhs: &bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::sub_assign(&mut self, rhs: bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::FeeRate::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::clone(&self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::SignedAmount::cmp(&self, other: &bitcoin_units::SignedAmount) -> core::cmp::Ordering +pub fn bitcoin_units::SignedAmount::default() -> Self +pub fn bitcoin_units::SignedAmount::display_dynamic(self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::SignedAmount::display_in(self, denomination: bitcoin_units::amount::Denomination) -> bitcoin_units::amount::Display +pub fn bitcoin_units::SignedAmount::div(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: &core::num::nonzero::NonZeroI64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: core::num::nonzero::NonZeroI64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::eq(&self, other: &bitcoin_units::SignedAmount) -> bool +pub fn bitcoin_units::SignedAmount::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::SignedAmount::from(value: bitcoin_units::Amount) -> Self +pub fn bitcoin_units::SignedAmount::from_btc(btc: f64) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_float_in(value: f64, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_int_btc>(whole_bitcoin: T) -> Self +pub fn bitcoin_units::SignedAmount::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_str_in(s: &str, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_str_with_denomination(s: &str) -> core::result::Result +pub fn bitcoin_units::SignedAmount::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::SignedAmount::is_negative(self) -> bool +pub fn bitcoin_units::SignedAmount::is_positive(self) -> bool +pub fn bitcoin_units::SignedAmount::mul(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::mul(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::neg(self) -> Self::Output +pub fn bitcoin_units::SignedAmount::partial_cmp(&self, other: &bitcoin_units::SignedAmount) -> core::option::Option +pub fn bitcoin_units::SignedAmount::positive_sub(self, rhs: Self) -> core::option::Option +pub fn bitcoin_units::SignedAmount::rem(self, modulus: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::rem(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::signum(self) -> i64 +pub fn bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::to_btc(self) -> f64 +pub fn bitcoin_units::SignedAmount::to_float_in(self, denom: bitcoin_units::amount::Denomination) -> f64 +pub fn bitcoin_units::SignedAmount::to_string_in(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::SignedAmount::to_string_with_denomination(self, denom: bitcoin_units::amount::Denomination) -> alloc::string::String +pub fn bitcoin_units::SignedAmount::to_unsigned(self) -> core::result::Result +pub fn bitcoin_units::SignedAmount::unsigned_abs(self) -> bitcoin_units::Amount +pub fn bitcoin_units::Weight::add(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::add(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::add_assign(&mut self, rhs: &bitcoin_units::Weight) +pub fn bitcoin_units::Weight::add_assign(&mut self, rhs: bitcoin_units::Weight) +pub fn bitcoin_units::Weight::clone(&self) -> bitcoin_units::Weight +pub fn bitcoin_units::Weight::cmp(&self, other: &bitcoin_units::Weight) -> core::cmp::Ordering +pub fn bitcoin_units::Weight::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::div_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::eq(&self, other: &bitcoin_units::Weight) -> bool +pub fn bitcoin_units::Weight::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::Weight::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::Weight::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::mul_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::partial_cmp(&self, other: &bitcoin_units::Weight) -> core::option::Option +pub fn bitcoin_units::Weight::rem(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::rem_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::sub(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::sub(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::sub_assign(&mut self, rhs: &bitcoin_units::Weight) +pub fn bitcoin_units::Weight::sub_assign(&mut self, rhs: bitcoin_units::Weight) +pub fn bitcoin_units::Weight::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::Weight::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::Weight::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::Weight::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::Weight::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::amount::Denomination::clone(&self) -> bitcoin_units::amount::Denomination +pub fn bitcoin_units::amount::Denomination::eq(&self, other: &bitcoin_units::amount::Denomination) -> bool +pub fn bitcoin_units::amount::Denomination::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::Denomination::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::amount::Denomination::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::amount::Display::clone(&self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::amount::Display::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::Display::show_denomination(self) -> Self +pub fn bitcoin_units::amount::error::BadPositionError::clone(&self) -> bitcoin_units::amount::error::BadPositionError +pub fn bitcoin_units::amount::error::BadPositionError::eq(&self, other: &bitcoin_units::amount::error::BadPositionError) -> bool +pub fn bitcoin_units::amount::error::BadPositionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::InputTooLargeError::clone(&self) -> bitcoin_units::amount::error::InputTooLargeError +pub fn bitcoin_units::amount::error::InputTooLargeError::eq(&self, other: &bitcoin_units::amount::error::InputTooLargeError) -> bool +pub fn bitcoin_units::amount::error::InputTooLargeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::InvalidCharacterError::clone(&self) -> bitcoin_units::amount::error::InvalidCharacterError +pub fn bitcoin_units::amount::error::InvalidCharacterError::eq(&self, other: &bitcoin_units::amount::error::InvalidCharacterError) -> bool +pub fn bitcoin_units::amount::error::InvalidCharacterError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::MissingDenominationError::clone(&self) -> bitcoin_units::amount::error::MissingDenominationError +pub fn bitcoin_units::amount::error::MissingDenominationError::eq(&self, other: &bitcoin_units::amount::error::MissingDenominationError) -> bool +pub fn bitcoin_units::amount::error::MissingDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::MissingDigitsError::clone(&self) -> bitcoin_units::amount::error::MissingDigitsError +pub fn bitcoin_units::amount::error::MissingDigitsError::eq(&self, other: &bitcoin_units::amount::error::MissingDigitsError) -> bool +pub fn bitcoin_units::amount::error::MissingDigitsError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::OutOfRangeError::clone(&self) -> bitcoin_units::amount::error::OutOfRangeError +pub fn bitcoin_units::amount::error::OutOfRangeError::eq(&self, other: &bitcoin_units::amount::error::OutOfRangeError) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::OutOfRangeError::is_above_max(self) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::is_below_min(self) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::valid_range(self) -> (i64, u64) +pub fn bitcoin_units::amount::error::ParseAmountError::clone(&self) -> bitcoin_units::amount::error::ParseAmountError +pub fn bitcoin_units::amount::error::ParseAmountError::eq(&self, other: &bitcoin_units::amount::error::ParseAmountError) -> bool +pub fn bitcoin_units::amount::error::ParseAmountError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseAmountError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::BadPositionError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::InputTooLargeError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::InvalidCharacterError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::MissingDigitsError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::OutOfRangeError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::TooPreciseError) -> Self +pub fn bitcoin_units::amount::error::ParseDenominationError::clone(&self) -> bitcoin_units::amount::error::ParseDenominationError +pub fn bitcoin_units::amount::error::ParseDenominationError::eq(&self, other: &bitcoin_units::amount::error::ParseDenominationError) -> bool +pub fn bitcoin_units::amount::error::ParseDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseDenominationError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseError::clone(&self) -> bitcoin_units::amount::error::ParseError +pub fn bitcoin_units::amount::error::ParseError::eq(&self, other: &bitcoin_units::amount::error::ParseError) -> bool +pub fn bitcoin_units::amount::error::ParseError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::BadPositionError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::InputTooLargeError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::InvalidCharacterError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::MissingDigitsError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::OutOfRangeError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::ParseAmountError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::ParseDenominationError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::TooPreciseError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::clone(&self) -> bitcoin_units::amount::error::PossiblyConfusingDenominationError +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::eq(&self, other: &bitcoin_units::amount::error::PossiblyConfusingDenominationError) -> bool +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::TooPreciseError::clone(&self) -> bitcoin_units::amount::error::TooPreciseError +pub fn bitcoin_units::amount::error::TooPreciseError::eq(&self, other: &bitcoin_units::amount::error::TooPreciseError) -> bool +pub fn bitcoin_units::amount::error::TooPreciseError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::UnknownDenominationError::clone(&self) -> bitcoin_units::amount::error::UnknownDenominationError +pub fn bitcoin_units::amount::error::UnknownDenominationError::eq(&self, other: &bitcoin_units::amount::error::UnknownDenominationError) -> bool +pub fn bitcoin_units::amount::error::UnknownDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeight::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::checked_add(self, other: bitcoin_units::block::BlockHeightInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::clone(&self) -> bitcoin_units::block::BlockHeight +pub fn bitcoin_units::block::BlockHeight::cmp(&self, other: &bitcoin_units::block::BlockHeight) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockHeight::eq(&self, other: &bitcoin_units::block::BlockHeight) -> bool +pub fn bitcoin_units::block::BlockHeight::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeight::from(h: bitcoin_units::locktime::absolute::Height) -> Self +pub fn bitcoin_units::block::BlockHeight::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockHeight::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockHeight::partial_cmp(&self, other: &bitcoin_units::block::BlockHeight) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeight) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeight) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::add_assign(&mut self, rhs: &bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::add_assign(&mut self, rhs: bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::checked_add(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::clone(&self) -> bitcoin_units::block::BlockHeightInterval +pub fn bitcoin_units::block::BlockHeightInterval::cmp(&self, other: &bitcoin_units::block::BlockHeightInterval) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockHeightInterval::default() -> bitcoin_units::block::BlockHeightInterval +pub fn bitcoin_units::block::BlockHeightInterval::eq(&self, other: &bitcoin_units::block::BlockHeightInterval) -> bool +pub fn bitcoin_units::block::BlockHeightInterval::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeightInterval::from(h: bitcoin_units::locktime::relative::NumberOfBlocks) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockHeightInterval::partial_cmp(&self, other: &bitcoin_units::block::BlockHeightInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::sub_assign(&mut self, rhs: &bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::sub_assign(&mut self, rhs: bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::sum>(iter: I) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::checked_add(self, other: bitcoin_units::block::BlockMtpInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::clone(&self) -> bitcoin_units::block::BlockMtp +pub fn bitcoin_units::block::BlockMtp::cmp(&self, other: &bitcoin_units::block::BlockMtp) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockMtp::eq(&self, other: &bitcoin_units::block::BlockMtp) -> bool +pub fn bitcoin_units::block::BlockMtp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockMtp::from(h: bitcoin_units::locktime::absolute::MedianTimePast) -> Self +pub fn bitcoin_units::block::BlockMtp::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockMtp::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockMtp::new(timestamps: [bitcoin_units::BlockTime; 11]) -> Self +pub fn bitcoin_units::block::BlockMtp::partial_cmp(&self, other: &bitcoin_units::block::BlockMtp) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtp) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtp) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::add_assign(&mut self, rhs: &bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::add_assign(&mut self, rhs: bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::checked_add(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::clone(&self) -> bitcoin_units::block::BlockMtpInterval +pub fn bitcoin_units::block::BlockMtpInterval::cmp(&self, other: &bitcoin_units::block::BlockMtpInterval) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockMtpInterval::default() -> bitcoin_units::block::BlockMtpInterval +pub fn bitcoin_units::block::BlockMtpInterval::eq(&self, other: &bitcoin_units::block::BlockMtpInterval) -> bool +pub fn bitcoin_units::block::BlockMtpInterval::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockMtpInterval::from(h: bitcoin_units::locktime::relative::NumberOf512Seconds) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockMtpInterval::partial_cmp(&self, other: &bitcoin_units::block::BlockMtpInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::sub_assign(&mut self, rhs: &bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::sub_assign(&mut self, rhs: bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::sum>(iter: I) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::block::TooBigForRelativeHeightError::clone(&self) -> bitcoin_units::block::TooBigForRelativeHeightError +pub fn bitcoin_units::block::TooBigForRelativeHeightError::eq(&self, other: &bitcoin_units::block::TooBigForRelativeHeightError) -> bool +pub fn bitcoin_units::block::TooBigForRelativeHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::Height::clone(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::Height::cmp(&self, other: &bitcoin_units::locktime::absolute::Height) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::absolute::Height::eq(&self, other: &bitcoin_units::locktime::absolute::Height) -> bool +pub fn bitcoin_units::locktime::absolute::Height::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::Height::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::Height::is_satisfied_by(self, height: Self) -> bool +pub fn bitcoin_units::locktime::absolute::Height::partial_cmp(&self, other: &bitcoin_units::locktime::absolute::Height) -> core::option::Option +pub fn bitcoin_units::locktime::absolute::Height::try_from(h: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::clone(&self) -> bitcoin_units::locktime::absolute::LockTime +pub fn bitcoin_units::locktime::absolute::LockTime::eq(&self, other: &bitcoin_units::locktime::absolute::LockTime) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from(h: bitcoin_units::locktime::absolute::Height) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from(t: bitcoin_units::locktime::absolute::MedianTimePast) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from_consensus(n: u32) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from_height(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_mtp(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::LockTime::is_implied_by(self, other: Self) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by(self, height: bitcoin_units::locktime::absolute::Height, mtp: bitcoin_units::locktime::absolute::MedianTimePast) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by_height(self, height: bitcoin_units::locktime::absolute::Height) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by_time(self, mtp: bitcoin_units::locktime::absolute::MedianTimePast) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::to_consensus_u32(self) -> u32 +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::clone(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::MedianTimePast::cmp(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::absolute::MedianTimePast::eq(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> bool +pub fn bitcoin_units::locktime::absolute::MedianTimePast::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::MedianTimePast::is_satisfied_by(self, time: Self) -> bool +pub fn bitcoin_units::locktime::absolute::MedianTimePast::new(timestamps: [bitcoin_units::BlockTime; 11]) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::partial_cmp(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> core::option::Option +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(h: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::error::ConversionError::clone(&self) -> bitcoin_units::locktime::absolute::error::ConversionError +pub fn bitcoin_units::locktime::absolute::error::ConversionError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ConversionError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ConversionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::clone(&self) -> bitcoin_units::locktime::absolute::error::IncompatibleHeightError +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::eq(&self, other: &bitcoin_units::locktime::absolute::error::IncompatibleHeightError) -> bool +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::incompatible(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::lock(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::clone(&self) -> bitcoin_units::locktime::absolute::error::IncompatibleTimeError +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::eq(&self, other: &bitcoin_units::locktime::absolute::error::IncompatibleTimeError) -> bool +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::incompatible(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::lock(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::clone(&self) -> bitcoin_units::locktime::absolute::error::ParseHeightError +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ParseHeightError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::clone(&self) -> bitcoin_units::locktime::absolute::error::ParseTimeError +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ParseTimeError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::LockTime::clone(&self) -> bitcoin_units::locktime::relative::LockTime +pub fn bitcoin_units::locktime::relative::LockTime::eq(&self, other: &bitcoin_units::locktime::relative::LockTime) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::LockTime::from(h: bitcoin_units::locktime::relative::NumberOfBlocks) -> Self +pub fn bitcoin_units::locktime::relative::LockTime::from(t: bitcoin_units::locktime::relative::NumberOf512Seconds) -> Self +pub fn bitcoin_units::locktime::relative::LockTime::from_consensus(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::from_sequence(n: bitcoin_units::sequence::Sequence) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::LockTime::is_implied_by(self, other: Self) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::is_implied_by_sequence(self, other: bitcoin_units::sequence::Sequence) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by(self, chain_tip_height: bitcoin_units::block::BlockHeight, chain_tip_mtp: bitcoin_units::block::BlockMtp, utxo_mined_at_height: bitcoin_units::block::BlockHeight, utxo_mined_at_mtp: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by_height(self, chain_tip: bitcoin_units::block::BlockHeight, utxo_mined_at: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by_time(self, chain_tip: bitcoin_units::block::BlockMtp, utxo_mined_at: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::to_consensus_u32(self) -> u32 +pub fn bitcoin_units::locktime::relative::LockTime::to_sequence(self) -> bitcoin_units::sequence::Sequence +pub fn bitcoin_units::locktime::relative::LockTime::try_from(seq: bitcoin_units::sequence::Sequence) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::clone(&self) -> bitcoin_units::locktime::relative::NumberOf512Seconds +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::cmp(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::default() -> bitcoin_units::locktime::relative::NumberOf512Seconds +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::eq(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> bool +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::is_satisfied_by(self, chain_tip: bitcoin_units::block::BlockMtp, utxo_mined_at: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::partial_cmp(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> core::option::Option +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::clone(&self) -> bitcoin_units::locktime::relative::NumberOfBlocks +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::cmp(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::default() -> bitcoin_units::locktime::relative::NumberOfBlocks +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::eq(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> bool +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::from(value: u16) -> Self +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::is_satisfied_by(self, chain_tip: bitcoin_units::block::BlockHeight, utxo_mined_at: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::partial_cmp(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> core::option::Option +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(h: bitcoin_units::block::BlockHeightInterval) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::DisabledLockTimeError +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::disabled_locktime_value(&self) -> u32 +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::DisabledLockTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::clone(&self) -> bitcoin_units::locktime::relative::error::InvalidHeightError +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::eq(&self, other: &bitcoin_units::locktime::relative::error::InvalidHeightError) -> bool +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::InvalidTimeError +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::InvalidTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::clone(&self) -> bitcoin_units::locktime::relative::error::TimeOverflowError +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::eq(&self, other: &bitcoin_units::locktime::relative::error::TimeOverflowError) -> bool +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::ParseIntError::as_ref(&self) -> &core::num::error::ParseIntError +pub fn bitcoin_units::parse_int::ParseIntError::clone(&self) -> bitcoin_units::parse_int::ParseIntError +pub fn bitcoin_units::parse_int::ParseIntError::eq(&self, other: &bitcoin_units::parse_int::ParseIntError) -> bool +pub fn bitcoin_units::parse_int::ParseIntError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::PrefixedHexError::clone(&self) -> bitcoin_units::parse_int::PrefixedHexError +pub fn bitcoin_units::parse_int::PrefixedHexError::eq(&self, other: &bitcoin_units::parse_int::PrefixedHexError) -> bool +pub fn bitcoin_units::parse_int::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::PrefixedHexError::from(e: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn bitcoin_units::parse_int::PrefixedHexError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::parse_int::UnprefixedHexError::clone(&self) -> bitcoin_units::parse_int::UnprefixedHexError +pub fn bitcoin_units::parse_int::UnprefixedHexError::eq(&self, other: &bitcoin_units::parse_int::UnprefixedHexError) -> bool +pub fn bitcoin_units::parse_int::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::UnprefixedHexError::from(e: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn bitcoin_units::parse_int::UnprefixedHexError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::parse_int::hex_check_unprefixed(s: &str) -> core::result::Result<&str, bitcoin_units::parse_int::UnprefixedHexError> +pub fn bitcoin_units::parse_int::hex_remove_prefix(s: &str) -> core::result::Result<&str, bitcoin_units::parse_int::PrefixedHexError> +pub fn bitcoin_units::parse_int::hex_u128(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_box(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_string(s: alloc::string::String) -> core::result::Result +pub fn bitcoin_units::result::MathOp::clone(&self) -> bitcoin_units::result::MathOp +pub fn bitcoin_units::result::MathOp::eq(&self, other: &bitcoin_units::result::MathOp) -> bool +pub fn bitcoin_units::result::MathOp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::MathOp::is_addition(self) -> bool +pub fn bitcoin_units::result::MathOp::is_div_by_zero(self) -> bool +pub fn bitcoin_units::result::MathOp::is_multiplication(self) -> bool +pub fn bitcoin_units::result::MathOp::is_negation(self) -> bool +pub fn bitcoin_units::result::MathOp::is_overflow(self) -> bool +pub fn bitcoin_units::result::MathOp::is_subtraction(self) -> bool +pub fn bitcoin_units::result::NumOpError::clone(&self) -> bitcoin_units::result::NumOpError +pub fn bitcoin_units::result::NumOpError::eq(&self, other: &bitcoin_units::result::NumOpError) -> bool +pub fn bitcoin_units::result::NumOpError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::NumOpError::is_div_by_zero(self) -> bool +pub fn bitcoin_units::result::NumOpError::is_overflow(self) -> bool +pub fn bitcoin_units::result::NumOpError::operation(self) -> bitcoin_units::result::MathOp +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: &T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: Self) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: T) +pub fn bitcoin_units::result::NumOpResult::and_then(self, op: F) -> Self where F: core::ops::function::FnOnce(T) -> Self +pub fn bitcoin_units::result::NumOpResult::clone(&self) -> bitcoin_units::result::NumOpResult +pub fn bitcoin_units::result::NumOpResult::eq(&self, other: &bitcoin_units::result::NumOpResult) -> bool +pub fn bitcoin_units::result::NumOpResult::expect(self, msg: &str) -> T +pub fn bitcoin_units::result::NumOpResult::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::NumOpResult::into_result(self) -> core::result::Result +pub fn bitcoin_units::result::NumOpResult::is_error(&self) -> bool +pub fn bitcoin_units::result::NumOpResult::is_valid(&self) -> bool +pub fn bitcoin_units::result::NumOpResult::map U>(self, op: F) -> bitcoin_units::result::NumOpResult +pub fn bitcoin_units::result::NumOpResult::ok(self) -> core::option::Option +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: &T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: Self) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: T) +pub fn bitcoin_units::result::NumOpResult::unwrap(self) -> T +pub fn bitcoin_units::result::NumOpResult::unwrap_err(self) -> bitcoin_units::result::NumOpError +pub fn bitcoin_units::result::NumOpResult::unwrap_or(self, default: T) -> T +pub fn bitcoin_units::result::NumOpResult::unwrap_or_else(self, f: F) -> T where F: core::ops::function::FnOnce() -> T +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: bitcoin_units::Amount) +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: &u64) +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: u64) +pub fn bitcoin_units::result::NumOpResult::from(a: &bitcoin_units::Amount) -> Self +pub fn bitcoin_units::result::NumOpResult::from(a: bitcoin_units::Amount) -> Self +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: &u64) +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: u64) +pub fn bitcoin_units::result::NumOpResult::rem(self, modulus: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: bitcoin_units::Amount) +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: bitcoin_units::SignedAmount) +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: &i64) +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: i64) +pub fn bitcoin_units::result::NumOpResult::from(a: &bitcoin_units::SignedAmount) -> Self +pub fn bitcoin_units::result::NumOpResult::from(a: bitcoin_units::SignedAmount) -> Self +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: &i64) +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: i64) +pub fn bitcoin_units::result::NumOpResult::rem(self, modulus: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::rem(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: bitcoin_units::SignedAmount) +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::sequence::Sequence::clone(&self) -> bitcoin_units::sequence::Sequence +pub fn bitcoin_units::sequence::Sequence::cmp(&self, other: &bitcoin_units::sequence::Sequence) -> core::cmp::Ordering +pub fn bitcoin_units::sequence::Sequence::default() -> Self +pub fn bitcoin_units::sequence::Sequence::enables_absolute_lock_time(self) -> bool +pub fn bitcoin_units::sequence::Sequence::eq(&self, other: &bitcoin_units::sequence::Sequence) -> bool +pub fn bitcoin_units::sequence::Sequence::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::sequence::Sequence::from(lt: bitcoin_units::locktime::relative::LockTime) -> Self +pub fn bitcoin_units::sequence::Sequence::from_512_second_intervals(intervals: u16) -> Self +pub fn bitcoin_units::sequence::Sequence::from_consensus(n: u32) -> Self +pub fn bitcoin_units::sequence::Sequence::from_height(height: u16) -> Self +pub fn bitcoin_units::sequence::Sequence::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_seconds_ceil(seconds: u32) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_seconds_floor(seconds: u32) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::sequence::Sequence::is_final(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_height_locked(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_rbf(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_relative_lock_time(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_time_locked(self) -> bool +pub fn bitcoin_units::sequence::Sequence::partial_cmp(&self, other: &bitcoin_units::sequence::Sequence) -> core::option::Option +pub fn bitcoin_units::sequence::Sequence::to_hex(self) -> alloc::string::String +pub fn bitcoin_units::sequence::Sequence::to_relative_lock_time(self) -> core::option::Option +pub fn bitcoin_units::sequence::Sequence::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::try_from(s: alloc::boxed::Box) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::try_from(s: alloc::string::String) -> core::result::Result +pub fn core::num::error::ParseIntError::from(value: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn i64::mul(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn i64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn i64::mul(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn i64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn u32::from(height: bitcoin_units::block::BlockHeight) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockHeightInterval) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockMtp) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockMtpInterval) -> Self +pub fn u32::from(sequence: bitcoin_units::sequence::Sequence) -> Self +pub fn u32::from(t: bitcoin_units::BlockTime) -> Self +pub fn u64::from(value: bitcoin_units::Weight) -> Self +pub fn u64::mul(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn u64::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn u64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub mod bitcoin_units +pub mod bitcoin_units::absolute +pub mod bitcoin_units::absolute::error +pub mod bitcoin_units::amount +pub mod bitcoin_units::amount::error +pub mod bitcoin_units::block +pub mod bitcoin_units::fee_rate +pub mod bitcoin_units::locktime +pub mod bitcoin_units::locktime::absolute +pub mod bitcoin_units::locktime::absolute::error +pub mod bitcoin_units::locktime::relative +pub mod bitcoin_units::locktime::relative::error +pub mod bitcoin_units::parse_int +pub mod bitcoin_units::relative +pub mod bitcoin_units::relative::error +pub mod bitcoin_units::result +pub mod bitcoin_units::sequence +pub mod bitcoin_units::time +pub mod bitcoin_units::weight +pub struct bitcoin_units::Amount(_) +pub struct bitcoin_units::BlockHeight(_) +pub struct bitcoin_units::BlockHeightInterval(_) +pub struct bitcoin_units::BlockMtp(_) +pub struct bitcoin_units::BlockMtpInterval(_) +pub struct bitcoin_units::BlockTime(_) +pub struct bitcoin_units::FeeRate(_) +pub struct bitcoin_units::Sequence(pub u32) +pub struct bitcoin_units::SignedAmount(_) +pub struct bitcoin_units::Weight(_) +pub struct bitcoin_units::absolute::Height(_) +pub struct bitcoin_units::absolute::IncompatibleHeightError +pub struct bitcoin_units::absolute::IncompatibleTimeError +pub struct bitcoin_units::absolute::MedianTimePast(_) +pub struct bitcoin_units::absolute::ParseHeightError(_) +pub struct bitcoin_units::absolute::ParseTimeError(_) +pub struct bitcoin_units::absolute::error::IncompatibleHeightError +pub struct bitcoin_units::absolute::error::IncompatibleTimeError +pub struct bitcoin_units::absolute::error::ParseHeightError(_) +pub struct bitcoin_units::absolute::error::ParseTimeError(_) +pub struct bitcoin_units::amount::Amount(_) +pub struct bitcoin_units::amount::Display +pub struct bitcoin_units::amount::OutOfRangeError +pub struct bitcoin_units::amount::ParseAmountError(_) +pub struct bitcoin_units::amount::ParseError(_) +pub struct bitcoin_units::amount::SignedAmount(_) +pub struct bitcoin_units::amount::error::BadPositionError +pub struct bitcoin_units::amount::error::InputTooLargeError +pub struct bitcoin_units::amount::error::InvalidCharacterError +pub struct bitcoin_units::amount::error::MissingDigitsError +pub struct bitcoin_units::amount::error::OutOfRangeError +pub struct bitcoin_units::amount::error::ParseAmountError(_) +pub struct bitcoin_units::amount::error::ParseError(_) +pub struct bitcoin_units::amount::error::TooPreciseError +pub struct bitcoin_units::block::BlockHeight(_) +pub struct bitcoin_units::block::BlockHeightInterval(_) +pub struct bitcoin_units::block::BlockMtp(_) +pub struct bitcoin_units::block::BlockMtpInterval(_) +pub struct bitcoin_units::block::TooBigForRelativeHeightError(_) +pub struct bitcoin_units::fee_rate::FeeRate(_) +pub struct bitcoin_units::locktime::absolute::Height(_) +pub struct bitcoin_units::locktime::absolute::IncompatibleHeightError +pub struct bitcoin_units::locktime::absolute::IncompatibleTimeError +pub struct bitcoin_units::locktime::absolute::MedianTimePast(_) +pub struct bitcoin_units::locktime::absolute::ParseHeightError(_) +pub struct bitcoin_units::locktime::absolute::ParseTimeError(_) +pub struct bitcoin_units::locktime::absolute::error::IncompatibleHeightError +pub struct bitcoin_units::locktime::absolute::error::IncompatibleTimeError +pub struct bitcoin_units::locktime::absolute::error::ParseHeightError(_) +pub struct bitcoin_units::locktime::absolute::error::ParseTimeError(_) +pub struct bitcoin_units::locktime::relative::DisabledLockTimeError(_) +pub struct bitcoin_units::locktime::relative::InvalidHeightError +pub struct bitcoin_units::locktime::relative::InvalidTimeError +pub struct bitcoin_units::locktime::relative::NumberOf512Seconds(_) +pub struct bitcoin_units::locktime::relative::NumberOfBlocks(_) +pub struct bitcoin_units::locktime::relative::TimeOverflowError +pub struct bitcoin_units::locktime::relative::error::DisabledLockTimeError(_) +pub struct bitcoin_units::locktime::relative::error::InvalidHeightError +pub struct bitcoin_units::locktime::relative::error::InvalidTimeError +pub struct bitcoin_units::locktime::relative::error::TimeOverflowError +pub struct bitcoin_units::parse_int::PrefixedHexError(_) +pub struct bitcoin_units::parse_int::UnprefixedHexError(_) +pub struct bitcoin_units::relative::DisabledLockTimeError(_) +pub struct bitcoin_units::relative::InvalidHeightError +pub struct bitcoin_units::relative::InvalidTimeError +pub struct bitcoin_units::relative::NumberOf512Seconds(_) +pub struct bitcoin_units::relative::NumberOfBlocks(_) +pub struct bitcoin_units::relative::TimeOverflowError +pub struct bitcoin_units::relative::error::DisabledLockTimeError(_) +pub struct bitcoin_units::relative::error::InvalidHeightError +pub struct bitcoin_units::relative::error::InvalidTimeError +pub struct bitcoin_units::relative::error::TimeOverflowError +pub struct bitcoin_units::sequence::Sequence(pub u32) +pub struct bitcoin_units::time::BlockTime(_) +pub struct bitcoin_units::weight::Weight(_) +pub trait bitcoin_units::parse_int::Integer: core::str::traits::FromStr + core::convert::TryFrom + core::marker::Sized + bitcoin_units::parse_int::sealed::Sealed +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::FeeRate::Output = ::Output +pub type &bitcoin_units::FeeRate::Output = >>::Output +pub type &bitcoin_units::FeeRate::Output = >::Output +pub type &bitcoin_units::FeeRate::Output = >>::Output +pub type &bitcoin_units::FeeRate::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = >>::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = >>::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::block::BlockHeight::Output = >::Output +pub type &bitcoin_units::block::BlockHeight::Output = >::Output +pub type &bitcoin_units::block::BlockHeight::Output = ::Output +pub type &bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type &bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type &bitcoin_units::block::BlockMtp::Output = >::Output +pub type &bitcoin_units::block::BlockMtp::Output = >::Output +pub type &bitcoin_units::block::BlockMtp::Output = ::Output +pub type &bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type &bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type &i64::Output = >::Output +pub type &i64::Output = >>::Output +pub type &u64::Output = >::Output +pub type &u64::Output = >::Output +pub type &u64::Output = >>::Output +pub type bitcoin_units::Amount::Err = bitcoin_units::amount::error::ParseError +pub type bitcoin_units::Amount::Error = bitcoin_units::amount::error::OutOfRangeError +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = bitcoin_units::Amount +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::FeeRate::Output = ::Output +pub type bitcoin_units::FeeRate::Output = >>::Output +pub type bitcoin_units::FeeRate::Output = >::Output +pub type bitcoin_units::FeeRate::Output = >>::Output +pub type bitcoin_units::FeeRate::Output = ::Output +pub type bitcoin_units::FeeRate::Output = bitcoin_units::FeeRate +pub type bitcoin_units::FeeRate::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::SignedAmount::Err = bitcoin_units::amount::error::ParseError +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::SignedAmount +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Weight::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::Weight::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = >>::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = >>::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = bitcoin_units::Weight +pub type bitcoin_units::Weight::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Weight::Output = u64 +pub type bitcoin_units::amount::Denomination::Err = bitcoin_units::amount::error::ParseDenominationError +pub type bitcoin_units::block::BlockHeight::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeight::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeight::Output = >::Output +pub type bitcoin_units::block::BlockHeight::Output = >::Output +pub type bitcoin_units::block::BlockHeight::Output = ::Output +pub type bitcoin_units::block::BlockHeight::Output = bitcoin_units::block::BlockHeight +pub type bitcoin_units::block::BlockHeight::Output = bitcoin_units::block::BlockHeightInterval +pub type bitcoin_units::block::BlockHeightInterval::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeightInterval::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type bitcoin_units::block::BlockHeightInterval::Output = bitcoin_units::block::BlockHeightInterval +pub type bitcoin_units::block::BlockMtp::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtp::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtp::Output = >::Output +pub type bitcoin_units::block::BlockMtp::Output = >::Output +pub type bitcoin_units::block::BlockMtp::Output = ::Output +pub type bitcoin_units::block::BlockMtp::Output = bitcoin_units::block::BlockMtp +pub type bitcoin_units::block::BlockMtp::Output = bitcoin_units::block::BlockMtpInterval +pub type bitcoin_units::block::BlockMtpInterval::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtpInterval::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type bitcoin_units::block::BlockMtpInterval::Output = bitcoin_units::block::BlockMtpInterval +pub type bitcoin_units::locktime::absolute::Height::Err = bitcoin_units::locktime::absolute::error::ParseHeightError +pub type bitcoin_units::locktime::absolute::Height::Error = bitcoin_units::locktime::absolute::error::ConversionError +pub type bitcoin_units::locktime::absolute::Height::Error = bitcoin_units::locktime::absolute::error::ParseHeightError +pub type bitcoin_units::locktime::absolute::LockTime::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::absolute::LockTime::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Err = bitcoin_units::locktime::absolute::error::ParseTimeError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Error = bitcoin_units::locktime::absolute::error::ConversionError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Error = bitcoin_units::locktime::absolute::error::ParseTimeError +pub type bitcoin_units::locktime::relative::LockTime::Error = bitcoin_units::locktime::relative::error::DisabledLockTimeError +pub type bitcoin_units::locktime::relative::NumberOf512Seconds::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOf512Seconds::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Error = bitcoin_units::block::TooBigForRelativeHeightError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::sequence::Sequence::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::sequence::Sequence::Error = bitcoin_units::parse_int::ParseIntError +pub type i64::Output = >::Output +pub type i64::Output = >>::Output +pub type i64::Output = bitcoin_units::result::NumOpResult +pub type u64::Output = >::Output +pub type u64::Output = >::Output +pub type u64::Output = >>::Output +pub type u64::Output = bitcoin_units::Weight +pub type u64::Output = bitcoin_units::result::NumOpResult diff --git a/api/units/no-features.txt b/api/units/no-features.txt new file mode 100644 index 0000000000..8c0c21e5f6 --- /dev/null +++ b/api/units/no-features.txt @@ -0,0 +1,2358 @@ +#[non_exhaustive] pub enum bitcoin_units::amount::Denomination +#[non_exhaustive] pub enum bitcoin_units::amount::ParseDenominationError +#[non_exhaustive] pub enum bitcoin_units::amount::error::ParseDenominationError +#[non_exhaustive] pub enum bitcoin_units::result::MathOp +#[non_exhaustive] pub struct bitcoin_units::absolute::ConversionError +#[non_exhaustive] pub struct bitcoin_units::absolute::error::ConversionError +#[non_exhaustive] pub struct bitcoin_units::amount::error::MissingDenominationError +#[non_exhaustive] pub struct bitcoin_units::amount::error::PossiblyConfusingDenominationError(_) +#[non_exhaustive] pub struct bitcoin_units::amount::error::UnknownDenominationError(_) +#[non_exhaustive] pub struct bitcoin_units::locktime::absolute::ConversionError +#[non_exhaustive] pub struct bitcoin_units::locktime::absolute::error::ConversionError +#[non_exhaustive] pub struct bitcoin_units::parse_int::ParseIntError +#[non_exhaustive] pub struct bitcoin_units::result::NumOpError(_) +impl bitcoin_units::Amount +impl bitcoin_units::BlockTime +impl bitcoin_units::FeeRate +impl bitcoin_units::SignedAmount +impl bitcoin_units::Weight +impl bitcoin_units::amount::Denomination +impl bitcoin_units::amount::Display +impl bitcoin_units::amount::error::OutOfRangeError +impl bitcoin_units::block::BlockHeight +impl bitcoin_units::block::BlockHeightInterval +impl bitcoin_units::block::BlockMtp +impl bitcoin_units::block::BlockMtpInterval +impl bitcoin_units::locktime::absolute::Height +impl bitcoin_units::locktime::absolute::LockTime +impl bitcoin_units::locktime::absolute::MedianTimePast +impl bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl bitcoin_units::locktime::relative::LockTime +impl bitcoin_units::locktime::relative::NumberOf512Seconds +impl bitcoin_units::locktime::relative::NumberOfBlocks +impl bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl bitcoin_units::parse_int::Integer for i128 +impl bitcoin_units::parse_int::Integer for i16 +impl bitcoin_units::parse_int::Integer for i32 +impl bitcoin_units::parse_int::Integer for i64 +impl bitcoin_units::parse_int::Integer for i8 +impl bitcoin_units::parse_int::Integer for u128 +impl bitcoin_units::parse_int::Integer for u16 +impl bitcoin_units::parse_int::Integer for u32 +impl bitcoin_units::parse_int::Integer for u64 +impl bitcoin_units::parse_int::Integer for u8 +impl bitcoin_units::result::MathOp +impl bitcoin_units::result::NumOpError +impl bitcoin_units::sequence::Sequence +impl core::clone::Clone for bitcoin_units::Amount +impl core::clone::Clone for bitcoin_units::BlockTime +impl core::clone::Clone for bitcoin_units::FeeRate +impl core::clone::Clone for bitcoin_units::SignedAmount +impl core::clone::Clone for bitcoin_units::Weight +impl core::clone::Clone for bitcoin_units::amount::Denomination +impl core::clone::Clone for bitcoin_units::amount::Display +impl core::clone::Clone for bitcoin_units::amount::error::BadPositionError +impl core::clone::Clone for bitcoin_units::amount::error::InputTooLargeError +impl core::clone::Clone for bitcoin_units::amount::error::InvalidCharacterError +impl core::clone::Clone for bitcoin_units::amount::error::MissingDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::MissingDigitsError +impl core::clone::Clone for bitcoin_units::amount::error::OutOfRangeError +impl core::clone::Clone for bitcoin_units::amount::error::ParseAmountError +impl core::clone::Clone for bitcoin_units::amount::error::ParseDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::ParseError +impl core::clone::Clone for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::clone::Clone for bitcoin_units::amount::error::TooPreciseError +impl core::clone::Clone for bitcoin_units::amount::error::UnknownDenominationError +impl core::clone::Clone for bitcoin_units::block::BlockHeight +impl core::clone::Clone for bitcoin_units::block::BlockHeightInterval +impl core::clone::Clone for bitcoin_units::block::BlockMtp +impl core::clone::Clone for bitcoin_units::block::BlockMtpInterval +impl core::clone::Clone for bitcoin_units::block::TooBigForRelativeHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::Height +impl core::clone::Clone for bitcoin_units::locktime::absolute::LockTime +impl core::clone::Clone for bitcoin_units::locktime::absolute::MedianTimePast +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ConversionError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::clone::Clone for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::LockTime +impl core::clone::Clone for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::clone::Clone for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::clone::Clone for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::clone::Clone for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::clone::Clone for bitcoin_units::parse_int::ParseIntError +impl core::clone::Clone for bitcoin_units::parse_int::PrefixedHexError +impl core::clone::Clone for bitcoin_units::parse_int::UnprefixedHexError +impl core::clone::Clone for bitcoin_units::result::MathOp +impl core::clone::Clone for bitcoin_units::result::NumOpError +impl core::clone::Clone for bitcoin_units::sequence::Sequence +impl core::cmp::Eq for bitcoin_units::Amount +impl core::cmp::Eq for bitcoin_units::BlockTime +impl core::cmp::Eq for bitcoin_units::FeeRate +impl core::cmp::Eq for bitcoin_units::SignedAmount +impl core::cmp::Eq for bitcoin_units::Weight +impl core::cmp::Eq for bitcoin_units::amount::Denomination +impl core::cmp::Eq for bitcoin_units::amount::error::BadPositionError +impl core::cmp::Eq for bitcoin_units::amount::error::InputTooLargeError +impl core::cmp::Eq for bitcoin_units::amount::error::InvalidCharacterError +impl core::cmp::Eq for bitcoin_units::amount::error::MissingDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::MissingDigitsError +impl core::cmp::Eq for bitcoin_units::amount::error::OutOfRangeError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseAmountError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::ParseError +impl core::cmp::Eq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::cmp::Eq for bitcoin_units::amount::error::TooPreciseError +impl core::cmp::Eq for bitcoin_units::amount::error::UnknownDenominationError +impl core::cmp::Eq for bitcoin_units::block::BlockHeight +impl core::cmp::Eq for bitcoin_units::block::BlockHeightInterval +impl core::cmp::Eq for bitcoin_units::block::BlockMtp +impl core::cmp::Eq for bitcoin_units::block::BlockMtpInterval +impl core::cmp::Eq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::Height +impl core::cmp::Eq for bitcoin_units::locktime::absolute::LockTime +impl core::cmp::Eq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::cmp::Eq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::LockTime +impl core::cmp::Eq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::Eq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::cmp::Eq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::cmp::Eq for bitcoin_units::parse_int::ParseIntError +impl core::cmp::Eq for bitcoin_units::parse_int::PrefixedHexError +impl core::cmp::Eq for bitcoin_units::parse_int::UnprefixedHexError +impl core::cmp::Eq for bitcoin_units::result::MathOp +impl core::cmp::Eq for bitcoin_units::result::NumOpError +impl core::cmp::Eq for bitcoin_units::sequence::Sequence +impl core::cmp::Ord for bitcoin_units::Amount +impl core::cmp::Ord for bitcoin_units::BlockTime +impl core::cmp::Ord for bitcoin_units::FeeRate +impl core::cmp::Ord for bitcoin_units::SignedAmount +impl core::cmp::Ord for bitcoin_units::Weight +impl core::cmp::Ord for bitcoin_units::block::BlockHeight +impl core::cmp::Ord for bitcoin_units::block::BlockHeightInterval +impl core::cmp::Ord for bitcoin_units::block::BlockMtp +impl core::cmp::Ord for bitcoin_units::block::BlockMtpInterval +impl core::cmp::Ord for bitcoin_units::locktime::absolute::Height +impl core::cmp::Ord for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::Ord for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::Ord for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::Ord for bitcoin_units::sequence::Sequence +impl core::cmp::PartialEq for bitcoin_units::Amount +impl core::cmp::PartialEq for bitcoin_units::BlockTime +impl core::cmp::PartialEq for bitcoin_units::FeeRate +impl core::cmp::PartialEq for bitcoin_units::SignedAmount +impl core::cmp::PartialEq for bitcoin_units::Weight +impl core::cmp::PartialEq for bitcoin_units::amount::Denomination +impl core::cmp::PartialEq for bitcoin_units::amount::error::BadPositionError +impl core::cmp::PartialEq for bitcoin_units::amount::error::InputTooLargeError +impl core::cmp::PartialEq for bitcoin_units::amount::error::InvalidCharacterError +impl core::cmp::PartialEq for bitcoin_units::amount::error::MissingDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::MissingDigitsError +impl core::cmp::PartialEq for bitcoin_units::amount::error::OutOfRangeError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseAmountError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::ParseError +impl core::cmp::PartialEq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::cmp::PartialEq for bitcoin_units::amount::error::TooPreciseError +impl core::cmp::PartialEq for bitcoin_units::amount::error::UnknownDenominationError +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeight +impl core::cmp::PartialEq for bitcoin_units::block::BlockHeightInterval +impl core::cmp::PartialEq for bitcoin_units::block::BlockMtp +impl core::cmp::PartialEq for bitcoin_units::block::BlockMtpInterval +impl core::cmp::PartialEq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::Height +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::LockTime +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::LockTime +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::cmp::PartialEq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::cmp::PartialEq for bitcoin_units::parse_int::ParseIntError +impl core::cmp::PartialEq for bitcoin_units::parse_int::PrefixedHexError +impl core::cmp::PartialEq for bitcoin_units::parse_int::UnprefixedHexError +impl core::cmp::PartialEq for bitcoin_units::result::MathOp +impl core::cmp::PartialEq for bitcoin_units::result::NumOpError +impl core::cmp::PartialEq for bitcoin_units::sequence::Sequence +impl core::cmp::PartialOrd for bitcoin_units::Amount +impl core::cmp::PartialOrd for bitcoin_units::BlockTime +impl core::cmp::PartialOrd for bitcoin_units::FeeRate +impl core::cmp::PartialOrd for bitcoin_units::SignedAmount +impl core::cmp::PartialOrd for bitcoin_units::Weight +impl core::cmp::PartialOrd for bitcoin_units::block::BlockHeight +impl core::cmp::PartialOrd for bitcoin_units::block::BlockHeightInterval +impl core::cmp::PartialOrd for bitcoin_units::block::BlockMtp +impl core::cmp::PartialOrd for bitcoin_units::block::BlockMtpInterval +impl core::cmp::PartialOrd for bitcoin_units::locktime::absolute::Height +impl core::cmp::PartialOrd for bitcoin_units::locktime::absolute::MedianTimePast +impl core::cmp::PartialOrd for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::cmp::PartialOrd for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::cmp::PartialOrd for bitcoin_units::sequence::Sequence +impl core::convert::AsRef for bitcoin_units::parse_int::ParseIntError +impl core::convert::From<&bitcoin_units::Amount> for bitcoin_units::result::NumOpResult +impl core::convert::From<&bitcoin_units::SignedAmount> for bitcoin_units::result::NumOpResult +impl core::convert::From for bitcoin_units::SignedAmount +impl core::convert::From for bitcoin_units::result::NumOpResult +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::result::NumOpResult +impl core::convert::From for u64 +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::block::BlockHeight +impl core::convert::From for bitcoin_units::locktime::absolute::LockTime +impl core::convert::From for bitcoin_units::block::BlockMtp +impl core::convert::From for bitcoin_units::locktime::absolute::LockTime +impl core::convert::From for bitcoin_units::sequence::Sequence +impl core::convert::From for bitcoin_units::block::BlockMtpInterval +impl core::convert::From for bitcoin_units::locktime::relative::LockTime +impl core::convert::From for bitcoin_units::block::BlockHeightInterval +impl core::convert::From for bitcoin_units::locktime::relative::LockTime +impl core::convert::From for bitcoin_units::parse_int::PrefixedHexError +impl core::convert::From for bitcoin_units::parse_int::UnprefixedHexError +impl core::convert::From for core::num::error::ParseIntError +impl core::convert::From for u32 +impl core::convert::From for bitcoin_units::amount::error::ParseAmountError +impl core::convert::From for bitcoin_units::amount::error::ParseDenominationError +impl core::convert::From for bitcoin_units::amount::error::ParseError +impl core::convert::From for bitcoin_units::parse_int::PrefixedHexError +impl core::convert::From for bitcoin_units::parse_int::UnprefixedHexError +impl core::convert::From for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::From for bitcoin_units::BlockTime +impl core::convert::From for bitcoin_units::block::BlockHeight +impl core::convert::From for bitcoin_units::block::BlockHeightInterval +impl core::convert::From for bitcoin_units::block::BlockMtp +impl core::convert::From for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom<&str> for bitcoin_units::Weight +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockHeight +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockHeightInterval +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockMtp +impl core::convert::TryFrom<&str> for bitcoin_units::block::BlockMtpInterval +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::LockTime +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::convert::TryFrom<&str> for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom for bitcoin_units::Amount +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::Height +impl core::convert::TryFrom for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::convert::TryFrom for bitcoin_units::locktime::absolute::MedianTimePast +impl core::convert::TryFrom for bitcoin_units::locktime::relative::LockTime +impl core::default::Default for bitcoin_units::Amount +impl core::default::Default for bitcoin_units::SignedAmount +impl core::default::Default for bitcoin_units::block::BlockHeightInterval +impl core::default::Default for bitcoin_units::block::BlockMtpInterval +impl core::default::Default for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::default::Default for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::default::Default for bitcoin_units::sequence::Sequence +impl core::fmt::Debug for bitcoin_units::Amount +impl core::fmt::Debug for bitcoin_units::BlockTime +impl core::fmt::Debug for bitcoin_units::FeeRate +impl core::fmt::Debug for bitcoin_units::SignedAmount +impl core::fmt::Debug for bitcoin_units::Weight +impl core::fmt::Debug for bitcoin_units::amount::Denomination +impl core::fmt::Debug for bitcoin_units::amount::Display +impl core::fmt::Debug for bitcoin_units::amount::error::BadPositionError +impl core::fmt::Debug for bitcoin_units::amount::error::InputTooLargeError +impl core::fmt::Debug for bitcoin_units::amount::error::InvalidCharacterError +impl core::fmt::Debug for bitcoin_units::amount::error::MissingDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::MissingDigitsError +impl core::fmt::Debug for bitcoin_units::amount::error::OutOfRangeError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseAmountError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::ParseError +impl core::fmt::Debug for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::fmt::Debug for bitcoin_units::amount::error::TooPreciseError +impl core::fmt::Debug for bitcoin_units::amount::error::UnknownDenominationError +impl core::fmt::Debug for bitcoin_units::block::BlockHeight +impl core::fmt::Debug for bitcoin_units::block::BlockHeightInterval +impl core::fmt::Debug for bitcoin_units::block::BlockMtp +impl core::fmt::Debug for bitcoin_units::block::BlockMtpInterval +impl core::fmt::Debug for bitcoin_units::block::TooBigForRelativeHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::Height +impl core::fmt::Debug for bitcoin_units::locktime::absolute::LockTime +impl core::fmt::Debug for bitcoin_units::locktime::absolute::MedianTimePast +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ConversionError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::fmt::Debug for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::LockTime +impl core::fmt::Debug for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::fmt::Debug for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::fmt::Debug for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::fmt::Debug for bitcoin_units::parse_int::ParseIntError +impl core::fmt::Debug for bitcoin_units::parse_int::PrefixedHexError +impl core::fmt::Debug for bitcoin_units::parse_int::UnprefixedHexError +impl core::fmt::Debug for bitcoin_units::result::MathOp +impl core::fmt::Debug for bitcoin_units::result::NumOpError +impl core::fmt::Debug for bitcoin_units::sequence::Sequence +impl core::fmt::Display for bitcoin_units::Amount +impl core::fmt::Display for bitcoin_units::SignedAmount +impl core::fmt::Display for bitcoin_units::Weight +impl core::fmt::Display for bitcoin_units::amount::Denomination +impl core::fmt::Display for bitcoin_units::amount::Display +impl core::fmt::Display for bitcoin_units::amount::error::BadPositionError +impl core::fmt::Display for bitcoin_units::amount::error::InputTooLargeError +impl core::fmt::Display for bitcoin_units::amount::error::InvalidCharacterError +impl core::fmt::Display for bitcoin_units::amount::error::MissingDigitsError +impl core::fmt::Display for bitcoin_units::amount::error::OutOfRangeError +impl core::fmt::Display for bitcoin_units::amount::error::ParseAmountError +impl core::fmt::Display for bitcoin_units::amount::error::ParseDenominationError +impl core::fmt::Display for bitcoin_units::amount::error::ParseError +impl core::fmt::Display for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::fmt::Display for bitcoin_units::amount::error::TooPreciseError +impl core::fmt::Display for bitcoin_units::amount::error::UnknownDenominationError +impl core::fmt::Display for bitcoin_units::block::BlockHeight +impl core::fmt::Display for bitcoin_units::block::BlockHeightInterval +impl core::fmt::Display for bitcoin_units::block::BlockMtp +impl core::fmt::Display for bitcoin_units::block::BlockMtpInterval +impl core::fmt::Display for bitcoin_units::block::TooBigForRelativeHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::Height +impl core::fmt::Display for bitcoin_units::locktime::absolute::LockTime +impl core::fmt::Display for bitcoin_units::locktime::absolute::MedianTimePast +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ConversionError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::fmt::Display for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::LockTime +impl core::fmt::Display for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::fmt::Display for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::fmt::Display for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::fmt::Display for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::fmt::Display for bitcoin_units::parse_int::ParseIntError +impl core::fmt::Display for bitcoin_units::parse_int::PrefixedHexError +impl core::fmt::Display for bitcoin_units::parse_int::UnprefixedHexError +impl core::fmt::Display for bitcoin_units::result::MathOp +impl core::fmt::Display for bitcoin_units::result::NumOpError +impl core::fmt::Display for bitcoin_units::sequence::Sequence +impl core::fmt::LowerHex for bitcoin_units::sequence::Sequence +impl core::fmt::UpperHex for bitcoin_units::sequence::Sequence +impl core::hash::Hash for bitcoin_units::Amount +impl core::hash::Hash for bitcoin_units::BlockTime +impl core::hash::Hash for bitcoin_units::FeeRate +impl core::hash::Hash for bitcoin_units::SignedAmount +impl core::hash::Hash for bitcoin_units::Weight +impl core::hash::Hash for bitcoin_units::amount::Denomination +impl core::hash::Hash for bitcoin_units::block::BlockHeight +impl core::hash::Hash for bitcoin_units::block::BlockHeightInterval +impl core::hash::Hash for bitcoin_units::block::BlockMtp +impl core::hash::Hash for bitcoin_units::block::BlockMtpInterval +impl core::hash::Hash for bitcoin_units::locktime::absolute::Height +impl core::hash::Hash for bitcoin_units::locktime::absolute::LockTime +impl core::hash::Hash for bitcoin_units::locktime::absolute::MedianTimePast +impl core::hash::Hash for bitcoin_units::locktime::relative::LockTime +impl core::hash::Hash for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::hash::Hash for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::hash::Hash for bitcoin_units::sequence::Sequence +impl core::iter::traits::accum::Sum for bitcoin_units::FeeRate +impl core::iter::traits::accum::Sum for bitcoin_units::Weight +impl core::iter::traits::accum::Sum for bitcoin_units::block::BlockHeightInterval +impl core::iter::traits::accum::Sum for bitcoin_units::block::BlockMtpInterval +impl core::iter::traits::accum::Sum for bitcoin_units::result::NumOpResult +impl core::iter::traits::accum::Sum for bitcoin_units::result::NumOpResult +impl core::marker::Copy for bitcoin_units::Amount +impl core::marker::Copy for bitcoin_units::BlockTime +impl core::marker::Copy for bitcoin_units::FeeRate +impl core::marker::Copy for bitcoin_units::SignedAmount +impl core::marker::Copy for bitcoin_units::Weight +impl core::marker::Copy for bitcoin_units::amount::Denomination +impl core::marker::Copy for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Copy for bitcoin_units::block::BlockHeight +impl core::marker::Copy for bitcoin_units::block::BlockHeightInterval +impl core::marker::Copy for bitcoin_units::block::BlockMtp +impl core::marker::Copy for bitcoin_units::block::BlockMtpInterval +impl core::marker::Copy for bitcoin_units::locktime::absolute::Height +impl core::marker::Copy for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Copy for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Copy for bitcoin_units::locktime::relative::LockTime +impl core::marker::Copy for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Copy for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Copy for bitcoin_units::result::MathOp +impl core::marker::Copy for bitcoin_units::result::NumOpError +impl core::marker::Copy for bitcoin_units::sequence::Sequence +impl core::marker::Freeze for bitcoin_units::Amount +impl core::marker::Freeze for bitcoin_units::BlockTime +impl core::marker::Freeze for bitcoin_units::FeeRate +impl core::marker::Freeze for bitcoin_units::SignedAmount +impl core::marker::Freeze for bitcoin_units::Weight +impl core::marker::Freeze for bitcoin_units::amount::Denomination +impl core::marker::Freeze for bitcoin_units::amount::Display +impl core::marker::Freeze for bitcoin_units::amount::error::BadPositionError +impl core::marker::Freeze for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Freeze for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Freeze for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Freeze for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::ParseError +impl core::marker::Freeze for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Freeze for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Freeze for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Freeze for bitcoin_units::block::BlockHeight +impl core::marker::Freeze for bitcoin_units::block::BlockHeightInterval +impl core::marker::Freeze for bitcoin_units::block::BlockMtp +impl core::marker::Freeze for bitcoin_units::block::BlockMtpInterval +impl core::marker::Freeze for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::Height +impl core::marker::Freeze for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Freeze for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Freeze for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::LockTime +impl core::marker::Freeze for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Freeze for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Freeze for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Freeze for bitcoin_units::parse_int::ParseIntError +impl core::marker::Freeze for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Freeze for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Freeze for bitcoin_units::result::MathOp +impl core::marker::Freeze for bitcoin_units::result::NumOpError +impl core::marker::Freeze for bitcoin_units::sequence::Sequence +impl core::marker::Send for bitcoin_units::Amount +impl core::marker::Send for bitcoin_units::BlockTime +impl core::marker::Send for bitcoin_units::FeeRate +impl core::marker::Send for bitcoin_units::SignedAmount +impl core::marker::Send for bitcoin_units::Weight +impl core::marker::Send for bitcoin_units::amount::Denomination +impl core::marker::Send for bitcoin_units::amount::Display +impl core::marker::Send for bitcoin_units::amount::error::BadPositionError +impl core::marker::Send for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Send for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Send for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Send for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Send for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Send for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Send for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Send for bitcoin_units::amount::error::ParseError +impl core::marker::Send for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Send for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Send for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Send for bitcoin_units::block::BlockHeight +impl core::marker::Send for bitcoin_units::block::BlockHeightInterval +impl core::marker::Send for bitcoin_units::block::BlockMtp +impl core::marker::Send for bitcoin_units::block::BlockMtpInterval +impl core::marker::Send for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::Height +impl core::marker::Send for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Send for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Send for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::LockTime +impl core::marker::Send for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Send for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Send for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Send for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Send for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Send for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Send for bitcoin_units::parse_int::ParseIntError +impl core::marker::Send for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Send for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Send for bitcoin_units::result::MathOp +impl core::marker::Send for bitcoin_units::result::NumOpError +impl core::marker::Send for bitcoin_units::sequence::Sequence +impl core::marker::StructuralPartialEq for bitcoin_units::Amount +impl core::marker::StructuralPartialEq for bitcoin_units::BlockTime +impl core::marker::StructuralPartialEq for bitcoin_units::FeeRate +impl core::marker::StructuralPartialEq for bitcoin_units::SignedAmount +impl core::marker::StructuralPartialEq for bitcoin_units::Weight +impl core::marker::StructuralPartialEq for bitcoin_units::amount::Denomination +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::BadPositionError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseAmountError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::ParseError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::TooPreciseError +impl core::marker::StructuralPartialEq for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeight +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockHeightInterval +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockMtp +impl core::marker::StructuralPartialEq for bitcoin_units::block::BlockMtpInterval +impl core::marker::StructuralPartialEq for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::Height +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::LockTime +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::LockTime +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::ParseIntError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::result::MathOp +impl core::marker::StructuralPartialEq for bitcoin_units::result::NumOpError +impl core::marker::StructuralPartialEq for bitcoin_units::sequence::Sequence +impl core::marker::Sync for bitcoin_units::Amount +impl core::marker::Sync for bitcoin_units::BlockTime +impl core::marker::Sync for bitcoin_units::FeeRate +impl core::marker::Sync for bitcoin_units::SignedAmount +impl core::marker::Sync for bitcoin_units::Weight +impl core::marker::Sync for bitcoin_units::amount::Denomination +impl core::marker::Sync for bitcoin_units::amount::Display +impl core::marker::Sync for bitcoin_units::amount::error::BadPositionError +impl core::marker::Sync for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Sync for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Sync for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Sync for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Sync for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Sync for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::ParseError +impl core::marker::Sync for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Sync for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Sync for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Sync for bitcoin_units::block::BlockHeight +impl core::marker::Sync for bitcoin_units::block::BlockHeightInterval +impl core::marker::Sync for bitcoin_units::block::BlockMtp +impl core::marker::Sync for bitcoin_units::block::BlockMtpInterval +impl core::marker::Sync for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::Height +impl core::marker::Sync for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Sync for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Sync for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::LockTime +impl core::marker::Sync for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Sync for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Sync for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Sync for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Sync for bitcoin_units::parse_int::ParseIntError +impl core::marker::Sync for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Sync for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Sync for bitcoin_units::result::MathOp +impl core::marker::Sync for bitcoin_units::result::NumOpError +impl core::marker::Sync for bitcoin_units::sequence::Sequence +impl core::marker::Unpin for bitcoin_units::Amount +impl core::marker::Unpin for bitcoin_units::BlockTime +impl core::marker::Unpin for bitcoin_units::FeeRate +impl core::marker::Unpin for bitcoin_units::SignedAmount +impl core::marker::Unpin for bitcoin_units::Weight +impl core::marker::Unpin for bitcoin_units::amount::Denomination +impl core::marker::Unpin for bitcoin_units::amount::Display +impl core::marker::Unpin for bitcoin_units::amount::error::BadPositionError +impl core::marker::Unpin for bitcoin_units::amount::error::InputTooLargeError +impl core::marker::Unpin for bitcoin_units::amount::error::InvalidCharacterError +impl core::marker::Unpin for bitcoin_units::amount::error::MissingDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::MissingDigitsError +impl core::marker::Unpin for bitcoin_units::amount::error::OutOfRangeError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseAmountError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::ParseError +impl core::marker::Unpin for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::marker::Unpin for bitcoin_units::amount::error::TooPreciseError +impl core::marker::Unpin for bitcoin_units::amount::error::UnknownDenominationError +impl core::marker::Unpin for bitcoin_units::block::BlockHeight +impl core::marker::Unpin for bitcoin_units::block::BlockHeightInterval +impl core::marker::Unpin for bitcoin_units::block::BlockMtp +impl core::marker::Unpin for bitcoin_units::block::BlockMtpInterval +impl core::marker::Unpin for bitcoin_units::block::TooBigForRelativeHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::Height +impl core::marker::Unpin for bitcoin_units::locktime::absolute::LockTime +impl core::marker::Unpin for bitcoin_units::locktime::absolute::MedianTimePast +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ConversionError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::marker::Unpin for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::LockTime +impl core::marker::Unpin for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::marker::Unpin for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::marker::Unpin for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::marker::Unpin for bitcoin_units::parse_int::ParseIntError +impl core::marker::Unpin for bitcoin_units::parse_int::PrefixedHexError +impl core::marker::Unpin for bitcoin_units::parse_int::UnprefixedHexError +impl core::marker::Unpin for bitcoin_units::result::MathOp +impl core::marker::Unpin for bitcoin_units::result::NumOpError +impl core::marker::Unpin for bitcoin_units::sequence::Sequence +impl core::ops::arith::Add for bitcoin_units::Amount +impl core::ops::arith::Add for bitcoin_units::FeeRate +impl core::ops::arith::Add for bitcoin_units::SignedAmount +impl core::ops::arith::Add for bitcoin_units::Weight +impl core::ops::arith::Add for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Add<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::Add<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Add<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Add<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Add<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Add<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::SignedAmount +impl core::ops::arith::Add for &bitcoin_units::Amount +impl core::ops::arith::Add for &bitcoin_units::FeeRate +impl core::ops::arith::Add for &bitcoin_units::SignedAmount +impl core::ops::arith::Add for &bitcoin_units::Weight +impl core::ops::arith::Add for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Add for &bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockHeight +impl core::ops::arith::Add for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Add for &bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Add for bitcoin_units::block::BlockMtp +impl core::ops::arith::Add> for &bitcoin_units::Amount +impl core::ops::arith::Add> for bitcoin_units::Amount +impl core::ops::arith::Add> for &bitcoin_units::SignedAmount +impl core::ops::arith::Add> for bitcoin_units::SignedAmount +impl core::ops::arith::AddAssign for bitcoin_units::FeeRate +impl core::ops::arith::AddAssign for bitcoin_units::Weight +impl core::ops::arith::AddAssign for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::AddAssign for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::AddAssign<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::AddAssign<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::AddAssign<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::SignedAmount +impl core::ops::arith::Div for bitcoin_units::Weight +impl core::ops::arith::Div<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::FeeRate> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::FeeRate> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Div<&bitcoin_units::Weight> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Div<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::Amount +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::FeeRate +impl core::ops::arith::Div<&core::num::nonzero::NonZero> for bitcoin_units::Weight +impl core::ops::arith::Div<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Div<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div<&u64> for bitcoin_units::Amount +impl core::ops::arith::Div<&u64> for bitcoin_units::Weight +impl core::ops::arith::Div<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::SignedAmount +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div> for &bitcoin_units::SignedAmount +impl core::ops::arith::Div> for bitcoin_units::SignedAmount +impl core::ops::arith::Div> for &bitcoin_units::Amount +impl core::ops::arith::Div> for &bitcoin_units::FeeRate +impl core::ops::arith::Div> for &bitcoin_units::Weight +impl core::ops::arith::Div> for bitcoin_units::Amount +impl core::ops::arith::Div> for bitcoin_units::FeeRate +impl core::ops::arith::Div> for bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::SignedAmount +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::SignedAmount +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for &bitcoin_units::Amount +impl core::ops::arith::Div for &bitcoin_units::Weight +impl core::ops::arith::Div for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Div for bitcoin_units::Amount +impl core::ops::arith::Div for bitcoin_units::Weight +impl core::ops::arith::Div for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::DivAssign for bitcoin_units::Weight +impl core::ops::arith::DivAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::Amount> for u64 +impl core::ops::arith::Mul<&bitcoin_units::FeeRate> for bitcoin_units::Weight +impl core::ops::arith::Mul<&bitcoin_units::FeeRate> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::SignedAmount> for i64 +impl core::ops::arith::Mul<&bitcoin_units::Weight> for bitcoin_units::FeeRate +impl core::ops::arith::Mul<&bitcoin_units::Weight> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::Weight> for u64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for u64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::Weight +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for i64 +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::FeeRate +impl core::ops::arith::Mul<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Mul<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul<&u64> for bitcoin_units::Amount +impl core::ops::arith::Mul<&u64> for bitcoin_units::Weight +impl core::ops::arith::Mul<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &u64 +impl core::ops::arith::Mul for u64 +impl core::ops::arith::Mul for &bitcoin_units::Weight +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::Weight +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &i64 +impl core::ops::arith::Mul for i64 +impl core::ops::arith::Mul for &bitcoin_units::FeeRate +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &u64 +impl core::ops::arith::Mul for bitcoin_units::FeeRate +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for u64 +impl core::ops::arith::Mul> for &u64 +impl core::ops::arith::Mul> for u64 +impl core::ops::arith::Mul> for &bitcoin_units::Weight +impl core::ops::arith::Mul> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for bitcoin_units::Weight +impl core::ops::arith::Mul> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for &i64 +impl core::ops::arith::Mul> for i64 +impl core::ops::arith::Mul> for &bitcoin_units::FeeRate +impl core::ops::arith::Mul> for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul> for bitcoin_units::FeeRate +impl core::ops::arith::Mul> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &bitcoin_units::SignedAmount +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::SignedAmount +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for &bitcoin_units::Amount +impl core::ops::arith::Mul for &bitcoin_units::Weight +impl core::ops::arith::Mul for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Mul for bitcoin_units::Amount +impl core::ops::arith::Mul for bitcoin_units::Weight +impl core::ops::arith::Mul for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::MulAssign for bitcoin_units::Weight +impl core::ops::arith::MulAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::Neg for bitcoin_units::SignedAmount +impl core::ops::arith::Rem for bitcoin_units::Weight +impl core::ops::arith::Rem<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Rem<&i64> for bitcoin_units::SignedAmount +impl core::ops::arith::Rem<&i64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem<&u64> for bitcoin_units::Amount +impl core::ops::arith::Rem<&u64> for bitcoin_units::Weight +impl core::ops::arith::Rem<&u64> for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for &bitcoin_units::Weight +impl core::ops::arith::Rem for &bitcoin_units::SignedAmount +impl core::ops::arith::Rem for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for bitcoin_units::SignedAmount +impl core::ops::arith::Rem for bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for &bitcoin_units::Amount +impl core::ops::arith::Rem for &bitcoin_units::Weight +impl core::ops::arith::Rem for &bitcoin_units::result::NumOpResult +impl core::ops::arith::Rem for bitcoin_units::Amount +impl core::ops::arith::Rem for bitcoin_units::Weight +impl core::ops::arith::Rem for bitcoin_units::result::NumOpResult +impl core::ops::arith::RemAssign for bitcoin_units::Weight +impl core::ops::arith::Sub for bitcoin_units::Amount +impl core::ops::arith::Sub for bitcoin_units::FeeRate +impl core::ops::arith::Sub for bitcoin_units::SignedAmount +impl core::ops::arith::Sub for bitcoin_units::Weight +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub<&bitcoin_units::Amount> for bitcoin_units::Amount +impl core::ops::arith::Sub<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::Sub<&bitcoin_units::SignedAmount> for bitcoin_units::SignedAmount +impl core::ops::arith::Sub<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeight> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtp> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::Amount +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::SignedAmount +impl core::ops::arith::Sub for &bitcoin_units::Amount +impl core::ops::arith::Sub for &bitcoin_units::FeeRate +impl core::ops::arith::Sub for &bitcoin_units::SignedAmount +impl core::ops::arith::Sub for &bitcoin_units::Weight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockHeight +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub for &bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::Sub for bitcoin_units::block::BlockMtp +impl core::ops::arith::Sub> for &bitcoin_units::Amount +impl core::ops::arith::Sub> for bitcoin_units::Amount +impl core::ops::arith::Sub> for &bitcoin_units::SignedAmount +impl core::ops::arith::Sub> for bitcoin_units::SignedAmount +impl core::ops::arith::SubAssign for bitcoin_units::FeeRate +impl core::ops::arith::SubAssign for bitcoin_units::Weight +impl core::ops::arith::SubAssign for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::SubAssign for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign<&bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl core::ops::arith::SubAssign<&bitcoin_units::Weight> for bitcoin_units::Weight +impl core::ops::arith::SubAssign<&bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl core::ops::arith::SubAssign<&bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::Amount +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::BlockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::FeeRate +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::SignedAmount +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::Weight +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::Denomination +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::Display +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::BadPositionError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::InputTooLargeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::InvalidCharacterError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::MissingDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::MissingDigitsError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::OutOfRangeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseAmountError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::ParseError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::TooPreciseError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::amount::error::UnknownDenominationError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeight +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockHeightInterval +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockMtp +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::BlockMtpInterval +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::block::TooBigForRelativeHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::Height +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::LockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::MedianTimePast +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ConversionError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::LockTime +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::ParseIntError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::PrefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse_int::UnprefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::MathOp +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::NumOpError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::sequence::Sequence +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::Amount +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::BlockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::FeeRate +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::SignedAmount +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::Weight +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Denomination +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Display +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::BadPositionError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::InputTooLargeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::InvalidCharacterError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::MissingDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::MissingDigitsError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::OutOfRangeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseAmountError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::ParseError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::PossiblyConfusingDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::TooPreciseError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::error::UnknownDenominationError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeight +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockHeightInterval +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockMtp +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::BlockMtpInterval +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::block::TooBigForRelativeHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::Height +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::LockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::MedianTimePast +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ConversionError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::IncompatibleTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ParseHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute::error::ParseTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::LockTime +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::NumberOfBlocks +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::DisabledLockTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::InvalidHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::InvalidTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::error::TimeOverflowError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::ParseIntError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::PrefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse_int::UnprefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::MathOp +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::NumOpError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::sequence::Sequence +impl core::str::traits::FromStr for bitcoin_units::Amount +impl core::str::traits::FromStr for bitcoin_units::SignedAmount +impl core::str::traits::FromStr for bitcoin_units::Weight +impl core::str::traits::FromStr for bitcoin_units::amount::Denomination +impl core::str::traits::FromStr for bitcoin_units::block::BlockHeight +impl core::str::traits::FromStr for bitcoin_units::block::BlockHeightInterval +impl core::str::traits::FromStr for bitcoin_units::block::BlockMtp +impl core::str::traits::FromStr for bitcoin_units::block::BlockMtpInterval +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::Height +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::LockTime +impl core::str::traits::FromStr for bitcoin_units::locktime::absolute::MedianTimePast +impl core::str::traits::FromStr for bitcoin_units::locktime::relative::NumberOf512Seconds +impl core::str::traits::FromStr for bitcoin_units::locktime::relative::NumberOfBlocks +impl<'a, T> core::ops::arith::Add<&'a T> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl<'a, T> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl<'a, T> core::ops::arith::Sub<&'a T> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl<'a, T> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::FeeRate> for bitcoin_units::FeeRate +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::Weight> for bitcoin_units::Weight +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::block::BlockHeightInterval> for bitcoin_units::block::BlockHeightInterval +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::block::BlockMtpInterval> for bitcoin_units::block::BlockMtpInterval +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl<'a> core::iter::traits::accum::Sum<&'a bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Add<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::FeeRate> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Add<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeightInterval +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Add<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtpInterval +impl<'a> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Add<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::FeeRate> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::FeeRate> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a bitcoin_units::Weight> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Div<&'a core::num::nonzero::NonZero> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Div<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Div<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Amount> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::FeeRate> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::FeeRate> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::SignedAmount> for &i64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::Weight> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &u64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &i64 +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Mul<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Mul<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Mul<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Rem<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Rem<&'a i64> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Rem<&'a i64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Rem<&'a u64> for &bitcoin_units::result::NumOpResult +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::Amount> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::FeeRate> for &bitcoin_units::FeeRate +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::SignedAmount> for &bitcoin_units::SignedAmount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::Weight> for &bitcoin_units::Weight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeight> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeight +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockHeightInterval> for &bitcoin_units::block::BlockHeightInterval +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtp> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtp +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::block::BlockMtpInterval> for &bitcoin_units::block::BlockMtpInterval +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::Amount +impl<'a> core::ops::arith::Sub<&'a bitcoin_units::result::NumOpResult> for &bitcoin_units::SignedAmount +impl core::clone::Clone for bitcoin_units::result::NumOpResult +impl core::cmp::Eq for bitcoin_units::result::NumOpResult +impl core::cmp::PartialEq for bitcoin_units::result::NumOpResult +impl bitcoin_units::result::NumOpResult +impl core::fmt::Debug for bitcoin_units::result::NumOpResult +impl core::marker::Copy for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::AddAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl core::ops::arith::SubAssign for bitcoin_units::result::NumOpResult +impl bitcoin_units::result::NumOpResult +impl core::marker::Freeze for bitcoin_units::result::NumOpResult where T: core::marker::Freeze +impl core::marker::Send for bitcoin_units::result::NumOpResult where T: core::marker::Send +impl core::marker::StructuralPartialEq for bitcoin_units::result::NumOpResult +impl core::marker::Sync for bitcoin_units::result::NumOpResult where T: core::marker::Sync +impl core::marker::Unpin for bitcoin_units::result::NumOpResult where T: core::marker::Unpin +impl core::ops::arith::Add for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Add<&T> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Add for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add, Output = bitcoin_units::result::NumOpResult> +impl core::ops::arith::Add> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Add> +impl core::ops::arith::Sub for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub<&T> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub<&bitcoin_units::result::NumOpResult> for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub for bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::ops::arith::Sub> for &bitcoin_units::result::NumOpResult where T: core::marker::Copy + core::ops::arith::Sub> +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::result::NumOpResult where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::result::NumOpResult where T: core::panic::unwind_safe::UnwindSafe +pub bitcoin_units::NumOpResult::Error(bitcoin_units::result::NumOpError) +pub bitcoin_units::NumOpResult::Valid(T) +pub bitcoin_units::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) +pub bitcoin_units::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::MedianTimePast) +pub bitcoin_units::amount::Denomination::Bit +pub bitcoin_units::amount::Denomination::Bitcoin +pub bitcoin_units::amount::Denomination::CentiBitcoin +pub bitcoin_units::amount::Denomination::MicroBitcoin +pub bitcoin_units::amount::Denomination::MilliBitcoin +pub bitcoin_units::amount::Denomination::Satoshi +pub bitcoin_units::amount::ParseDenominationError::PossiblyConfusing(bitcoin_units::amount::error::PossiblyConfusingDenominationError) +pub bitcoin_units::amount::ParseDenominationError::Unknown(bitcoin_units::amount::error::UnknownDenominationError) +pub bitcoin_units::amount::error::ParseDenominationError::PossiblyConfusing(bitcoin_units::amount::error::PossiblyConfusingDenominationError) +pub bitcoin_units::amount::error::ParseDenominationError::Unknown(bitcoin_units::amount::error::UnknownDenominationError) +pub bitcoin_units::locktime::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) +pub bitcoin_units::locktime::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::MedianTimePast) +pub bitcoin_units::locktime::relative::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::LockTime::Blocks(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::LockTime::Time(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::LockTime::Blocks(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::LockTime::Time(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::error::IsSatisfiedByError::Blocks(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::error::IsSatisfiedByError::Time(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::relative::error::IsSatisfiedByHeightError::Incompatible(bitcoin_units::locktime::relative::NumberOf512Seconds) +pub bitcoin_units::relative::error::IsSatisfiedByHeightError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidHeightError) +pub bitcoin_units::relative::error::IsSatisfiedByTimeError::Incompatible(bitcoin_units::locktime::relative::NumberOfBlocks) +pub bitcoin_units::relative::error::IsSatisfiedByTimeError::Satisfaction(bitcoin_units::locktime::relative::error::InvalidTimeError) +pub bitcoin_units::result::MathOp::Add +pub bitcoin_units::result::MathOp::Div +pub bitcoin_units::result::MathOp::Mul +pub bitcoin_units::result::MathOp::Neg +pub bitcoin_units::result::MathOp::Rem +pub bitcoin_units::result::MathOp::Sub +pub bitcoin_units::result::NumOpResult::Error(bitcoin_units::result::NumOpError) +pub bitcoin_units::result::NumOpResult::Valid(T) +pub const bitcoin_units::Amount::FIFTY_BTC: Self +pub const bitcoin_units::Amount::MAX: Self +pub const bitcoin_units::Amount::MAX_MONEY: Self +pub const bitcoin_units::Amount::MIN: Self +pub const bitcoin_units::Amount::ONE_BTC: Self +pub const bitcoin_units::Amount::ONE_SAT: Self +pub const bitcoin_units::Amount::SIZE: usize +pub const bitcoin_units::Amount::ZERO: Self +pub const bitcoin_units::FeeRate::BROADCAST_MIN: Self +pub const bitcoin_units::FeeRate::DUST: Self +pub const bitcoin_units::FeeRate::MAX: Self +pub const bitcoin_units::FeeRate::MIN: Self +pub const bitcoin_units::FeeRate::ZERO: Self +pub const bitcoin_units::SignedAmount::FIFTY_BTC: Self +pub const bitcoin_units::SignedAmount::MAX: Self +pub const bitcoin_units::SignedAmount::MAX_MONEY: Self +pub const bitcoin_units::SignedAmount::MIN: Self +pub const bitcoin_units::SignedAmount::ONE_BTC: Self +pub const bitcoin_units::SignedAmount::ONE_SAT: Self +pub const bitcoin_units::SignedAmount::ZERO: Self +pub const bitcoin_units::Weight::MAX: Self +pub const bitcoin_units::Weight::MAX_BLOCK: Self +pub const bitcoin_units::Weight::MIN: Self +pub const bitcoin_units::Weight::MIN_TRANSACTION: Self +pub const bitcoin_units::Weight::WITNESS_SCALE_FACTOR: u64 +pub const bitcoin_units::Weight::ZERO: Self +pub const bitcoin_units::absolute::LOCK_TIME_THRESHOLD: u32 +pub const bitcoin_units::amount::Denomination::BTC: Self +pub const bitcoin_units::amount::Denomination::SAT: Self +pub const bitcoin_units::block::BlockHeight::MAX: Self +pub const bitcoin_units::block::BlockHeight::MIN: Self +pub const bitcoin_units::block::BlockHeight::ZERO: Self +pub const bitcoin_units::block::BlockHeightInterval::MAX: Self +pub const bitcoin_units::block::BlockHeightInterval::MIN: Self +pub const bitcoin_units::block::BlockHeightInterval::ZERO: Self +pub const bitcoin_units::block::BlockMtp::MAX: Self +pub const bitcoin_units::block::BlockMtp::MIN: Self +pub const bitcoin_units::block::BlockMtp::ZERO: Self +pub const bitcoin_units::block::BlockMtpInterval::MAX: Self +pub const bitcoin_units::block::BlockMtpInterval::MIN: Self +pub const bitcoin_units::block::BlockMtpInterval::ZERO: Self +pub const bitcoin_units::locktime::absolute::Height::MAX: Self +pub const bitcoin_units::locktime::absolute::Height::MIN: Self +pub const bitcoin_units::locktime::absolute::Height::ZERO: Self +pub const bitcoin_units::locktime::absolute::LOCK_TIME_THRESHOLD: u32 +pub const bitcoin_units::locktime::absolute::LockTime::SIZE: usize +pub const bitcoin_units::locktime::absolute::LockTime::ZERO: Self +pub const bitcoin_units::locktime::absolute::MedianTimePast::MAX: Self +pub const bitcoin_units::locktime::absolute::MedianTimePast::MIN: Self +pub const bitcoin_units::locktime::relative::LockTime::SIZE: usize +pub const bitcoin_units::locktime::relative::LockTime::ZERO: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::MAX: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::MIN: Self +pub const bitcoin_units::locktime::relative::NumberOf512Seconds::ZERO: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::MAX: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::MIN: Self +pub const bitcoin_units::locktime::relative::NumberOfBlocks::ZERO: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_LOCKTIME_AND_RBF: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_LOCKTIME_NO_RBF: Self +pub const bitcoin_units::sequence::Sequence::ENABLE_RBF_NO_LOCKTIME: Self +pub const bitcoin_units::sequence::Sequence::FINAL: Self +pub const bitcoin_units::sequence::Sequence::MAX: Self +pub const bitcoin_units::sequence::Sequence::SIZE: usize +pub const bitcoin_units::sequence::Sequence::ZERO: Self +pub const bitcoin_units::weight::WITNESS_SCALE_FACTOR: usize +pub const fn bitcoin_units::Amount::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_rem(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Amount::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Amount::div_by_fee_rate_ceil(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_fee_rate_floor(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_weight_ceil(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::div_by_weight_floor(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Amount::from_btc_u16(whole_bitcoin: u16) -> Self +pub const fn bitcoin_units::Amount::from_sat(satoshi: u64) -> core::result::Result +pub const fn bitcoin_units::Amount::from_sat_u32(satoshi: u32) -> Self +pub const fn bitcoin_units::Amount::to_sat(self) -> u64 +pub const fn bitcoin_units::BlockTime::from_u32(t: u32) -> Self +pub const fn bitcoin_units::BlockTime::to_u32(self) -> u32 +pub const fn bitcoin_units::FeeRate::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::FeeRate::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::FeeRate::from_per_kvb(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_per_kwu(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_per_vb(rate: bitcoin_units::Amount) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::from_sat_per_kvb(sat_kvb: u32) -> Self +pub const fn bitcoin_units::FeeRate::from_sat_per_kwu(sat_kwu: u32) -> Self +pub const fn bitcoin_units::FeeRate::from_sat_per_vb(sat_vb: u32) -> Self +pub const fn bitcoin_units::FeeRate::mul_by_weight(self, weight: bitcoin_units::Weight) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::FeeRate::to_fee(self, weight: bitcoin_units::Weight) -> bitcoin_units::Amount +pub const fn bitcoin_units::FeeRate::to_sat_per_kvb_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kvb_floor(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kwu_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_kwu_floor(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_vb_ceil(self) -> u64 +pub const fn bitcoin_units::FeeRate::to_sat_per_vb_floor(self) -> u64 +pub const fn bitcoin_units::SignedAmount::abs(self) -> Self +pub const fn bitcoin_units::SignedAmount::checked_abs(self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_div(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_mul(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_rem(self, rhs: i64) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::SignedAmount::from_btc_i16(whole_bitcoin: i16) -> Self +pub const fn bitcoin_units::SignedAmount::from_sat(satoshi: i64) -> core::result::Result +pub const fn bitcoin_units::SignedAmount::from_sat_i32(satoshi: i32) -> Self +pub const fn bitcoin_units::SignedAmount::to_sat(self) -> i64 +pub const fn bitcoin_units::Weight::checked_add(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_div(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_mul(self, rhs: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::checked_sub(self, rhs: Self) -> core::option::Option +pub const fn bitcoin_units::Weight::from_kwu(wu: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::from_non_witness_data_size(non_witness_size: u64) -> Self +pub const fn bitcoin_units::Weight::from_vb(vb: u64) -> core::option::Option +pub const fn bitcoin_units::Weight::from_vb_unchecked(vb: u64) -> Self +pub const fn bitcoin_units::Weight::from_vb_unwrap(vb: u64) -> Self +pub const fn bitcoin_units::Weight::from_witness_data_size(witness_size: u64) -> Self +pub const fn bitcoin_units::Weight::from_wu(wu: u64) -> Self +pub const fn bitcoin_units::Weight::mul_by_fee_rate(self, fee_rate: bitcoin_units::FeeRate) -> bitcoin_units::result::NumOpResult +pub const fn bitcoin_units::Weight::to_kwu_ceil(self) -> u64 +pub const fn bitcoin_units::Weight::to_kwu_floor(self) -> u64 +pub const fn bitcoin_units::Weight::to_vbytes_ceil(self) -> u64 +pub const fn bitcoin_units::Weight::to_vbytes_floor(self) -> u64 +pub const fn bitcoin_units::Weight::to_wu(self) -> u64 +pub const fn bitcoin_units::absolute::is_block_height(n: u32) -> bool +pub const fn bitcoin_units::absolute::is_block_time(n: u32) -> bool +pub const fn bitcoin_units::block::BlockHeight::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockHeight::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockHeightInterval::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockHeightInterval::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockMtp::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockMtp::to_u32(self) -> u32 +pub const fn bitcoin_units::block::BlockMtpInterval::from_u32(inner: u32) -> Self +pub const fn bitcoin_units::block::BlockMtpInterval::to_relative_mtp_interval_ceil(self) -> core::result::Result +pub const fn bitcoin_units::block::BlockMtpInterval::to_relative_mtp_interval_floor(self) -> core::result::Result +pub const fn bitcoin_units::block::BlockMtpInterval::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::Height::from_u32(n: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::absolute::Height::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::LockTime::is_block_height(self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTime::is_block_time(self) -> bool +pub const fn bitcoin_units::locktime::absolute::LockTime::is_same_unit(self, other: Self) -> bool +pub const fn bitcoin_units::locktime::absolute::MedianTimePast::from_u32(n: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::absolute::MedianTimePast::to_u32(self) -> u32 +pub const fn bitcoin_units::locktime::absolute::is_block_height(n: u32) -> bool +pub const fn bitcoin_units::locktime::absolute::is_block_time(n: u32) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::from_512_second_intervals(intervals: u16) -> Self +pub const fn bitcoin_units::locktime::relative::LockTime::from_height(n: u16) -> Self +pub const fn bitcoin_units::locktime::relative::LockTime::from_seconds_ceil(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::LockTime::from_seconds_floor(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::LockTime::is_block_height(self) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::is_block_time(self) -> bool +pub const fn bitcoin_units::locktime::relative::LockTime::is_same_unit(self, other: Self) -> bool +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_512_second_intervals(intervals: u16) -> Self +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_seconds_ceil(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_seconds_floor(seconds: u32) -> core::result::Result +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_512_second_intervals(self) -> u16 +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOf512Seconds::to_seconds(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::from_height(blocks: u16) -> Self +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::to_consensus_u32(self) -> u32 +pub const fn bitcoin_units::locktime::relative::NumberOfBlocks::to_height(self) -> u16 +pub const fn bitcoin_units::sequence::Sequence::to_consensus_u32(self) -> u32 +pub enum bitcoin_units::NumOpResult +pub enum bitcoin_units::absolute::LockTime +pub enum bitcoin_units::locktime::absolute::LockTime +pub enum bitcoin_units::locktime::relative::IsSatisfiedByError +pub enum bitcoin_units::locktime::relative::IsSatisfiedByHeightError +pub enum bitcoin_units::locktime::relative::IsSatisfiedByTimeError +pub enum bitcoin_units::locktime::relative::LockTime +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByError +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +pub enum bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +pub enum bitcoin_units::relative::IsSatisfiedByError +pub enum bitcoin_units::relative::IsSatisfiedByHeightError +pub enum bitcoin_units::relative::IsSatisfiedByTimeError +pub enum bitcoin_units::relative::LockTime +pub enum bitcoin_units::relative::error::IsSatisfiedByError +pub enum bitcoin_units::relative::error::IsSatisfiedByHeightError +pub enum bitcoin_units::relative::error::IsSatisfiedByTimeError +pub enum bitcoin_units::result::NumOpResult +pub fn &bitcoin_units::Amount::add(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Amount::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Amount::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &bitcoin_units::Amount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::add(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::add(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::FeeRate::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::FeeRate::sub(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::FeeRate::sub(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &core::num::nonzero::NonZeroI64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: core::num::nonzero::NonZeroI64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::div(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::mul(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::mul(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::rem(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::rem(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::add(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::add(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn &bitcoin_units::Weight::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::Weight::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::Weight::sub(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::Weight::sub(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeight) -> Self::Output +pub fn &bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockHeightInterval::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtp) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtp) -> Self::Output +pub fn &bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::block::BlockMtpInterval::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: &T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: &T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: T) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: &u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: u64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::div(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: &i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::rem(self, rhs: i64) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn &bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &i64::mul(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn &i64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &i64::mul(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn &i64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn &u64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn &u64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::clone(&self) -> bitcoin_units::Amount +pub fn bitcoin_units::Amount::cmp(&self, other: &bitcoin_units::Amount) -> core::cmp::Ordering +pub fn bitcoin_units::Amount::default() -> Self +pub fn bitcoin_units::Amount::display_dynamic(self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::Amount::display_in(self, denomination: bitcoin_units::amount::Denomination) -> bitcoin_units::amount::Display +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Amount::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Amount::eq(&self, other: &bitcoin_units::Amount) -> bool +pub fn bitcoin_units::Amount::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::Amount::from_int_btc>(whole_bitcoin: T) -> Self +pub fn bitcoin_units::Amount::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::Amount::from_str_in(s: &str, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::Amount::from_str_with_denomination(s: &str) -> core::result::Result +pub fn bitcoin_units::Amount::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::Amount::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Amount::partial_cmp(&self, other: &bitcoin_units::Amount) -> core::option::Option +pub fn bitcoin_units::Amount::rem(self, modulus: u64) -> Self::Output +pub fn bitcoin_units::Amount::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Amount::signed_sub(self, rhs: Self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn bitcoin_units::Amount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Amount::to_signed(self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::Amount::try_from(value: bitcoin_units::SignedAmount) -> core::result::Result +pub fn bitcoin_units::BlockTime::clone(&self) -> bitcoin_units::BlockTime +pub fn bitcoin_units::BlockTime::cmp(&self, other: &bitcoin_units::BlockTime) -> core::cmp::Ordering +pub fn bitcoin_units::BlockTime::eq(&self, other: &bitcoin_units::BlockTime) -> bool +pub fn bitcoin_units::BlockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::BlockTime::from(t: u32) -> Self +pub fn bitcoin_units::BlockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::BlockTime::partial_cmp(&self, other: &bitcoin_units::BlockTime) -> core::option::Option +pub fn bitcoin_units::FeeRate::add(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::add(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::add_assign(&mut self, rhs: &bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::add_assign(&mut self, rhs: bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::clone(&self) -> bitcoin_units::FeeRate +pub fn bitcoin_units::FeeRate::cmp(&self, other: &bitcoin_units::FeeRate) -> core::cmp::Ordering +pub fn bitcoin_units::FeeRate::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::FeeRate::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::FeeRate::eq(&self, other: &bitcoin_units::FeeRate) -> bool +pub fn bitcoin_units::FeeRate::fee_vb(self, vb: u64) -> core::option::Option +pub fn bitcoin_units::FeeRate::fee_wu(self, weight: bitcoin_units::Weight) -> core::option::Option +pub fn bitcoin_units::FeeRate::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::FeeRate::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::FeeRate::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::FeeRate::partial_cmp(&self, other: &bitcoin_units::FeeRate) -> core::option::Option +pub fn bitcoin_units::FeeRate::sub(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::sub(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::FeeRate::sub_assign(&mut self, rhs: &bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::sub_assign(&mut self, rhs: bitcoin_units::FeeRate) +pub fn bitcoin_units::FeeRate::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::FeeRate::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::add(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::clone(&self) -> bitcoin_units::SignedAmount +pub fn bitcoin_units::SignedAmount::cmp(&self, other: &bitcoin_units::SignedAmount) -> core::cmp::Ordering +pub fn bitcoin_units::SignedAmount::default() -> Self +pub fn bitcoin_units::SignedAmount::display_dynamic(self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::SignedAmount::display_in(self, denomination: bitcoin_units::amount::Denomination) -> bitcoin_units::amount::Display +pub fn bitcoin_units::SignedAmount::div(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: &core::num::nonzero::NonZeroI64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: core::num::nonzero::NonZeroI64) -> Self::Output +pub fn bitcoin_units::SignedAmount::div(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::eq(&self, other: &bitcoin_units::SignedAmount) -> bool +pub fn bitcoin_units::SignedAmount::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::SignedAmount::from(value: bitcoin_units::Amount) -> Self +pub fn bitcoin_units::SignedAmount::from_int_btc>(whole_bitcoin: T) -> Self +pub fn bitcoin_units::SignedAmount::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_str_in(s: &str, denom: bitcoin_units::amount::Denomination) -> core::result::Result +pub fn bitcoin_units::SignedAmount::from_str_with_denomination(s: &str) -> core::result::Result +pub fn bitcoin_units::SignedAmount::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::SignedAmount::is_negative(self) -> bool +pub fn bitcoin_units::SignedAmount::is_positive(self) -> bool +pub fn bitcoin_units::SignedAmount::mul(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::mul(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::neg(self) -> Self::Output +pub fn bitcoin_units::SignedAmount::partial_cmp(&self, other: &bitcoin_units::SignedAmount) -> core::option::Option +pub fn bitcoin_units::SignedAmount::positive_sub(self, rhs: Self) -> core::option::Option +pub fn bitcoin_units::SignedAmount::rem(self, modulus: i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::rem(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::SignedAmount::signum(self) -> i64 +pub fn bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn bitcoin_units::SignedAmount::sub(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::SignedAmount::to_unsigned(self) -> core::result::Result +pub fn bitcoin_units::SignedAmount::unsigned_abs(self) -> bitcoin_units::Amount +pub fn bitcoin_units::Weight::add(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::add(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::add_assign(&mut self, rhs: &bitcoin_units::Weight) +pub fn bitcoin_units::Weight::add_assign(&mut self, rhs: bitcoin_units::Weight) +pub fn bitcoin_units::Weight::clone(&self) -> bitcoin_units::Weight +pub fn bitcoin_units::Weight::cmp(&self, other: &bitcoin_units::Weight) -> core::cmp::Ordering +pub fn bitcoin_units::Weight::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: &core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: core::num::nonzero::NonZeroU64) -> Self::Output +pub fn bitcoin_units::Weight::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::div_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::eq(&self, other: &bitcoin_units::Weight) -> bool +pub fn bitcoin_units::Weight::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::Weight::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::Weight::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::Weight::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::mul_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::partial_cmp(&self, other: &bitcoin_units::Weight) -> core::option::Option +pub fn bitcoin_units::Weight::rem(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::rem(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::Weight::rem_assign(&mut self, rhs: u64) +pub fn bitcoin_units::Weight::sub(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::sub(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::Weight::sub_assign(&mut self, rhs: &bitcoin_units::Weight) +pub fn bitcoin_units::Weight::sub_assign(&mut self, rhs: bitcoin_units::Weight) +pub fn bitcoin_units::Weight::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::Weight::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::Weight::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::amount::Denomination::clone(&self) -> bitcoin_units::amount::Denomination +pub fn bitcoin_units::amount::Denomination::eq(&self, other: &bitcoin_units::amount::Denomination) -> bool +pub fn bitcoin_units::amount::Denomination::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::Denomination::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::amount::Denomination::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::amount::Display::clone(&self) -> bitcoin_units::amount::Display +pub fn bitcoin_units::amount::Display::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::Display::show_denomination(self) -> Self +pub fn bitcoin_units::amount::error::BadPositionError::clone(&self) -> bitcoin_units::amount::error::BadPositionError +pub fn bitcoin_units::amount::error::BadPositionError::eq(&self, other: &bitcoin_units::amount::error::BadPositionError) -> bool +pub fn bitcoin_units::amount::error::BadPositionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::InputTooLargeError::clone(&self) -> bitcoin_units::amount::error::InputTooLargeError +pub fn bitcoin_units::amount::error::InputTooLargeError::eq(&self, other: &bitcoin_units::amount::error::InputTooLargeError) -> bool +pub fn bitcoin_units::amount::error::InputTooLargeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::InvalidCharacterError::clone(&self) -> bitcoin_units::amount::error::InvalidCharacterError +pub fn bitcoin_units::amount::error::InvalidCharacterError::eq(&self, other: &bitcoin_units::amount::error::InvalidCharacterError) -> bool +pub fn bitcoin_units::amount::error::InvalidCharacterError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::MissingDenominationError::clone(&self) -> bitcoin_units::amount::error::MissingDenominationError +pub fn bitcoin_units::amount::error::MissingDenominationError::eq(&self, other: &bitcoin_units::amount::error::MissingDenominationError) -> bool +pub fn bitcoin_units::amount::error::MissingDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::MissingDigitsError::clone(&self) -> bitcoin_units::amount::error::MissingDigitsError +pub fn bitcoin_units::amount::error::MissingDigitsError::eq(&self, other: &bitcoin_units::amount::error::MissingDigitsError) -> bool +pub fn bitcoin_units::amount::error::MissingDigitsError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::OutOfRangeError::clone(&self) -> bitcoin_units::amount::error::OutOfRangeError +pub fn bitcoin_units::amount::error::OutOfRangeError::eq(&self, other: &bitcoin_units::amount::error::OutOfRangeError) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::OutOfRangeError::is_above_max(self) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::is_below_min(self) -> bool +pub fn bitcoin_units::amount::error::OutOfRangeError::valid_range(self) -> (i64, u64) +pub fn bitcoin_units::amount::error::ParseAmountError::clone(&self) -> bitcoin_units::amount::error::ParseAmountError +pub fn bitcoin_units::amount::error::ParseAmountError::eq(&self, other: &bitcoin_units::amount::error::ParseAmountError) -> bool +pub fn bitcoin_units::amount::error::ParseAmountError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseAmountError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::BadPositionError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::InputTooLargeError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::InvalidCharacterError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::MissingDigitsError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::OutOfRangeError) -> Self +pub fn bitcoin_units::amount::error::ParseAmountError::from(value: bitcoin_units::amount::error::TooPreciseError) -> Self +pub fn bitcoin_units::amount::error::ParseDenominationError::clone(&self) -> bitcoin_units::amount::error::ParseDenominationError +pub fn bitcoin_units::amount::error::ParseDenominationError::eq(&self, other: &bitcoin_units::amount::error::ParseDenominationError) -> bool +pub fn bitcoin_units::amount::error::ParseDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseDenominationError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::ParseError::clone(&self) -> bitcoin_units::amount::error::ParseError +pub fn bitcoin_units::amount::error::ParseError::eq(&self, other: &bitcoin_units::amount::error::ParseError) -> bool +pub fn bitcoin_units::amount::error::ParseError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::BadPositionError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::InputTooLargeError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::InvalidCharacterError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::MissingDigitsError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::OutOfRangeError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::ParseAmountError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::ParseDenominationError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(e: bitcoin_units::amount::error::TooPreciseError) -> Self +pub fn bitcoin_units::amount::error::ParseError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::clone(&self) -> bitcoin_units::amount::error::PossiblyConfusingDenominationError +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::eq(&self, other: &bitcoin_units::amount::error::PossiblyConfusingDenominationError) -> bool +pub fn bitcoin_units::amount::error::PossiblyConfusingDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::TooPreciseError::clone(&self) -> bitcoin_units::amount::error::TooPreciseError +pub fn bitcoin_units::amount::error::TooPreciseError::eq(&self, other: &bitcoin_units::amount::error::TooPreciseError) -> bool +pub fn bitcoin_units::amount::error::TooPreciseError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::amount::error::UnknownDenominationError::clone(&self) -> bitcoin_units::amount::error::UnknownDenominationError +pub fn bitcoin_units::amount::error::UnknownDenominationError::eq(&self, other: &bitcoin_units::amount::error::UnknownDenominationError) -> bool +pub fn bitcoin_units::amount::error::UnknownDenominationError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeight::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::checked_add(self, other: bitcoin_units::block::BlockHeightInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::clone(&self) -> bitcoin_units::block::BlockHeight +pub fn bitcoin_units::block::BlockHeight::cmp(&self, other: &bitcoin_units::block::BlockHeight) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockHeight::eq(&self, other: &bitcoin_units::block::BlockHeight) -> bool +pub fn bitcoin_units::block::BlockHeight::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeight::from(h: bitcoin_units::locktime::absolute::Height) -> Self +pub fn bitcoin_units::block::BlockHeight::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockHeight::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeight::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockHeight::partial_cmp(&self, other: &bitcoin_units::block::BlockHeight) -> core::option::Option +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeight) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeight) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeight::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::add(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::add(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::add_assign(&mut self, rhs: &bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::add_assign(&mut self, rhs: bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::checked_add(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::clone(&self) -> bitcoin_units::block::BlockHeightInterval +pub fn bitcoin_units::block::BlockHeightInterval::cmp(&self, other: &bitcoin_units::block::BlockHeightInterval) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockHeightInterval::default() -> bitcoin_units::block::BlockHeightInterval +pub fn bitcoin_units::block::BlockHeightInterval::eq(&self, other: &bitcoin_units::block::BlockHeightInterval) -> bool +pub fn bitcoin_units::block::BlockHeightInterval::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockHeightInterval::from(h: bitcoin_units::locktime::relative::NumberOfBlocks) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockHeightInterval::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockHeightInterval::partial_cmp(&self, other: &bitcoin_units::block::BlockHeightInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockHeightInterval::sub(self, rhs: &bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::sub(self, rhs: bitcoin_units::block::BlockHeightInterval) -> Self::Output +pub fn bitcoin_units::block::BlockHeightInterval::sub_assign(&mut self, rhs: &bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::sub_assign(&mut self, rhs: bitcoin_units::block::BlockHeightInterval) +pub fn bitcoin_units::block::BlockHeightInterval::sum>(iter: I) -> Self +pub fn bitcoin_units::block::BlockHeightInterval::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::block::BlockHeightInterval::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::checked_add(self, other: bitcoin_units::block::BlockMtpInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::clone(&self) -> bitcoin_units::block::BlockMtp +pub fn bitcoin_units::block::BlockMtp::cmp(&self, other: &bitcoin_units::block::BlockMtp) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockMtp::eq(&self, other: &bitcoin_units::block::BlockMtp) -> bool +pub fn bitcoin_units::block::BlockMtp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockMtp::from(h: bitcoin_units::locktime::absolute::MedianTimePast) -> Self +pub fn bitcoin_units::block::BlockMtp::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockMtp::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtp::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockMtp::new(timestamps: [bitcoin_units::BlockTime; 11]) -> Self +pub fn bitcoin_units::block::BlockMtp::partial_cmp(&self, other: &bitcoin_units::block::BlockMtp) -> core::option::Option +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtp) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtp) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtp::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::add(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::add(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::add_assign(&mut self, rhs: &bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::add_assign(&mut self, rhs: bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::checked_add(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::checked_sub(self, other: Self) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::clone(&self) -> bitcoin_units::block::BlockMtpInterval +pub fn bitcoin_units::block::BlockMtpInterval::cmp(&self, other: &bitcoin_units::block::BlockMtpInterval) -> core::cmp::Ordering +pub fn bitcoin_units::block::BlockMtpInterval::default() -> bitcoin_units::block::BlockMtpInterval +pub fn bitcoin_units::block::BlockMtpInterval::eq(&self, other: &bitcoin_units::block::BlockMtpInterval) -> bool +pub fn bitcoin_units::block::BlockMtpInterval::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::block::BlockMtpInterval::from(h: bitcoin_units::locktime::relative::NumberOf512Seconds) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::from(inner: u32) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::block::BlockMtpInterval::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::block::BlockMtpInterval::partial_cmp(&self, other: &bitcoin_units::block::BlockMtpInterval) -> core::option::Option +pub fn bitcoin_units::block::BlockMtpInterval::sub(self, rhs: &bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::sub(self, rhs: bitcoin_units::block::BlockMtpInterval) -> Self::Output +pub fn bitcoin_units::block::BlockMtpInterval::sub_assign(&mut self, rhs: &bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::sub_assign(&mut self, rhs: bitcoin_units::block::BlockMtpInterval) +pub fn bitcoin_units::block::BlockMtpInterval::sum>(iter: I) -> Self +pub fn bitcoin_units::block::BlockMtpInterval::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::block::BlockMtpInterval::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::block::TooBigForRelativeHeightError::clone(&self) -> bitcoin_units::block::TooBigForRelativeHeightError +pub fn bitcoin_units::block::TooBigForRelativeHeightError::eq(&self, other: &bitcoin_units::block::TooBigForRelativeHeightError) -> bool +pub fn bitcoin_units::block::TooBigForRelativeHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::Height::clone(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::Height::cmp(&self, other: &bitcoin_units::locktime::absolute::Height) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::absolute::Height::eq(&self, other: &bitcoin_units::locktime::absolute::Height) -> bool +pub fn bitcoin_units::locktime::absolute::Height::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::Height::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::Height::is_satisfied_by(self, height: Self) -> bool +pub fn bitcoin_units::locktime::absolute::Height::partial_cmp(&self, other: &bitcoin_units::locktime::absolute::Height) -> core::option::Option +pub fn bitcoin_units::locktime::absolute::Height::try_from(h: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::Height::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::clone(&self) -> bitcoin_units::locktime::absolute::LockTime +pub fn bitcoin_units::locktime::absolute::LockTime::eq(&self, other: &bitcoin_units::locktime::absolute::LockTime) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from(h: bitcoin_units::locktime::absolute::Height) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from(t: bitcoin_units::locktime::absolute::MedianTimePast) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from_consensus(n: u32) -> Self +pub fn bitcoin_units::locktime::absolute::LockTime::from_height(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_mtp(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::LockTime::is_implied_by(self, other: Self) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by(self, height: bitcoin_units::locktime::absolute::Height, mtp: bitcoin_units::locktime::absolute::MedianTimePast) -> bool +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by_height(self, height: bitcoin_units::locktime::absolute::Height) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::is_satisfied_by_time(self, mtp: bitcoin_units::locktime::absolute::MedianTimePast) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::LockTime::to_consensus_u32(self) -> u32 +pub fn bitcoin_units::locktime::absolute::LockTime::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::clone(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::MedianTimePast::cmp(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::absolute::MedianTimePast::eq(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> bool +pub fn bitcoin_units::locktime::absolute::MedianTimePast::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::absolute::MedianTimePast::is_satisfied_by(self, time: Self) -> bool +pub fn bitcoin_units::locktime::absolute::MedianTimePast::new(timestamps: [bitcoin_units::BlockTime; 11]) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::partial_cmp(&self, other: &bitcoin_units::locktime::absolute::MedianTimePast) -> core::option::Option +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(h: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::MedianTimePast::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::absolute::error::ConversionError::clone(&self) -> bitcoin_units::locktime::absolute::error::ConversionError +pub fn bitcoin_units::locktime::absolute::error::ConversionError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ConversionError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ConversionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::clone(&self) -> bitcoin_units::locktime::absolute::error::IncompatibleHeightError +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::eq(&self, other: &bitcoin_units::locktime::absolute::error::IncompatibleHeightError) -> bool +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::incompatible(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::error::IncompatibleHeightError::lock(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::clone(&self) -> bitcoin_units::locktime::absolute::error::IncompatibleTimeError +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::eq(&self, other: &bitcoin_units::locktime::absolute::error::IncompatibleTimeError) -> bool +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::incompatible(&self) -> bitcoin_units::locktime::absolute::MedianTimePast +pub fn bitcoin_units::locktime::absolute::error::IncompatibleTimeError::lock(&self) -> bitcoin_units::locktime::absolute::Height +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::clone(&self) -> bitcoin_units::locktime::absolute::error::ParseHeightError +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ParseHeightError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ParseHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::clone(&self) -> bitcoin_units::locktime::absolute::error::ParseTimeError +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::eq(&self, other: &bitcoin_units::locktime::absolute::error::ParseTimeError) -> bool +pub fn bitcoin_units::locktime::absolute::error::ParseTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::LockTime::clone(&self) -> bitcoin_units::locktime::relative::LockTime +pub fn bitcoin_units::locktime::relative::LockTime::eq(&self, other: &bitcoin_units::locktime::relative::LockTime) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::LockTime::from(h: bitcoin_units::locktime::relative::NumberOfBlocks) -> Self +pub fn bitcoin_units::locktime::relative::LockTime::from(t: bitcoin_units::locktime::relative::NumberOf512Seconds) -> Self +pub fn bitcoin_units::locktime::relative::LockTime::from_consensus(n: u32) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::from_sequence(n: bitcoin_units::sequence::Sequence) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::LockTime::is_implied_by(self, other: Self) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::is_implied_by_sequence(self, other: bitcoin_units::sequence::Sequence) -> bool +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by(self, chain_tip_height: bitcoin_units::block::BlockHeight, chain_tip_mtp: bitcoin_units::block::BlockMtp, utxo_mined_at_height: bitcoin_units::block::BlockHeight, utxo_mined_at_mtp: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by_height(self, chain_tip: bitcoin_units::block::BlockHeight, utxo_mined_at: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::is_satisfied_by_time(self, chain_tip: bitcoin_units::block::BlockMtp, utxo_mined_at: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::LockTime::to_consensus_u32(self) -> u32 +pub fn bitcoin_units::locktime::relative::LockTime::to_sequence(self) -> bitcoin_units::sequence::Sequence +pub fn bitcoin_units::locktime::relative::LockTime::try_from(seq: bitcoin_units::sequence::Sequence) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::clone(&self) -> bitcoin_units::locktime::relative::NumberOf512Seconds +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::cmp(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::default() -> bitcoin_units::locktime::relative::NumberOf512Seconds +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::eq(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> bool +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::is_satisfied_by(self, chain_tip: bitcoin_units::block::BlockMtp, utxo_mined_at: bitcoin_units::block::BlockMtp) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::partial_cmp(&self, other: &bitcoin_units::locktime::relative::NumberOf512Seconds) -> core::option::Option +pub fn bitcoin_units::locktime::relative::NumberOf512Seconds::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::clone(&self) -> bitcoin_units::locktime::relative::NumberOfBlocks +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::cmp(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> core::cmp::Ordering +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::default() -> bitcoin_units::locktime::relative::NumberOfBlocks +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::eq(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> bool +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::from(value: u16) -> Self +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::is_satisfied_by(self, chain_tip: bitcoin_units::block::BlockHeight, utxo_mined_at: bitcoin_units::block::BlockHeight) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::partial_cmp(&self, other: &bitcoin_units::locktime::relative::NumberOfBlocks) -> core::option::Option +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(h: bitcoin_units::block::BlockHeightInterval) -> core::result::Result +pub fn bitcoin_units::locktime::relative::NumberOfBlocks::try_from(s: &str) -> core::result::Result +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::DisabledLockTimeError +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::disabled_locktime_value(&self) -> u32 +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::DisabledLockTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::DisabledLockTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::clone(&self) -> bitcoin_units::locktime::relative::error::InvalidHeightError +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::eq(&self, other: &bitcoin_units::locktime::relative::error::InvalidHeightError) -> bool +pub fn bitcoin_units::locktime::relative::error::InvalidHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::InvalidTimeError +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::InvalidTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::InvalidTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByHeightError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::clone(&self) -> bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::eq(&self, other: &bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError) -> bool +pub fn bitcoin_units::locktime::relative::error::IsSatisfiedByTimeError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::clone(&self) -> bitcoin_units::locktime::relative::error::TimeOverflowError +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::eq(&self, other: &bitcoin_units::locktime::relative::error::TimeOverflowError) -> bool +pub fn bitcoin_units::locktime::relative::error::TimeOverflowError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::ParseIntError::as_ref(&self) -> &core::num::error::ParseIntError +pub fn bitcoin_units::parse_int::ParseIntError::clone(&self) -> bitcoin_units::parse_int::ParseIntError +pub fn bitcoin_units::parse_int::ParseIntError::eq(&self, other: &bitcoin_units::parse_int::ParseIntError) -> bool +pub fn bitcoin_units::parse_int::ParseIntError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::PrefixedHexError::clone(&self) -> bitcoin_units::parse_int::PrefixedHexError +pub fn bitcoin_units::parse_int::PrefixedHexError::eq(&self, other: &bitcoin_units::parse_int::PrefixedHexError) -> bool +pub fn bitcoin_units::parse_int::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::PrefixedHexError::from(e: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn bitcoin_units::parse_int::PrefixedHexError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::parse_int::UnprefixedHexError::clone(&self) -> bitcoin_units::parse_int::UnprefixedHexError +pub fn bitcoin_units::parse_int::UnprefixedHexError::eq(&self, other: &bitcoin_units::parse_int::UnprefixedHexError) -> bool +pub fn bitcoin_units::parse_int::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse_int::UnprefixedHexError::from(e: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn bitcoin_units::parse_int::UnprefixedHexError::from(never: core::convert::Infallible) -> Self +pub fn bitcoin_units::parse_int::hex_check_unprefixed(s: &str) -> core::result::Result<&str, bitcoin_units::parse_int::UnprefixedHexError> +pub fn bitcoin_units::parse_int::hex_remove_prefix(s: &str) -> core::result::Result<&str, bitcoin_units::parse_int::PrefixedHexError> +pub fn bitcoin_units::parse_int::hex_u128(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u128_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::hex_u32_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse_int::int_from_str(s: &str) -> core::result::Result +pub fn bitcoin_units::result::MathOp::clone(&self) -> bitcoin_units::result::MathOp +pub fn bitcoin_units::result::MathOp::eq(&self, other: &bitcoin_units::result::MathOp) -> bool +pub fn bitcoin_units::result::MathOp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::MathOp::is_addition(self) -> bool +pub fn bitcoin_units::result::MathOp::is_div_by_zero(self) -> bool +pub fn bitcoin_units::result::MathOp::is_multiplication(self) -> bool +pub fn bitcoin_units::result::MathOp::is_negation(self) -> bool +pub fn bitcoin_units::result::MathOp::is_overflow(self) -> bool +pub fn bitcoin_units::result::MathOp::is_subtraction(self) -> bool +pub fn bitcoin_units::result::NumOpError::clone(&self) -> bitcoin_units::result::NumOpError +pub fn bitcoin_units::result::NumOpError::eq(&self, other: &bitcoin_units::result::NumOpError) -> bool +pub fn bitcoin_units::result::NumOpError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::NumOpError::is_div_by_zero(self) -> bool +pub fn bitcoin_units::result::NumOpError::is_overflow(self) -> bool +pub fn bitcoin_units::result::NumOpError::operation(self) -> bitcoin_units::result::MathOp +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: &T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: Self) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add(self, rhs: T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: T) +pub fn bitcoin_units::result::NumOpResult::and_then(self, op: F) -> Self where F: core::ops::function::FnOnce(T) -> Self +pub fn bitcoin_units::result::NumOpResult::clone(&self) -> bitcoin_units::result::NumOpResult +pub fn bitcoin_units::result::NumOpResult::eq(&self, other: &bitcoin_units::result::NumOpResult) -> bool +pub fn bitcoin_units::result::NumOpResult::expect(self, msg: &str) -> T +pub fn bitcoin_units::result::NumOpResult::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::result::NumOpResult::into_result(self) -> core::result::Result +pub fn bitcoin_units::result::NumOpResult::is_error(&self) -> bool +pub fn bitcoin_units::result::NumOpResult::is_valid(&self) -> bool +pub fn bitcoin_units::result::NumOpResult::map U>(self, op: F) -> bitcoin_units::result::NumOpResult +pub fn bitcoin_units::result::NumOpResult::ok(self) -> core::option::Option +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: &T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: Self) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub(self, rhs: T) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: T) +pub fn bitcoin_units::result::NumOpResult::unwrap(self) -> T +pub fn bitcoin_units::result::NumOpResult::unwrap_err(self) -> bitcoin_units::result::NumOpError +pub fn bitcoin_units::result::NumOpResult::unwrap_or(self, default: T) -> T +pub fn bitcoin_units::result::NumOpResult::unwrap_or_else(self, f: F) -> T where F: core::ops::function::FnOnce() -> T +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: bitcoin_units::Amount) +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: &u64) +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: u64) +pub fn bitcoin_units::result::NumOpResult::from(a: &bitcoin_units::Amount) -> Self +pub fn bitcoin_units::result::NumOpResult::from(a: bitcoin_units::Amount) -> Self +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: &u64) +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: u64) +pub fn bitcoin_units::result::NumOpResult::rem(self, modulus: u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::rem(self, rhs: &u64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: bitcoin_units::Amount) +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::add_assign(&mut self, rhs: bitcoin_units::SignedAmount) +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: &i64) +pub fn bitcoin_units::result::NumOpResult::div_assign(&mut self, rhs: i64) +pub fn bitcoin_units::result::NumOpResult::from(a: &bitcoin_units::SignedAmount) -> Self +pub fn bitcoin_units::result::NumOpResult::from(a: bitcoin_units::SignedAmount) -> Self +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: &i64) +pub fn bitcoin_units::result::NumOpResult::mul_assign(&mut self, rhs: i64) +pub fn bitcoin_units::result::NumOpResult::rem(self, modulus: i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::rem(self, rhs: &i64) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: Self) +pub fn bitcoin_units::result::NumOpResult::sub_assign(&mut self, rhs: bitcoin_units::SignedAmount) +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::sum(iter: I) -> Self where I: core::iter::traits::iterator::Iterator +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::FeeRate) -> Self::Output +pub fn bitcoin_units::result::NumOpResult::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn bitcoin_units::sequence::Sequence::clone(&self) -> bitcoin_units::sequence::Sequence +pub fn bitcoin_units::sequence::Sequence::cmp(&self, other: &bitcoin_units::sequence::Sequence) -> core::cmp::Ordering +pub fn bitcoin_units::sequence::Sequence::default() -> Self +pub fn bitcoin_units::sequence::Sequence::enables_absolute_lock_time(self) -> bool +pub fn bitcoin_units::sequence::Sequence::eq(&self, other: &bitcoin_units::sequence::Sequence) -> bool +pub fn bitcoin_units::sequence::Sequence::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::sequence::Sequence::from(lt: bitcoin_units::locktime::relative::LockTime) -> Self +pub fn bitcoin_units::sequence::Sequence::from_512_second_intervals(intervals: u16) -> Self +pub fn bitcoin_units::sequence::Sequence::from_consensus(n: u32) -> Self +pub fn bitcoin_units::sequence::Sequence::from_height(height: u16) -> Self +pub fn bitcoin_units::sequence::Sequence::from_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_seconds_ceil(seconds: u32) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_seconds_floor(seconds: u32) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin_units::sequence::Sequence::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin_units::sequence::Sequence::is_final(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_height_locked(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_rbf(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_relative_lock_time(self) -> bool +pub fn bitcoin_units::sequence::Sequence::is_time_locked(self) -> bool +pub fn bitcoin_units::sequence::Sequence::partial_cmp(&self, other: &bitcoin_units::sequence::Sequence) -> core::option::Option +pub fn bitcoin_units::sequence::Sequence::to_relative_lock_time(self) -> core::option::Option +pub fn core::num::error::ParseIntError::from(value: bitcoin_units::parse_int::ParseIntError) -> Self +pub fn i64::mul(self, rhs: &bitcoin_units::SignedAmount) -> Self::Output +pub fn i64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn i64::mul(self, rhs: bitcoin_units::SignedAmount) -> Self::Output +pub fn i64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub fn u32::from(height: bitcoin_units::block::BlockHeight) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockHeightInterval) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockMtp) -> Self +pub fn u32::from(height: bitcoin_units::block::BlockMtpInterval) -> Self +pub fn u32::from(sequence: bitcoin_units::sequence::Sequence) -> Self +pub fn u32::from(t: bitcoin_units::BlockTime) -> Self +pub fn u64::from(value: bitcoin_units::Weight) -> Self +pub fn u64::mul(self, rhs: &bitcoin_units::Amount) -> Self::Output +pub fn u64::mul(self, rhs: &bitcoin_units::Weight) -> Self::Output +pub fn u64::mul(self, rhs: &bitcoin_units::result::NumOpResult) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::Amount) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::Weight) -> Self::Output +pub fn u64::mul(self, rhs: bitcoin_units::result::NumOpResult) -> Self::Output +pub mod bitcoin_units +pub mod bitcoin_units::absolute +pub mod bitcoin_units::absolute::error +pub mod bitcoin_units::amount +pub mod bitcoin_units::amount::error +pub mod bitcoin_units::block +pub mod bitcoin_units::fee_rate +pub mod bitcoin_units::locktime +pub mod bitcoin_units::locktime::absolute +pub mod bitcoin_units::locktime::absolute::error +pub mod bitcoin_units::locktime::relative +pub mod bitcoin_units::locktime::relative::error +pub mod bitcoin_units::parse_int +pub mod bitcoin_units::relative +pub mod bitcoin_units::relative::error +pub mod bitcoin_units::result +pub mod bitcoin_units::sequence +pub mod bitcoin_units::time +pub mod bitcoin_units::weight +pub struct bitcoin_units::Amount(_) +pub struct bitcoin_units::BlockHeight(_) +pub struct bitcoin_units::BlockHeightInterval(_) +pub struct bitcoin_units::BlockMtp(_) +pub struct bitcoin_units::BlockMtpInterval(_) +pub struct bitcoin_units::BlockTime(_) +pub struct bitcoin_units::FeeRate(_) +pub struct bitcoin_units::Sequence(pub u32) +pub struct bitcoin_units::SignedAmount(_) +pub struct bitcoin_units::Weight(_) +pub struct bitcoin_units::absolute::Height(_) +pub struct bitcoin_units::absolute::IncompatibleHeightError +pub struct bitcoin_units::absolute::IncompatibleTimeError +pub struct bitcoin_units::absolute::MedianTimePast(_) +pub struct bitcoin_units::absolute::ParseHeightError(_) +pub struct bitcoin_units::absolute::ParseTimeError(_) +pub struct bitcoin_units::absolute::error::IncompatibleHeightError +pub struct bitcoin_units::absolute::error::IncompatibleTimeError +pub struct bitcoin_units::absolute::error::ParseHeightError(_) +pub struct bitcoin_units::absolute::error::ParseTimeError(_) +pub struct bitcoin_units::amount::Amount(_) +pub struct bitcoin_units::amount::Display +pub struct bitcoin_units::amount::OutOfRangeError +pub struct bitcoin_units::amount::ParseAmountError(_) +pub struct bitcoin_units::amount::ParseError(_) +pub struct bitcoin_units::amount::SignedAmount(_) +pub struct bitcoin_units::amount::error::BadPositionError +pub struct bitcoin_units::amount::error::InputTooLargeError +pub struct bitcoin_units::amount::error::InvalidCharacterError +pub struct bitcoin_units::amount::error::MissingDigitsError +pub struct bitcoin_units::amount::error::OutOfRangeError +pub struct bitcoin_units::amount::error::ParseAmountError(_) +pub struct bitcoin_units::amount::error::ParseError(_) +pub struct bitcoin_units::amount::error::TooPreciseError +pub struct bitcoin_units::block::BlockHeight(_) +pub struct bitcoin_units::block::BlockHeightInterval(_) +pub struct bitcoin_units::block::BlockMtp(_) +pub struct bitcoin_units::block::BlockMtpInterval(_) +pub struct bitcoin_units::block::TooBigForRelativeHeightError(_) +pub struct bitcoin_units::fee_rate::FeeRate(_) +pub struct bitcoin_units::locktime::absolute::Height(_) +pub struct bitcoin_units::locktime::absolute::IncompatibleHeightError +pub struct bitcoin_units::locktime::absolute::IncompatibleTimeError +pub struct bitcoin_units::locktime::absolute::MedianTimePast(_) +pub struct bitcoin_units::locktime::absolute::ParseHeightError(_) +pub struct bitcoin_units::locktime::absolute::ParseTimeError(_) +pub struct bitcoin_units::locktime::absolute::error::IncompatibleHeightError +pub struct bitcoin_units::locktime::absolute::error::IncompatibleTimeError +pub struct bitcoin_units::locktime::absolute::error::ParseHeightError(_) +pub struct bitcoin_units::locktime::absolute::error::ParseTimeError(_) +pub struct bitcoin_units::locktime::relative::DisabledLockTimeError(_) +pub struct bitcoin_units::locktime::relative::InvalidHeightError +pub struct bitcoin_units::locktime::relative::InvalidTimeError +pub struct bitcoin_units::locktime::relative::NumberOf512Seconds(_) +pub struct bitcoin_units::locktime::relative::NumberOfBlocks(_) +pub struct bitcoin_units::locktime::relative::TimeOverflowError +pub struct bitcoin_units::locktime::relative::error::DisabledLockTimeError(_) +pub struct bitcoin_units::locktime::relative::error::InvalidHeightError +pub struct bitcoin_units::locktime::relative::error::InvalidTimeError +pub struct bitcoin_units::locktime::relative::error::TimeOverflowError +pub struct bitcoin_units::parse_int::PrefixedHexError(_) +pub struct bitcoin_units::parse_int::UnprefixedHexError(_) +pub struct bitcoin_units::relative::DisabledLockTimeError(_) +pub struct bitcoin_units::relative::InvalidHeightError +pub struct bitcoin_units::relative::InvalidTimeError +pub struct bitcoin_units::relative::NumberOf512Seconds(_) +pub struct bitcoin_units::relative::NumberOfBlocks(_) +pub struct bitcoin_units::relative::TimeOverflowError +pub struct bitcoin_units::relative::error::DisabledLockTimeError(_) +pub struct bitcoin_units::relative::error::InvalidHeightError +pub struct bitcoin_units::relative::error::InvalidTimeError +pub struct bitcoin_units::relative::error::TimeOverflowError +pub struct bitcoin_units::sequence::Sequence(pub u32) +pub struct bitcoin_units::time::BlockTime(_) +pub struct bitcoin_units::weight::Weight(_) +pub trait bitcoin_units::parse_int::Integer: core::str::traits::FromStr + core::convert::TryFrom + core::marker::Sized + bitcoin_units::parse_int::sealed::Sealed +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >::Output +pub type &bitcoin_units::Amount::Output = >>::Output +pub type &bitcoin_units::Amount::Output = ::Output +pub type &bitcoin_units::FeeRate::Output = ::Output +pub type &bitcoin_units::FeeRate::Output = >>::Output +pub type &bitcoin_units::FeeRate::Output = >::Output +pub type &bitcoin_units::FeeRate::Output = >>::Output +pub type &bitcoin_units::FeeRate::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = >::Output +pub type &bitcoin_units::SignedAmount::Output = >>::Output +pub type &bitcoin_units::SignedAmount::Output = ::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = >>::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = >>::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = >::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::Weight::Output = ::Output +pub type &bitcoin_units::block::BlockHeight::Output = >::Output +pub type &bitcoin_units::block::BlockHeight::Output = >::Output +pub type &bitcoin_units::block::BlockHeight::Output = ::Output +pub type &bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type &bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type &bitcoin_units::block::BlockMtp::Output = >::Output +pub type &bitcoin_units::block::BlockMtp::Output = >::Output +pub type &bitcoin_units::block::BlockMtp::Output = ::Output +pub type &bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type &bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type &bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type &i64::Output = >::Output +pub type &i64::Output = >>::Output +pub type &u64::Output = >::Output +pub type &u64::Output = >::Output +pub type &u64::Output = >>::Output +pub type bitcoin_units::Amount::Err = bitcoin_units::amount::error::ParseError +pub type bitcoin_units::Amount::Error = bitcoin_units::amount::error::OutOfRangeError +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >::Output +pub type bitcoin_units::Amount::Output = >>::Output +pub type bitcoin_units::Amount::Output = ::Output +pub type bitcoin_units::Amount::Output = bitcoin_units::Amount +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Amount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::FeeRate::Output = ::Output +pub type bitcoin_units::FeeRate::Output = >>::Output +pub type bitcoin_units::FeeRate::Output = >::Output +pub type bitcoin_units::FeeRate::Output = >>::Output +pub type bitcoin_units::FeeRate::Output = ::Output +pub type bitcoin_units::FeeRate::Output = bitcoin_units::FeeRate +pub type bitcoin_units::FeeRate::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::SignedAmount::Err = bitcoin_units::amount::error::ParseError +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = >::Output +pub type bitcoin_units::SignedAmount::Output = >>::Output +pub type bitcoin_units::SignedAmount::Output = ::Output +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::SignedAmount +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::SignedAmount::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Weight::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::Weight::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = >>::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = >>::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = >::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = ::Output +pub type bitcoin_units::Weight::Output = bitcoin_units::Weight +pub type bitcoin_units::Weight::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::Weight::Output = u64 +pub type bitcoin_units::amount::Denomination::Err = bitcoin_units::amount::error::ParseDenominationError +pub type bitcoin_units::block::BlockHeight::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeight::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeight::Output = >::Output +pub type bitcoin_units::block::BlockHeight::Output = >::Output +pub type bitcoin_units::block::BlockHeight::Output = ::Output +pub type bitcoin_units::block::BlockHeight::Output = bitcoin_units::block::BlockHeight +pub type bitcoin_units::block::BlockHeight::Output = bitcoin_units::block::BlockHeightInterval +pub type bitcoin_units::block::BlockHeightInterval::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeightInterval::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type bitcoin_units::block::BlockHeightInterval::Output = ::Output +pub type bitcoin_units::block::BlockHeightInterval::Output = bitcoin_units::block::BlockHeightInterval +pub type bitcoin_units::block::BlockMtp::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtp::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtp::Output = >::Output +pub type bitcoin_units::block::BlockMtp::Output = >::Output +pub type bitcoin_units::block::BlockMtp::Output = ::Output +pub type bitcoin_units::block::BlockMtp::Output = bitcoin_units::block::BlockMtp +pub type bitcoin_units::block::BlockMtp::Output = bitcoin_units::block::BlockMtpInterval +pub type bitcoin_units::block::BlockMtpInterval::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtpInterval::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type bitcoin_units::block::BlockMtpInterval::Output = ::Output +pub type bitcoin_units::block::BlockMtpInterval::Output = bitcoin_units::block::BlockMtpInterval +pub type bitcoin_units::locktime::absolute::Height::Err = bitcoin_units::locktime::absolute::error::ParseHeightError +pub type bitcoin_units::locktime::absolute::Height::Error = bitcoin_units::locktime::absolute::error::ConversionError +pub type bitcoin_units::locktime::absolute::Height::Error = bitcoin_units::locktime::absolute::error::ParseHeightError +pub type bitcoin_units::locktime::absolute::LockTime::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::absolute::LockTime::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Err = bitcoin_units::locktime::absolute::error::ParseTimeError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Error = bitcoin_units::locktime::absolute::error::ConversionError +pub type bitcoin_units::locktime::absolute::MedianTimePast::Error = bitcoin_units::locktime::absolute::error::ParseTimeError +pub type bitcoin_units::locktime::relative::LockTime::Error = bitcoin_units::locktime::relative::error::DisabledLockTimeError +pub type bitcoin_units::locktime::relative::NumberOf512Seconds::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOf512Seconds::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Err = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Error = bitcoin_units::block::TooBigForRelativeHeightError +pub type bitcoin_units::locktime::relative::NumberOfBlocks::Error = bitcoin_units::parse_int::ParseIntError +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Add>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Sub>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Div>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Rem>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>::Output +pub type bitcoin_units::result::NumOpResult::Output = as core::ops::arith::Mul>>::Output +pub type bitcoin_units::result::NumOpResult::Output = bitcoin_units::result::NumOpResult +pub type i64::Output = >::Output +pub type i64::Output = >>::Output +pub type i64::Output = bitcoin_units::result::NumOpResult +pub type u64::Output = >::Output +pub type u64::Output = >::Output +pub type u64::Output = >>::Output +pub type u64::Output = bitcoin_units::Weight +pub type u64::Output = bitcoin_units::result::NumOpResult diff --git a/base58/Cargo.toml b/base58/Cargo.toml index 7a64cf5abb..a87ec89073 100644 --- a/base58/Cargo.toml +++ b/base58/Cargo.toml @@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies", "encoding"] keywords = ["bitcoin", "base58", "encode", "decode", "checksum"] readme = "README.md" edition = "2021" -rust-version = "1.63.0" +rust-version = "1.74.0" exclude = ["tests", "contrib"] [features] @@ -22,7 +22,7 @@ hashes = { package = "bitcoin_hashes", path = "../hashes", default-features = fa internals = { package = "bitcoin-internals", path = "../internals" } [dev-dependencies] -hex = { package = "hex-conservative", version = "0.3.0", default-features = false, features = ["alloc"] } +hex_lit = "0.1.1" [package.metadata.docs.rs] all-features = true @@ -30,3 +30,7 @@ rustdoc-args = ["--cfg", "docsrs"] [lints.rust] unexpected_cfgs = { level = "deny", check-cfg = ['cfg(bench)', 'cfg(fuzzing)', 'cfg(kani)' ] } + +[lints.clippy] +redundant_clone = "warn" +use_self = "warn" diff --git a/base58/README.md b/base58/README.md index 4b530e94ed..34b576db74 100644 --- a/base58/README.md +++ b/base58/README.md @@ -19,12 +19,3 @@ obviously named ones differ from this crate because: This crate uses [bitcoin_hashes](https://crates.io/crates/bitcoin_hashes) when hashing to calculate the checksum. - -## Minimum Supported Rust Version (MSRV) - -This library should always compile with any combination of features on **Rust 1.63.0**. - -## Licensing - -The code in this project is licensed under the [Creative Commons CC0 1.0 Universal license](../LICENSE). -We use the [SPDX license list](https://spdx.org/licenses/) and [SPDX IDs](https://spdx.dev/ids/). diff --git a/base58/contrib/extra_lints.sh b/base58/contrib/extra_lints.sh new file mode 100755 index 0000000000..5e7f0c948d --- /dev/null +++ b/base58/contrib/extra_lints.sh @@ -0,0 +1,4 @@ +# No shebang, this file should not be executed. +# shellcheck disable=SC2148 + +cargo clippy --all-targets --no-default-features --keep-going -- -D warnings diff --git a/base58/src/error.rs b/base58/src/error.rs index 6b7b21f6c3..2ec8f5be50 100644 --- a/base58/src/error.rs +++ b/base58/src/error.rs @@ -118,7 +118,7 @@ impl fmt::Display for IncorrectChecksumError { #[cfg(feature = "std")] impl std::error::Error for IncorrectChecksumError {} -/// The decode base58 data was too short (require at least 4 bytes for checksum). +/// The decoded base58 data was too short (require at least 4 bytes for checksum). #[derive(Debug, Clone, PartialEq, Eq)] pub(super) struct TooShortError { /// The length of the decoded data. diff --git a/base58/src/lib.rs b/base58/src/lib.rs index be1026fbd5..85debd8718 100644 --- a/base58/src/lib.rs +++ b/base58/src/lib.rs @@ -8,7 +8,6 @@ #![cfg(feature = "alloc")] #![no_std] // Experimental features we need. -#![cfg_attr(docsrs, feature(doc_auto_cfg))] #![cfg_attr(bench, feature(test))] // Coding conventions. #![warn(missing_docs)] @@ -21,7 +20,7 @@ #![allow(clippy::needless_question_mark)] // https://github.com/rust-bitcoin/rust-bitcoin/pull/2134 #![allow(clippy::manual_range_contains)] // More readable than clippy's format. #![allow(clippy::incompatible_msrv)] // Has FPs and we're testing it which is more reliable anyway. -#![allow(clippy::uninlined_format_args)] // Allow `format!("{}", x)`instead of enforcing `format!("{x}")` +#![allow(clippy::uninlined_format_args)] // Allow `format!("{}", x)` instead of enforcing `format!("{x}")` extern crate alloc; @@ -194,7 +193,7 @@ trait Buffer: Sized { } impl Buffer for Vec { - fn push(&mut self, val: u8) { Vec::push(self, val) } + fn push(&mut self, val: u8) { Self::push(self, val) } fn slice(&self) -> &[u8] { self } @@ -202,7 +201,7 @@ impl Buffer for Vec { } impl Buffer for ArrayVec { - fn push(&mut self, val: u8) { ArrayVec::push(self, val) } + fn push(&mut self, val: u8) { Self::push(self, val) } fn slice(&self) -> &[u8] { self.as_slice() } @@ -253,7 +252,7 @@ where mod tests { use alloc::vec; - use hex::FromHex as _; + use hex_lit::hex; use super::*; @@ -282,7 +281,7 @@ mod tests { assert_eq!(&res, exp); // Addresses - let addr = Vec::from_hex("00f8917303bfa8ef24f292e8fa1419b20460ba064d").unwrap(); + let addr = hex!("00f8917303bfa8ef24f292e8fa1419b20460ba064d"); assert_eq!(&encode_check(&addr[..]), "1PfJpZsjreyVrqeoAfabrRwwjQyoSQMmHH"); } @@ -300,8 +299,8 @@ mod tests { // Addresses assert_eq!( - decode_check("1PfJpZsjreyVrqeoAfabrRwwjQyoSQMmHH").ok(), - Some(Vec::from_hex("00f8917303bfa8ef24f292e8fa1419b20460ba064d").unwrap()) + decode_check("1PfJpZsjreyVrqeoAfabrRwwjQyoSQMmHH").ok().unwrap().as_slice(), + hex!("00f8917303bfa8ef24f292e8fa1419b20460ba064d") ); // Non Base58 char. assert_eq!(decode("¢").unwrap_err(), InvalidCharacterError::new(194)); diff --git a/benches/Cargo.toml b/benches/Cargo.toml new file mode 100644 index 0000000000..4836e2b802 --- /dev/null +++ b/benches/Cargo.toml @@ -0,0 +1,99 @@ +[package] +name = "bitcoin-benches" +version = "0.1.0" +license = "CC0-1.0" +description = "Criterion benchmarks for rust-bitcoin" +edition = "2021" + +[dependencies] +bitcoin = { path = "../bitcoin", default-features = false, features = ["std"] } +bitcoin_hashes = { path = "../hashes" } +chacha20-poly1305 = { path = "../chacha20_poly1305" } + +criterion = "0.7" +hex_lit = "0.1.1" + +[lints.clippy] +use_self = "warn" + +[[bench]] +name = "block" +path = "bitcoin/block.rs" +harness = false + +[[bench]] +name = "transaction" +path = "bitcoin/transaction.rs" +harness = false + +[[bench]] +name = "witness" +path = "bitcoin/witness.rs" +harness = false + + +[[bench]] +name = "chacha20poly1305" +path = "chacha20_poly1305/chacha20poly1305.rs" +harness = false + +[[bench]] +name = "chacha20" +path = "chacha20_poly1305/chacha20.rs" +harness = false + + +[[bench]] +name = "cmp" +path = "hashes/cmp.rs" +harness = false + +[[bench]] +name = "hash160" +path = "hashes/hash160.rs" +harness = false + +[[bench]] +name = "hmac" +path = "hashes/hmac.rs" +harness = false + +[[bench]] +name = "ripemd160" +path = "hashes/ripemd160.rs" +harness = false + +[[bench]] +name = "sha1" +path = "hashes/sha1.rs" +harness = false + +[[bench]] +name = "sha3_256" +path = "hashes/sha3_256.rs" +harness = false + +[[bench]] +name = "sha256" +path = "hashes/sha256.rs" +harness = false + +[[bench]] +name = "sha384" +path = "hashes/sha384.rs" +harness = false + +[[bench]] +name = "sha512_256" +path = "hashes/sha512_256.rs" +harness = false + +[[bench]] +name = "sha512" +path = "hashes/sha512.rs" +harness = false + +[[bench]] +name = "siphash24" +path = "hashes/siphash24.rs" +harness = false diff --git a/benches/README.md b/benches/README.md new file mode 100644 index 0000000000..c4fa673be2 --- /dev/null +++ b/benches/README.md @@ -0,0 +1,77 @@ +# Rust Bitcoin Benchmarks + +Criterion based benchmarks for `rust-bitcoin`. + +## Minimum Supported Rust Version (MSRV) + +This crate’s MSRV is determined by its Criterion dependency. It currently requires **Rust 1.81**. +This higher MSRV applies only to the benches crate and does not affect other crates in this repository. + +## Running the benchmarks + +Examples below are run from within the crates folder `benches/`, if running from the repo root pass in `--manifest-path benches/Cargo.toml`. + +Run all benchmarks in this crate: + +```bash +cargo bench +``` + +Run a specific benchmark target: + +```bash +cargo bench --bench block +``` + +Pass options through to Criterion (see [More information](#more-information) for details): + +```bash +# Save current results as a baseline named "before-change" +cargo bench -- --save-baseline before-change + +# Compare to the saved baseline +cargo bench -- --baseline before-change +``` + +View reports: + +- Criterion writes detailed html reports that are linked to in `target/criterion/report/index.html`. + +## Adding a new benchmark + +1. Create a new Rust file for your benchmark in the subfolder for the crate e.g. `benches/bitcoin/base58.rs`. +2. Add it in `benches/Cargo.toml` including the path, with `harness = false`: + +```toml +[[bench]] +name = "base58" +path = "bitcoin/base58.rs" +harness = false +``` + +3. Criterion code template: + +```rust +use criterion::{criterion_group, criterion_main, Criterion}; + +fn bench_new_bench(c: &mut Criterion) { + c.bench_function("new_bench", |b| { + b.iter(|| { + // Benchmark code + }) + }); +} + +criterion_group!(benches, bench_new_bench); +criterion_main!(benches); +``` + +## More information + +- Criterion Book: +- Criterion GitHub: + +## Licensing + +The code in this project is licensed under the [Creative Commons CC0 1.0 Universal license](../LICENSE). +We use the [SPDX license list](https://spdx.org/licenses/) and [SPDX IDs](https://spdx.dev/ids/). diff --git a/benches/bitcoin/block.rs b/benches/bitcoin/block.rs new file mode 100644 index 0000000000..6ac155c702 --- /dev/null +++ b/benches/bitcoin/block.rs @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::time::Duration; +use std::hint::black_box; + +use bitcoin::blockdata::block::Block; +use bitcoin::consensus::{deserialize, Decodable, Encodable}; +use bitcoin::io::sink; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_block(c: &mut Criterion) { + let raw_block = include_bytes!("../../bitcoin/tests/data/mainnet_block_000000000000000000000c835b2adcaedc20fdf6ee440009c249452c726dafae.raw"); + assert_eq!(raw_block.len(), 1_381_836); + let block: Block = deserialize(&raw_block[..]).unwrap(); + + let mut g = c.benchmark_group("block"); + g.throughput(Throughput::Bytes(raw_block.len() as u64)); + g.measurement_time(Duration::from_secs(10)).warm_up_time(Duration::from_secs(3)); + + g.bench_function(BenchmarkId::new("stream_reader", "big"), |b| { + let big_block = black_box(raw_block.as_ref()); + b.iter(|| { + let mut reader = big_block; + let blk = Block::consensus_decode(&mut reader).unwrap(); + black_box(blk); + }); + }); + + g.bench_function(BenchmarkId::new("serialize", "big"), |b| { + let mut data = Vec::with_capacity(raw_block.len()); + b.iter(|| { + let result = block.consensus_encode(&mut data); + black_box(&result); + data.clear(); + }); + }); + + g.bench_function(BenchmarkId::new("serialize_logic", "big"), |b| { + b.iter(|| { + let size = block.consensus_encode(&mut sink()); + let _ = black_box(size); + }); + }); + + g.bench_function(BenchmarkId::new("deserialize", "big"), |b| { + b.iter(|| { + let blk: Block = deserialize(&raw_block[..]).unwrap(); + black_box(blk); + }); + }); + + g.finish(); +} + +criterion_group!(benches, bench_block); +criterion_main!(benches); diff --git a/benches/bitcoin/transaction.rs b/benches/bitcoin/transaction.rs new file mode 100644 index 0000000000..ab8101faa5 --- /dev/null +++ b/benches/bitcoin/transaction.rs @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin::blockdata::transaction::Transaction; +use bitcoin::blockdata::transaction::TransactionExt as _; // for total_size() +use bitcoin::consensus::{encode, Encodable}; +use bitcoin::io::sink; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; + +const SOME_TX: &str = "0100000001a15d57094aa7a21a28cb20b59aab8fc7d1149a3bdbcddba9c622e4f5f6a99ece010000006c493046022100f93bb0e7d8db7bd46e40132d1f8242026e045f03a0efe71bbb8e3f475e970d790221009337cd7f1f929f00cc6ff01f03729b069a7c21b59b1736ddfee5db5946c5da8c0121033b9b137ee87d5a812d6f506efdd37f0affa7ffc310711c06c7f3e097c9447c52ffffffff0100e1f505000000001976a9140389035a9225b3839e2bbf32d826a1e222031fd888ac00000000"; + +fn bench_tx(c: &mut Criterion) { + let mut g = c.benchmark_group("transaction"); + + g.bench_function(BenchmarkId::new("size", "some"), |b| { + let mut tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); + b.iter(|| { + black_box(black_box(&mut tx).total_size()); + }); + }); + + g.bench_function(BenchmarkId::new("serialize", "some"), |b| { + let tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); + let mut data = Vec::with_capacity(SOME_TX.len() / 2); + b.iter(|| { + let result = tx.consensus_encode(&mut data); + black_box(&result); + data.clear(); + }); + }); + + g.bench_function(BenchmarkId::new("serialize_logic", "some"), |b| { + let tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); + b.iter(|| { + let size = tx.consensus_encode(&mut sink()); + let _ = black_box(size); + }); + }); + + g.bench_function(BenchmarkId::new("deserialize", "raw_bytes"), |b| { + let raw_tx = hex_lit::hex!(SOME_TX); + b.iter(|| { + let tx: Transaction = encode::deserialize(&raw_tx).unwrap(); + black_box(tx); + }); + }); + + g.bench_function(BenchmarkId::new("deserialize_hex", "string"), |b| { + b.iter(|| { + let tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); + black_box(tx); + }); + }); + + g.finish(); +} + +criterion_group!(benches, bench_tx); +criterion_main!(benches); diff --git a/benches/bitcoin/witness.rs b/benches/bitcoin/witness.rs new file mode 100644 index 0000000000..22adf16f6a --- /dev/null +++ b/benches/bitcoin/witness.rs @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin::blockdata::witness::Witness; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; + +fn bench_witness(c: &mut Criterion) { + let mut g = c.benchmark_group("witness"); + + g.bench_function(BenchmarkId::new("to_vec", "big"), |b| { + let raw_witness = [[1u8]; 5]; + let witness = Witness::from_slice(&raw_witness); + b.iter(|| { + black_box(witness.to_vec()); + }); + }); + + g.bench_function(BenchmarkId::new("to_vec", "small"), |b| { + let raw_witness = vec![vec![1u8]; 3]; + let witness = Witness::from_slice(&raw_witness); + b.iter(|| { + black_box(witness.to_vec()); + }); + }); + + g.finish(); +} + +criterion_group!(benches, bench_witness); +criterion_main!(benches); diff --git a/benches/chacha20_poly1305/chacha20.rs b/benches/chacha20_poly1305/chacha20.rs new file mode 100644 index 0000000000..9585929503 --- /dev/null +++ b/benches/chacha20_poly1305/chacha20.rs @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; +use std::time::Duration; + +use chacha20_poly1305::{chacha20::ChaCha20, Key, Nonce}; + +fn bench_chacha20(c: &mut Criterion) { + let mut g = c.benchmark_group("chacha20"); + g.measurement_time(Duration::from_secs(5)).warm_up_time(Duration::from_secs(2)); + + for &size in &[10usize, 1024, 65536] { + let key = Key::new([0u8; 32]); + let nonce = Nonce::new([0u8; 12]); + let count = 1u32; + let mut cipher = ChaCha20::new(key, nonce, count); + let mut buf = vec![0u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("apply_keystream", size), |b| { + b.iter(|| { + cipher.apply_keystream(black_box(&mut buf)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_chacha20); +criterion_main!(benches); diff --git a/benches/chacha20_poly1305/chacha20poly1305.rs b/benches/chacha20_poly1305/chacha20poly1305.rs new file mode 100644 index 0000000000..7719734b3a --- /dev/null +++ b/benches/chacha20_poly1305/chacha20poly1305.rs @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; +use std::time::Duration; + +use chacha20_poly1305::{ChaCha20Poly1305, Key, Nonce}; + +fn bench_chacha20poly1305(c: &mut Criterion) { + let mut g = c.benchmark_group("chacha20poly1305"); + g.measurement_time(Duration::from_secs(5)).warm_up_time(Duration::from_secs(2)); + + for &size in &[128usize, 1024, 16 * 1024, 64 * 1024] { + let key = Key::new([0u8; 32]); + let nonce = Nonce::new([0u8; 12]); + + let pt = vec![0u8; size]; + let aad: &[u8] = b"dummy_aad"; + + g.throughput(Throughput::Bytes(size as u64)); + + g.bench_function(BenchmarkId::new("encrypt_no_aad", size), |b| { + b.iter(|| { + let mut buf = pt.clone(); + let cipher = ChaCha20Poly1305::new(key, nonce); + let tag = cipher.encrypt(black_box(&mut buf), None); + black_box(tag); + }); + }); + + g.bench_function(BenchmarkId::new("encrypt_with_aad", size), |b| { + b.iter(|| { + let mut buf = pt.clone(); + let cipher = ChaCha20Poly1305::new(key, nonce); + let tag = cipher.encrypt(black_box(&mut buf), Some(aad)); + black_box(tag); + }); + }); + + let mut ct = pt.clone(); + let tag = ChaCha20Poly1305::new(key, nonce).encrypt(&mut ct, Some(aad)); + + g.bench_function(BenchmarkId::new("decrypt_ok", size), |b| { + b.iter(|| { + let mut buf = ct.clone(); + let cipher = ChaCha20Poly1305::new(key, nonce); + let res = cipher.decrypt(black_box(&mut buf), tag, Some(aad)); + res.unwrap(); + black_box(()); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_chacha20poly1305); +criterion_main!(benches); diff --git a/benches/hashes/cmp.rs b/benches/hashes/cmp.rs new file mode 100644 index 0000000000..13695c323f --- /dev/null +++ b/benches/hashes/cmp.rs @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha256, sha512}; +use bitcoin_hashes::cmp::fixed_time_eq; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; + +fn bench_cmp(c: &mut Criterion) { + let mut g = c.benchmark_group("cmp"); + + // 32-byte comparisons + let a32 = sha256::Hash::hash(&[0; 1]); + let b32eq = sha256::Hash::hash(&[0; 1]); + let b32ne = sha256::Hash::hash(&[1; 1]); + + g.bench_function(BenchmarkId::new("ct_eq", 32), |b| { + b.iter(|| fixed_time_eq(black_box(a32.as_byte_array()), black_box(b32eq.as_byte_array()))); + }); + g.bench_function(BenchmarkId::new("slice_eq", 32), |b| { + b.iter(|| black_box(a32.as_byte_array() == b32eq.as_byte_array())); + }); + g.bench_function(BenchmarkId::new("ct_ne", 32), |b| { + b.iter(|| fixed_time_eq(black_box(a32.as_byte_array()), black_box(b32ne.as_byte_array()))); + }); + g.bench_function(BenchmarkId::new("slice_ne", 32), |b| { + b.iter(|| black_box(a32.as_byte_array() == b32ne.as_byte_array())); + }); + + // 64-byte comparisons + let a64 = sha512::Hash::hash(&[0; 1]); + let b64eq = sha512::Hash::hash(&[0; 1]); + let b64ne = sha512::Hash::hash(&[1; 1]); + + g.bench_function(BenchmarkId::new("ct_eq", 64), |b| { + b.iter(|| fixed_time_eq(black_box(a64.as_byte_array()), black_box(b64eq.as_byte_array()))); + }); + g.bench_function(BenchmarkId::new("slice_eq", 64), |b| { + b.iter(|| black_box(a64.as_byte_array() == b64eq.as_byte_array())); + }); + g.bench_function(BenchmarkId::new("ct_ne", 64), |b| { + b.iter(|| fixed_time_eq(black_box(a64.as_byte_array()), black_box(b64ne.as_byte_array()))); + }); + g.bench_function(BenchmarkId::new("slice_ne", 64), |b| { + b.iter(|| black_box(a64.as_byte_array() == b64ne.as_byte_array())); + }); + + g.finish(); +} + +criterion_group!(benches, bench_cmp); +criterion_main!(benches); diff --git a/benches/hashes/hash160.rs b/benches/hashes/hash160.rs new file mode 100644 index 0000000000..452fd454d0 --- /dev/null +++ b/benches/hashes/hash160.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{hash160, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_hash160(c: &mut Criterion) { + let mut g = c.benchmark_group("hash160"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = hash160::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_hash160); +criterion_main!(benches); diff --git a/benches/hashes/hmac.rs b/benches/hashes/hmac.rs new file mode 100644 index 0000000000..adc90e515a --- /dev/null +++ b/benches/hashes/hmac.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha256, HashEngine as _, HmacEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_hmac(c: &mut Criterion) { + let mut g = c.benchmark_group("hmac_sha256"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = HmacEngine::::new(&[]); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_hmac); +criterion_main!(benches); diff --git a/benches/hashes/ripemd160.rs b/benches/hashes/ripemd160.rs new file mode 100644 index 0000000000..b786e77af9 --- /dev/null +++ b/benches/hashes/ripemd160.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{ripemd160, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_ripemd160(c: &mut Criterion) { + let mut g = c.benchmark_group("ripemd160"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = ripemd160::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_ripemd160); +criterion_main!(benches); diff --git a/benches/hashes/sha1.rs b/benches/hashes/sha1.rs new file mode 100644 index 0000000000..a63773f594 --- /dev/null +++ b/benches/hashes/sha1.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha1, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_sha1(c: &mut Criterion) { + let mut g = c.benchmark_group("sha1"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = sha1::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_sha1); +criterion_main!(benches); diff --git a/benches/hashes/sha256.rs b/benches/hashes/sha256.rs new file mode 100644 index 0000000000..a8f2d1046a --- /dev/null +++ b/benches/hashes/sha256.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha256, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_sha256(c: &mut Criterion) { + let mut g = c.benchmark_group("sha256"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = sha256::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_sha256); +criterion_main!(benches); diff --git a/benches/hashes/sha384.rs b/benches/hashes/sha384.rs new file mode 100644 index 0000000000..77004ccf27 --- /dev/null +++ b/benches/hashes/sha384.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha384, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_sha384(c: &mut Criterion) { + let mut g = c.benchmark_group("sha384"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = sha384::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_sha384); +criterion_main!(benches); diff --git a/benches/hashes/sha3_256.rs b/benches/hashes/sha3_256.rs new file mode 100644 index 0000000000..2d4e1087d2 --- /dev/null +++ b/benches/hashes/sha3_256.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha3_256, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_sha3_256(c: &mut Criterion) { + let mut g = c.benchmark_group("sha3_256"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = sha3_256::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_sha3_256); +criterion_main!(benches); diff --git a/benches/hashes/sha512.rs b/benches/hashes/sha512.rs new file mode 100644 index 0000000000..c72d9e61cb --- /dev/null +++ b/benches/hashes/sha512.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha512, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_sha512(c: &mut Criterion) { + let mut g = c.benchmark_group("sha512"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = sha512::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_sha512); +criterion_main!(benches); diff --git a/benches/hashes/sha512_256.rs b/benches/hashes/sha512_256.rs new file mode 100644 index 0000000000..c4cc075d54 --- /dev/null +++ b/benches/hashes/sha512_256.rs @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{sha512_256, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_sha512_256(c: &mut Criterion) { + let mut g = c.benchmark_group("sha512_256"); + + for &size in &[10usize, 1024, 65536] { + let mut engine = sha512_256::Hash::engine(); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + g.finish(); +} + +criterion_group!(benches, bench_sha512_256); +criterion_main!(benches); diff --git a/benches/hashes/siphash24.rs b/benches/hashes/siphash24.rs new file mode 100644 index 0000000000..f25d6d664f --- /dev/null +++ b/benches/hashes/siphash24.rs @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: CC0-1.0 + +use std::hint::black_box; + +use bitcoin_hashes::{siphash24, HashEngine}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; + +fn bench_siphash24(c: &mut Criterion) { + let mut g = c.benchmark_group("siphash24"); + + for &size in &[1024usize, 65536] { + let mut engine = siphash24::HashEngine::with_keys(0, 0); + let bytes = vec![1u8; size]; + g.throughput(Throughput::Bytes(size as u64)); + g.bench_function(BenchmarkId::new("engine_input", size), |b| { + b.iter(|| { + engine.input(black_box(&bytes)); + }); + }); + } + + // Hash-with-keys and to_u64 variants + let k0 = 0x_07_06_05_04_03_02_01_00; + let k1 = 0x_0f_0e_0d_0c_0b_0a_09_08; + let bytes = vec![1u8; 1024]; + g.throughput(Throughput::Bytes(bytes.len() as u64)); + g.bench_function("hash_with_keys/1k", |b| { + b.iter(|| { + let _ = siphash24::Hash::hash_with_keys(k0, k1, black_box(&bytes)); + }); + }); + g.bench_function("hash_to_u64_with_keys/1k", |b| { + b.iter(|| { + let _ = siphash24::Hash::hash_to_u64_with_keys(k0, k1, black_box(&bytes)); + }); + }); + + g.finish(); +} + +criterion_group!(benches, bench_siphash24); +criterion_main!(benches); diff --git a/bip158/CHANGELOG.md b/bip158/CHANGELOG.md new file mode 100644 index 0000000000..bf34213b95 --- /dev/null +++ b/bip158/CHANGELOG.md @@ -0,0 +1,3 @@ +# 0.1.0 - 2025-12-09 + +* Initial release of the `github.com/rust-bitcoin/rust-bitcoin/bip158` crate as `bip158`. diff --git a/bip158/Cargo.toml b/bip158/Cargo.toml new file mode 100644 index 0000000000..b0ac9c2cd3 --- /dev/null +++ b/bip158/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "bitcoin-bip158" +version = "0.0.0" +authors = ["Andrew Poelstra "] +license = "CC0-1.0" +repository = "https://github.com/rust-bitcoin/rust-bitcoin" +description = "Golomb-rice coded filters for set membership query." +categories = ["cryptography::cryptocurrencies"] +keywords = ["bitcoin", "peer-to-peer", "cryptography"] +readme = "README.md" +edition = "2021" +rust-version = "1.74.0" +exclude = ["tests", "contrib"] + +[dependencies] + +[dev-dependencies] + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] + +[lints.clippy] +redundant_clone = "warn" +use_self = "warn" diff --git a/bip158/README.md b/bip158/README.md new file mode 100644 index 0000000000..547ee29d28 --- /dev/null +++ b/bip158/README.md @@ -0,0 +1,3 @@ +# BIP-158 + +Implementation of [BIP-158](https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki) golomb coded block filters for private light client set membership query. diff --git a/bip158/contrib/extra_lints.sh b/bip158/contrib/extra_lints.sh new file mode 100755 index 0000000000..5e7f0c948d --- /dev/null +++ b/bip158/contrib/extra_lints.sh @@ -0,0 +1,4 @@ +# No shebang, this file should not be executed. +# shellcheck disable=SC2148 + +cargo clippy --all-targets --no-default-features --keep-going -- -D warnings diff --git a/bip158/contrib/test_vars.sh b/bip158/contrib/test_vars.sh new file mode 100644 index 0000000000..88e2d26e18 --- /dev/null +++ b/bip158/contrib/test_vars.sh @@ -0,0 +1,14 @@ +# No shebang, this file should not be executed. +# shellcheck disable=SC2148 +# +# disable verify unused vars, despite the fact that they are used when sourced +# shellcheck disable=SC2034 + +# Test all these features with "std" enabled. +FEATURES_WITH_STD="" + +# Test all these features without "std" enabled. +FEATURES_WITHOUT_STD="" + +# Run these examples. +EXAMPLES="" diff --git a/bip158/src/lib.rs b/bip158/src/lib.rs new file mode 100644 index 0000000000..5ef8625780 --- /dev/null +++ b/bip158/src/lib.rs @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: CC0-1.0 + +//! # Rust Bitcoin BIP-158 implementation. + +// Coding conventions. +#![warn(missing_docs)] +#![warn(deprecated_in_future)] +#![doc(test(attr(warn(unused))))] +// Pedantic lints that we enforce. +#![warn(clippy::return_self_not_must_use)] +// Exclude lints we don't think are valuable. +#![allow(clippy::needless_question_mark)] // https://github.com/rust-bitcoin/rust-bitcoin/pull/2134 +#![allow(clippy::manual_range_contains)] // More readable than clippy's format. +#![allow(clippy::uninlined_format_args)] // Allow `format!("{}", x)`instead of enforcing `format!("{x}")` diff --git a/bitcoin/CHANGELOG.md b/bitcoin/CHANGELOG.md index bbe596b713..64722ec9cf 100644 --- a/bitcoin/CHANGELOG.md +++ b/bitcoin/CHANGELOG.md @@ -1,39 +1,56 @@ -# Unreleased +# 0.33.0-beta.0 - 2025-11-03 -- TODO: Make a comment about `Amount::MAX_MONEY` (perhaps here in `bitcoin` release notes as well as in `amount`) +This series of beta releases is meant for two things: -- Use MAX_MONEY in serde regression test [#3950](https://github.com/rust-bitcoin/rust-bitcoin/pull/3950) +1. To allow testing of the upcoming `bitcoin v0.33.0`. Its been a long + time since we released and there is a lot in this. -# 0.33.0-alpha.0 - 2024-11-18 +2. To allow testing of the `1.0.0` RC releases of: -This series of alpha releases is meant for two things: + - `bitcoin-primitives` + - `bitcoin-units` + - `bitcoin-consensus-encoding` -1. To facilitate testing of `primitives 0.101`. -2. To allow testing of upcoming `1.0` releases of: - - - `bitcoin_hashes` - - `hex` - - `bitcoin-io` - - `primitives` - - `units` - - `ordered` - -You likely want to explicitly set the version if doing testing. `cargo` can be surprising when there -is a `-` in the version number. +`cargo` can be surprising when there is a `-` in the version number +(see discussion on [#5229](https://github.com/rust-bitcoin/rust-bitcoin/discussions/5229)). We do not currently intend on releasing `bitcoin 0.33.0` until the `1.0` releases above are done. For changes to our dependencies included in this release see: -- `bitcoin_hashes 0.15`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/hashes/CHANGELOG.md) +- `bitcoin_hashes 0.17`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/hashes/CHANGELOG.md) +- `hex-conservative 1.0.0`: [changelog](https://github.com/rust-bitcoin/hex-conservative/blob/1.x/CHANGELOG.md) - `hex-conservative 0.3`: [changelog](https://github.com/rust-bitcoin/hex-conservative/blob/master/CHANGELOG.md) - `bitcoin-io 0.2`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/io/CHANGELOG.md) -- `bitcoin-primitives: 0.101`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/primitives/CHANGELOG.md) -- `bitcoin-units 0.2`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/units/CHANGELOG.md) -- `bitcoinconsensus: 0.106.0+26`: [changelog](https://github.com/rust-bitcoin/rust-bitcoinconsensus/blob/master/CHANGELOG.md) +- `bitcoin-primitives: 1.0.0-rc`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/primitives/CHANGELOG.md) +- `bitcoin-units 1.0.0-rc`: [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/units/CHANGELOG.md) +- `bitcoin-consensus-encoding 1.0.0-rc` [changelog](https://github.com/rust-bitcoin/rust-bitcoin/blob/master/consensus_encoding/CHANGELOG.md) + +## Worthy on note + +This release introduces an upper limit on the `Amount` type. + +- Remove `Amount::MAX` and replace it with the value in `MAX_MONEY` [#3691](https://github.com/rust-bitcoin/rust-bitcoin/issues/3691) +- Prepare to enforce `MAX_MONEY` invariant [#4164](https://github.com/rust-bitcoin/rust-bitcoin/pull/4164) +- Enforce `MAX_MONEY` invariant in amount types [#4157](https://github.com/rust-bitcoin/rust-bitcoin/pull/4157) +- Use `MAX_MONEY` in serde regression test [#3950](https://github.com/rust-bitcoin/rust-bitcoin/pull/3950) + +The `serde` serialization for `Psbt` has changed. + +- BREAKING: Change `Psbt` serde implementations [#4496](https://github.com/rust-bitcoin/rust-bitcoin/pull/4496) ## Changes +- Deprecate unchecked `amount` ops [#3759](https://github.com/rust-bitcoin/rust-bitcoin/pull/3759) +- Change parameter type used for whole bitcoin amounts [#3744](https://github.com/rust-bitcoin/rust-bitcoin/pull/3744) +- Add `Weight::to_kwu_ceil` [#3740](https://github.com/rust-bitcoin/rust-bitcoin/pull/3740) +- Remove `Weight::from_wu_usize` function [#3738](https://github.com/rust-bitcoin/rust-bitcoin/pull/3738) +- Move script hash types to `primitives` [#3734](https://github.com/rust-bitcoin/rust-bitcoin/pull/3734) +- units: Unify and flesh out ops impls [#3728](https://github.com/rust-bitcoin/rust-bitcoin/pull/3728) +- units: Seal the `Integer` trait [#3724](https://github.com/rust-bitcoin/rust-bitcoin/pull/3724) +- base58ck: Bump version to `0.2.0` [#3717](https://github.com/rust-bitcoin/rust-bitcoin/pull/3717) +- Explicitly define `Ord` for `NodeInfo` [#3699](https://github.com/rust-bitcoin/rust-bitcoin/pull/3699) +- Change `Amount::MAX` from `u64::MAX` to `Amount::MAX_MONEY` [#3693](https://github.com/rust-bitcoin/rust-bitcoin/pull/3693) - Fix psbt fuzz crash [#3667](https://github.com/rust-bitcoin/rust-bitcoin/pull/3667) - Update `from_next_work_required` to take an `i64` for timespan [#3660](https://github.com/rust-bitcoin/rust-bitcoin/pull/3660) - Account for data pushing opcodes in `is_standard_op_return` [#3643](https://github.com/rust-bitcoin/rust-bitcoin/pull/3643) @@ -95,13 +112,13 @@ For changes to our dependencies included in this release see: - Pass keys by value [#2868](https://github.com/rust-bitcoin/rust-bitcoin/pull/2868) - Clarify the meaning of `Height` & `Time` based locktime [#2858](https://github.com/rust-bitcoin/rust-bitcoin/pull/2858) - Add API for extracting the inner payload of `RawNetworkMessage` [#2839](https://github.com/rust-bitcoin/rust-bitcoin/pull/2839) -- Update `bitcoinconsensus` version to `0.106.0+26` [#2833] (https://github.com/rust-bitcoin/rust-bitcoin/pull/2833) +- Update `bitcoinconsensus` version to `0.106.0+26` [#2833](https://github.com/rust-bitcoin/rust-bitcoin/pull/2833) - Make `difficulty_float` general to all networks [#2816](https://github.com/rust-bitcoin/rust-bitcoin/pull/2816) - Add const modifier to `Magic::from_bytes` [#2815](https://github.com/rust-bitcoin/rust-bitcoin/pull/2815) - Add an `AddressData` type [#2808](https://github.com/rust-bitcoin/rust-bitcoin/pull/2808) - Make `Address:p2sh_from_hash` public [#2795](https://github.com/rust-bitcoin/rust-bitcoin/pull/2795) - Enable getting the witness program from an address [#2796](https://github.com/rust-bitcoin/rust-bitcoin/pull/2796) -- Enforce script size limit when hashing scripts [##2794](https://github.com/rust-bitcoin/rust-bitcoin/pull/2794https://github.com/rust-bitcoin/rust-bitcoin/pull/#2794) +- Enforce script size limit when hashing scripts [#2794](https://github.com/rust-bitcoin/rust-bitcoin/pull/2794) - Deprecate `to_vec` in favour of `to_bytes` [#2768](https://github.com/rust-bitcoin/rust-bitcoin/pull/2768) - Flesh out hex unit parsing API [#2765](https://github.com/rust-bitcoin/rust-bitcoin/pull/2765) - Bench `base58` encoding and remove `SmallVec` to improve perf [#2759](https://github.com/rust-bitcoin/rust-bitcoin/pull/2759) @@ -121,6 +138,21 @@ For changes to our dependencies included in this release see: - Change `TxIn::default()` to `TxIn::EMPTY_COINBASE` if appropriate. - Change `to_raw_hash()` to `to_byte_array()`. - `bitcoin::error::UnprefixedHexError` moved to `bitcoin::parse::UnprefixedHexError`. + +# 0.32.7 - 2025-07-30 + +- Backport - Use `_u32` in `FeeRate` constructor instead of `_unchecked` [#4552](https://github.com/rust-bitcoin/rust-bitcoin/pull/4552) +- Backport - Add support for pay to anchor outputs [#4691](https://github.com/rust-bitcoin/rust-bitcoin/pull/4691) +- Backport - Remove `non_exhaustive` from `Network` [#4658](https://github.com/rust-bitcoin/rust-bitcoin/pull/4658) + +# 0.32.6 - 2025-05-06 + +- Backport - Fix `is_invalid_use_of_sighash_single()` incompatibility with Bitcoin Core [#4122](https://github.com/rust-bitcoin/rust-bitcoin/pull/4122) +- Backport - Backport witness fixes [#4101](https://github.com/rust-bitcoin/rust-bitcoin/pull/4101) +- Backport - bip32: Return error when attempting to derive past maximum depth [#4434](https://github.com/rust-bitcoin/rust-bitcoin/pull/4434) +- Backport - Add `XOnlyPublicKey` support for PSBT key retrieval and improve Taproot signing [#4443](https://github.com/rust-bitcoin/rust-bitcoin/pull/4443) +- Backport - Add methods to retrieve inner types [#4450](https://github.com/rust-bitcoin/rust-bitcoin/pull/4450) + # 0.32.5 - 2024-11-27 - Backport - Re-export `bech32` crate [#3662](https://github.com/rust-bitcoin/rust-bitcoin/pull/3662) @@ -138,7 +170,7 @@ For changes to our dependencies included in this release see: # 0.32.3 - 2024-09-27 -- Backport BIP-32 alias' without typo [#3252](https://github.com/rust-bitcoin/rust-bitcoin/pull/3252) +- Backport BIP-0032 alias' without typo [#3252](https://github.com/rust-bitcoin/rust-bitcoin/pull/3252) # 0.32.2 - 2024-06-07 @@ -167,7 +199,7 @@ might be what you are after. - `sig` becomes `signature` - `hash_ty` becomes `sighash_type` - Rename `txid` to `compute_txid` [#2366](https://github.com/rust-bitcoin/rust-bitcoin/pull/2366) -- In hardcoded BIP-32 derivation paths: Remove `m/` prefix requirement [#2451](https://github.com/rust-bitcoin/rust-bitcoin/pull/2451) +- In hardcoded BIP-0032 derivation paths: Remove `m/` prefix requirement [#2451](https://github.com/rust-bitcoin/rust-bitcoin/pull/2451) ## Crate smashing @@ -258,7 +290,7 @@ In particular consider having some type that implements `AsRef`, we have # 0.31.1 - 2024-01-09 - Fix bug in `FeeRate::checked_mul_by_weight` [#2128](https://github.com/rust-bitcoin/rust-bitcoin/pull/2182) -- Add BIP-32 types remove in 0.31 back in and mark as deprecated [#2258](https://github.com/rust-bitcoin/rust-bitcoin/pull/2258) +- Add BIP-0032 types remove in 0.31 back in and mark as deprecated [#2258](https://github.com/rust-bitcoin/rust-bitcoin/pull/2258) # 0.31.0 - 2023-10-18 @@ -393,7 +425,7 @@ This release is big, to help users upgrade we wrote a blog post, please see http all types except `Vec` and arrays, replace where appropriate with `FromStr`. - Performance improvements: - - [Remove needless allocation from BIP-158 encoding](https://github.com/rust-bitcoin/rust-bitcoin/pull/1146) + - [Remove needless allocation from BIP-0158 encoding](https://github.com/rust-bitcoin/rust-bitcoin/pull/1146) - [Implement fast hex encoding](https://github.com/rust-bitcoin/rust-bitcoin/pull/1268) (usage added in a [later PR](https://github.com/rust-bitcoin/rust-bitcoin/pull/1476)) - Testing improvements: @@ -674,10 +706,10 @@ the case and how we broke both `rust-miniscript` and BDK. # 0.19.0 - 2019-08-16 * Add `Amount` and `SignedAmount` types. -* Add BIP-158 support with `BlockFilter` and related types. +* Add BIP-0158 support with `BlockFilter` and related types. * Add `util::misc::signed_msg_hash()` for signing messages. * Add `MerkleBlock` and `PartialMerkleTree` types. -* bip32: Support serde serializaton for types and add some utility methods: +* bip32: Support serde serialization for types and add some utility methods: * `ChildNumber::increment` * `DerivationPath::children_from` * `DerivationPath::normal_children` @@ -780,7 +812,7 @@ the case and how we broke both `rust-miniscript` and BDK. * Use modern `as_` `to_` `into_` conventions for array-wrapping types; impl `Display` rather than `ToString` for most types * Change `script::Instructions` iterator [to allow rejecting non-minimal pushes](https://github.com/rust-bitcoin/rust-bitcoin/pull/136); fix bug where errors would iterate forever. -* Overhaul `util::Error`; introduce `serialize::Error` [and use it for `SimpleDecoder` and `SimpleDecoder` rather +* Overhaul `util::Error`; introduce `serialize::Error` [and use it for `SimpleDecoder` and `SimpleEncoder` rather than parameterizing these over their error type](https://github.com/rust-bitcoin/rust-bitcoin/pull/137). * Overhaul `UDecimal` and `Decimal` serialization and parsing [and fix many lingering parsing bugs](https://github.com/rust-bitcoin/rust-bitcoin/pull/142) * [Update to serde 1.0 and strason 0.4](https://github.com/rust-bitcoin/rust-bitcoin/pull/125) @@ -804,7 +836,7 @@ the case and how we broke both `rust-miniscript` and BDK. * The in-memory blockchain was moved into a dedicated project rust-bitcoin-chain. * Removed old script interpreter * A new optional feature "bitcoinconsensus" lets this library use Bitcoin Core's native -script verifier, wrappend into Rust by the rust-bitcoinconsenus project. +script verifier, wrapped into Rust by the rust-bitcoinconsensus project. See `Transaction::verify` and `Script::verify` methods. * Replaced Base58 traits with `encode_slice`, `check_encode_slice`, from and `from_check` functions in the base58 module. * Un-reversed the Debug output for Sha256dHash diff --git a/bitcoin/Cargo.toml b/bitcoin/Cargo.toml index 075ddbd893..e94d6720cc 100644 --- a/bitcoin/Cargo.toml +++ b/bitcoin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bitcoin" -version = "0.33.0-alpha.0" +version = "0.33.0-beta.0" authors = ["Andrew Poelstra "] license = "CC0-1.0" repository = "https://github.com/rust-bitcoin/rust-bitcoin/" @@ -10,40 +10,41 @@ categories = ["cryptography::cryptocurrencies"] keywords = [ "crypto", "bitcoin" ] readme = "../README.md" edition = "2021" -rust-version = "1.63.0" +rust-version = "1.74.0" exclude = ["tests", "contrib"] # If you change features or optional dependencies in any way please update the "# Cargo features" section in lib.rs as well. [features] default = [ "std", "secp-recovery" ] -std = ["base58/std", "bech32/std", "hashes/std", "hex/std", "internals/std", "io/std", "primitives/std", "secp256k1/std", "units/std", "base64?/std", "bitcoinconsensus?/std"] -rand-std = ["secp256k1/rand", "std"] +std = ["base58/std", "bech32/std", "encoding/std", "hashes/std", "hex/std", "internals/std", "io/std", "primitives/std", "secp256k1/std", "units/std", "base64?/std", "bitcoinconsensus?/std"] rand = ["secp256k1/rand"] -serde = ["dep:serde", "hashes/serde", "internals/serde", "primitives/serde", "secp256k1/serde", "units/serde"] +serde = ["base64", "dep:serde", "hashes/serde", "internals/serde", "primitives/serde", "secp256k1/serde", "units/serde"] +secp-global-context = ["secp256k1/global-context"] secp-lowmemory = ["secp256k1/lowmemory"] secp-recovery = ["secp256k1/recovery"] arbitrary = ["dep:arbitrary", "units/arbitrary", "primitives/arbitrary"] [dependencies] -base58 = { package = "base58ck", path = "../base58", default-features = false, features = ["alloc"] } +base58 = { package = "base58ck", path = "../base58", version = "0.2.0", default-features = false, features = ["alloc"] } bech32 = { version = "0.11.0", default-features = false, features = ["alloc"] } -hashes = { package = "bitcoin_hashes", path = "../hashes", default-features = false, features = ["alloc", "hex"] } +hashes = { package = "bitcoin_hashes", path = "../hashes", version = "0.18.0", default-features = false, features = ["alloc", "hex"] } +encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "=1.0.0-rc.2", default-features = false, features = ["alloc"] } hex = { package = "hex-conservative", version = "0.3.0", default-features = false, features = ["alloc"] } -internals = { package = "bitcoin-internals", path = "../internals", features = ["alloc", "hex"] } -io = { package = "bitcoin-io", path = "../io", default-features = false, features = ["alloc", "hashes"] } -primitives = { package = "bitcoin-primitives", path = "../primitives", default-features = false, features = ["alloc", "hex"] } -secp256k1 = { version = "0.30.0", default-features = false, features = ["hashes", "alloc", "rand"] } -units = { package = "bitcoin-units", path = "../units", default-features = false, features = ["alloc"] } +internals = { package = "bitcoin-internals", path = "../internals", version = "0.4.2", features = ["alloc", "hex"] } +io = { package = "bitcoin-io", path = "../io", version = "0.3.0", default-features = false, features = ["alloc", "hashes"] } +primitives = { package = "bitcoin-primitives", path = "../primitives", version = "=1.0.0-rc.1", default-features = false, features = ["alloc", "hex"] } +secp256k1 = { version = "0.32.0-beta.2", default-features = false, features = ["alloc"] } +units = { package = "bitcoin-units", path = "../units", version = "=1.0.0-rc.3", default-features = false, features = ["alloc"] } -arbitrary = { version = "1.4", optional = true } +arbitrary = { version = "1.4.1", optional = true } base64 = { version = "0.22.0", optional = true, default-features = false, features = ["alloc"] } # `bitcoinconsensus` version includes metadata which indicates the version of Core. Use `cargo tree` to see it. bitcoinconsensus = { version = "0.106.0", default-features = false, optional = true } -serde = { version = "1.0.103", default-features = false, features = [ "derive", "alloc" ], optional = true } +serde = { version = "1.0.195", default-features = false, features = [ "derive", "alloc" ], optional = true } [dev-dependencies] internals = { package = "bitcoin-internals", path = "../internals", features = ["test-serde"] } -serde_json = "1.0.0" +serde_json = "1.0.68" serde_test = "1.0.19" bincode = "1.3.1" hex_lit = "0.1.1" @@ -55,37 +56,33 @@ rustdoc-args = ["--cfg", "docsrs"] [[example]] name = "bip32" -[[example]] -name = "handshake" -required-features = ["rand-std"] - [[example]] name = "ecdsa-psbt" required-features = ["std", "bitcoinconsensus"] [[example]] name = "ecdsa-psbt-simple" -required-features = ["rand-std"] +required-features = ["rand", "std"] [[example]] name = "create-p2wpkh-address" -required-features = ["rand-std"] +required-features = ["rand", "std"] [[example]] name = "sign-tx-segwit-v0" -required-features = ["rand-std"] +required-features = ["rand", "std"] [[example]] name = "sign-tx-taproot" -required-features = ["rand-std"] +required-features = ["rand", "std"] [[example]] name = "taproot-psbt" -required-features = ["rand-std", "bitcoinconsensus"] +required-features = ["rand", "std", "bitcoinconsensus"] [[example]] name = "taproot-psbt-simple" -required-features = ["rand-std"] +required-features = ["rand", "std"] [[example]] name = "sighash" @@ -98,5 +95,13 @@ required-features = ["std"] name = "script" required-features = ["std"] +[[example]] +name = "serde" +required-features = ["std", "serde"] + [lints.rust] -unexpected_cfgs = { level = "deny", check-cfg = ['cfg(bench)', 'cfg(fuzzing)', 'cfg(kani)'] } +unexpected_cfgs = { level = "deny", check-cfg = ['cfg(fuzzing)', 'cfg(kani)'] } + +[lints.clippy] +redundant_clone = "warn" +use_self = "warn" diff --git a/bitcoin/contrib/extra_lints.sh b/bitcoin/contrib/extra_lints.sh new file mode 100755 index 0000000000..5e7f0c948d --- /dev/null +++ b/bitcoin/contrib/extra_lints.sh @@ -0,0 +1,4 @@ +# No shebang, this file should not be executed. +# shellcheck disable=SC2148 + +cargo clippy --all-targets --no-default-features --keep-going -- -D warnings diff --git a/bitcoin/contrib/test_vars.sh b/bitcoin/contrib/test_vars.sh index f28ecdb33a..6b2d09e8dc 100644 --- a/bitcoin/contrib/test_vars.sh +++ b/bitcoin/contrib/test_vars.sh @@ -5,10 +5,10 @@ # shellcheck disable=SC2034 # Test all these features with "std" enabled. -FEATURES_WITH_STD="rand-std serde secp-recovery bitcoinconsensus base64 arbitrary" +FEATURES_WITH_STD="rand serde secp-recovery bitcoinconsensus base64 arbitrary" # Test all these features without "std" or "alloc" enabled. FEATURES_WITHOUT_STD="rand serde secp-recovery bitcoinconsensus base64 arbitrary" # Run these examples. -EXAMPLES="ecdsa-psbt:std,bitcoinconsensus sign-tx-segwit-v0:rand-std sign-tx-taproot:rand-std taproot-psbt:bitcoinconsensus,rand-std sighash:std" +EXAMPLES="ecdsa-psbt:std,bitcoinconsensus sign-tx-segwit-v0:rand,std sign-tx-taproot:rand,std taproot-psbt:bitcoinconsensus,rand,std sighash:std serde:std,serde" diff --git a/bitcoin/embedded/Cargo.toml b/bitcoin/embedded/Cargo.toml index 8a6f7ecb96..fdf2c69f62 100644 --- a/bitcoin/embedded/Cargo.toml +++ b/bitcoin/embedded/Cargo.toml @@ -15,6 +15,9 @@ cortex-m-semihosting = "0.3.3" alloc-cortex-m = "0.4.1" bitcoin = { path="../", default-features = false, features = ["secp-lowmemory"] } +[lints.clippy] +use_self = "warn" + [[bin]] name = "embedded" test = false diff --git a/bitcoin/embedded/README.md b/bitcoin/embedded/README.md index a249719039..e27f8dc76f 100644 --- a/bitcoin/embedded/README.md +++ b/bitcoin/embedded/README.md @@ -16,8 +16,7 @@ source ./scripts/env.sh && cargo +nightly run --target thumbv7m-none-eabi Output should be something like: ```text -heap size 524288 -secp buf size 66240 +heap size 262144 Seed WIF: L1HKVVLHXiUhecWnwFYF6L3shkf1E12HUmuZTESvBXUdx3yqVP1D Address: bc1qpx9t9pzzl4qsydmhyt6ctrxxjd4ep549np9993 ``` diff --git a/bitcoin/embedded/src/main.rs b/bitcoin/embedded/src/main.rs index c11ed734ed..97d971183f 100644 --- a/bitcoin/embedded/src/main.rs +++ b/bitcoin/embedded/src/main.rs @@ -7,15 +7,11 @@ extern crate alloc; extern crate bitcoin; use alloc::string::ToString; -use alloc::vec; use core::panic::PanicInfo; use alloc_cortex_m::CortexMHeap; // use panic_halt as _; use bitcoin::{Address, Network, PrivateKey}; -use bitcoin::secp256k1::ffi::types::AlignedType; -use bitcoin::secp256k1::Secp256k1; - use cortex_m_rt::entry; use cortex_m_semihosting::{debug, hprintln}; @@ -31,23 +27,17 @@ fn main() -> ! { unsafe { ALLOCATOR.init(cortex_m_rt::heap_start() as usize, HEAP_SIZE) } - let size = Secp256k1::preallocate_size(); - hprintln!("secp buf size {}", size*16).unwrap(); - // Load a private key let raw = "L1HKVVLHXiUhecWnwFYF6L3shkf1E12HUmuZTESvBXUdx3yqVP1D"; let pk = PrivateKey::from_wif(raw).unwrap(); hprintln!("Seed WIF: {}", pk).unwrap(); - let mut buf_ful = vec![AlignedType::zeroed(); size]; - let secp = Secp256k1::preallocated_new(&mut buf_ful).unwrap(); - // Derive address - let pubkey = pk.public_key(&secp).try_into().unwrap(); + let pubkey = pk.public_key().try_into().unwrap(); let address = Address::p2wpkh(pubkey, Network::Bitcoin); hprintln!("Address: {}", address).unwrap(); - assert_eq!(address.to_string(), "bc1qpx9t9pzzl4qsydmhyt6ctrxxjd4ep549np9993".to_string()); + assert_eq!(address.to_string(), "bc1qpx9t9pzzl4qsydmhyt6ctrxxjd4ep549np9993"); // exit QEMU // NOTE do not run this on hardware; it can corrupt OpenOCD state debug::exit(debug::EXIT_SUCCESS); diff --git a/bitcoin/examples/bip32.rs b/bitcoin/examples/bip32.rs index 41f3791ea6..886a03032b 100644 --- a/bitcoin/examples/bip32.rs +++ b/bitcoin/examples/bip32.rs @@ -3,8 +3,6 @@ use std::{env, process}; use bitcoin::address::{Address, KnownHrp}; use bitcoin::bip32::{ChildNumber, DerivationPath, Xpriv, Xpub}; use bitcoin::hex::FromHex; -use bitcoin::secp256k1::ffi::types::AlignedType; -use bitcoin::secp256k1::Secp256k1; use bitcoin::{CompressedPublicKey, NetworkKind}; fn main() { @@ -27,26 +25,21 @@ fn main() { let seed = Vec::from_hex(seed_hex).unwrap(); - // we need secp256k1 context for key derivation - let mut buf: Vec = Vec::new(); - buf.resize(Secp256k1::preallocate_size(), AlignedType::zeroed()); - let secp = Secp256k1::preallocated_new(buf.as_mut_slice()).unwrap(); - // calculate root key from seed let root = Xpriv::new_master(NetworkKind::Main, &seed); println!("Root key: {root}"); // derive child xpub let path = "84h/0h/0h".parse::().unwrap(); - let child = root.derive_xpriv(&secp, &path).expect("only deriving three steps"); + let child = root.derive_xpriv(&path).expect("only deriving three steps"); println!("Child at {path}: {child}"); - let xpub = Xpub::from_xpriv(&secp, &child); + let xpub = Xpub::from_xpriv(&child); println!("Public key at {path}: {xpub}"); // generate first receiving address at m/0/0 // manually creating indexes this time let zero = ChildNumber::ZERO_NORMAL; - let public_key = xpub.derive_xpub(&secp, &[zero, zero]).unwrap().public_key; + let public_key = xpub.derive_xpub([zero, zero]).unwrap().public_key; let address = Address::p2wpkh(CompressedPublicKey(public_key), KnownHrp::Mainnet); println!("First receiving address: {address}"); } diff --git a/bitcoin/examples/create-p2wpkh-address.rs b/bitcoin/examples/create-p2wpkh-address.rs index e92ffe5312..d1a327590d 100644 --- a/bitcoin/examples/create-p2wpkh-address.rs +++ b/bitcoin/examples/create-p2wpkh-address.rs @@ -1,14 +1,11 @@ -use bitcoin::secp256k1::{rand, Secp256k1}; +use bitcoin::secp256k1::rand; use bitcoin::{Address, CompressedPublicKey, Network, PrivateKey}; /// Generate a P2WPKH (pay-to-witness-public-key-hash) address and print it /// along with the associated private key needed to transact. fn main() { - // Create new secp256k1 instance. - let secp = Secp256k1::new(); - // Generate secp256k1 public and private key pair. - let (secret_key, public_key) = secp.generate_keypair(&mut rand::thread_rng()); + let (secret_key, public_key) = secp256k1::generate_keypair(&mut rand::rng()); // Create a Bitcoin private key to be used on the Bitcoin mainnet. let private_key = PrivateKey::new(secret_key, Network::Bitcoin); diff --git a/bitcoin/examples/ecdsa-psbt-simple.rs b/bitcoin/examples/ecdsa-psbt-simple.rs index 73f209bb2e..e57f8dcd4e 100644 --- a/bitcoin/examples/ecdsa-psbt-simple.rs +++ b/bitcoin/examples/ecdsa-psbt-simple.rs @@ -24,16 +24,15 @@ //! The miner's fee will be 10,000 satoshis. use std::collections::BTreeMap; -use bitcoin::address::script_pubkey::ScriptBufExt as _; use bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, IntoDerivationPath, Xpriv, Xpub}; +use bitcoin::ext::*; use bitcoin::key::WPubkeyHash; use bitcoin::locktime::absolute; use bitcoin::psbt::Input; -use bitcoin::secp256k1::{Secp256k1, Signing}; -use bitcoin::witness::WitnessExt as _; use bitcoin::{ - consensus, transaction, Address, Amount, EcdsaSighashType, Network, OutPoint, Psbt, ScriptBuf, - Sequence, Transaction, TxIn, TxOut, Txid, Witness, + consensus, transaction, Address, Amount, EcdsaSighashType, Network, OutPoint, Psbt, + RedeemScriptBuf, ScriptPubKeyBuf, ScriptSigBuf, Sequence, Transaction, TxIn, TxOut, Txid, + Witness, }; // The master xpriv, from which we derive the keys we control. @@ -55,35 +54,27 @@ const SPEND_AMOUNT: Amount = Amount::from_sat_u32(25_000_000); const CHANGE_AMOUNT: Amount = Amount::from_sat_u32(4_990_000); // 10_000 sat fee. // Derive the external address xpriv. -fn get_external_address_xpriv( - secp: &Secp256k1, - master_xpriv: Xpriv, - index: u32, -) -> Xpriv { +fn get_external_address_xpriv(master_xpriv: Xpriv, index: u32) -> Xpriv { let derivation_path = BIP84_DERIVATION_PATH.into_derivation_path().expect("valid derivation path"); let child_xpriv = - master_xpriv.derive_xpriv(secp, &derivation_path).expect("only deriving three steps"); + master_xpriv.derive_xpriv(&derivation_path).expect("only deriving three steps"); let external_index = ChildNumber::ZERO_NORMAL; let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); - child_xpriv.derive_xpriv(secp, &[external_index, idx]).expect("only deriving two more steps") + child_xpriv.derive_xpriv([external_index, idx]).expect("only deriving two more steps") } // Derive the internal address xpriv. -fn get_internal_address_xpriv( - secp: &Secp256k1, - master_xpriv: Xpriv, - index: u32, -) -> Xpriv { +fn get_internal_address_xpriv(master_xpriv: Xpriv, index: u32) -> Xpriv { let derivation_path = BIP84_DERIVATION_PATH.into_derivation_path().expect("valid derivation path"); let child_xpriv = - master_xpriv.derive_xpriv(secp, &derivation_path).expect("only deriving three steps"); + master_xpriv.derive_xpriv(&derivation_path).expect("only deriving three steps"); let internal_index = ChildNumber::ONE_NORMAL; let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); - child_xpriv.derive_xpriv(secp, &[internal_index, idx]).expect("only deriving two more steps") + child_xpriv.derive_xpriv([internal_index, idx]).expect("only deriving two more steps") } // The address to send to. @@ -109,7 +100,7 @@ fn dummy_unspent_transaction_outputs() -> Vec<(OutPoint, TxOut)> { vout: 0, }; - let utxo_1 = TxOut { value: DUMMY_UTXO_AMOUNT_INPUT_1, script_pubkey: script_pubkey_1 }; + let utxo_1 = TxOut { amount: DUMMY_UTXO_AMOUNT_INPUT_1, script_pubkey: script_pubkey_1 }; let script_pubkey_2 = "bc1qy7swwpejlw7a2rp774pa8rymh8tw3xvd2x2xkd" .parse::>() @@ -123,24 +114,22 @@ fn dummy_unspent_transaction_outputs() -> Vec<(OutPoint, TxOut)> { vout: 1, }; - let utxo_2 = TxOut { value: DUMMY_UTXO_AMOUNT_INPUT_2, script_pubkey: script_pubkey_2 }; + let utxo_2 = TxOut { amount: DUMMY_UTXO_AMOUNT_INPUT_2, script_pubkey: script_pubkey_2 }; vec![(out_point_1, utxo_1), (out_point_2, utxo_2)] } fn main() { - let secp = Secp256k1::new(); - // Get the individual xprivs we control. In a real application these would come from a stored secret. let master_xpriv = XPRIV.parse::().expect("valid xpriv"); - let xpriv_input_1 = get_external_address_xpriv(&secp, master_xpriv, 0); - let xpriv_input_2 = get_internal_address_xpriv(&secp, master_xpriv, 0); - let xpriv_change = get_internal_address_xpriv(&secp, master_xpriv, 1); + let xpriv_input_1 = get_external_address_xpriv(master_xpriv, 0); + let xpriv_input_2 = get_internal_address_xpriv(master_xpriv, 0); + let xpriv_change = get_internal_address_xpriv(master_xpriv, 1); // Get the PKs - let pk_input_1 = Xpub::from_xpriv(&secp, &xpriv_input_1).to_public_key(); - let pk_input_2 = Xpub::from_xpriv(&secp, &xpriv_input_2).to_public_key(); + let pk_input_1 = Xpub::from_xpriv(&xpriv_input_1).to_public_key(); + let pk_input_2 = Xpub::from_xpriv(&xpriv_input_2).to_public_key(); let pk_inputs = [pk_input_1, pk_input_2]; - let pk_change = Xpub::from_xpriv(&secp, &xpriv_change).to_public_key(); + let pk_change = Xpub::from_xpriv(&xpriv_change).to_public_key(); // Get the Witness Public Key Hashes (WPKHs) let wpkhs: Vec = pk_inputs.iter().map(|pk| pk.wpubkey_hash()).collect(); @@ -158,27 +147,27 @@ fn main() { .into_iter() .map(|(outpoint, _)| TxIn { previous_output: outpoint, - script_sig: ScriptBuf::default(), + script_sig: ScriptSigBuf::default(), sequence: Sequence::ENABLE_LOCKTIME_AND_RBF, witness: Witness::default(), }) .collect(); // The spend output is locked to a key controlled by the receiver. - let spend = TxOut { value: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; + let spend = TxOut { amount: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; // The change output is locked to a key controlled by us. let change = TxOut { - value: CHANGE_AMOUNT, - script_pubkey: ScriptBuf::new_p2wpkh(pk_change.wpubkey_hash()), // Change comes back to us. + amount: CHANGE_AMOUNT, + script_pubkey: ScriptPubKeyBuf::new_p2wpkh(pk_change.wpubkey_hash()), // Change comes back to us. }; // The transaction we want to sign and broadcast. let unsigned_tx = Transaction { version: transaction::Version::TWO, // Post BIP 68. lock_time: absolute::LockTime::ZERO, // Ignore the locktime. - input: inputs, // Input is 0-indexed. - output: vec![spend, change], // Outputs, order does not matter. + inputs, // Input is 0-indexed. + outputs: vec![spend, change], // Outputs, order does not matter. }; // Now we'll start the PSBT workflow. @@ -203,14 +192,14 @@ fn main() { psbt.inputs = vec![ Input { witness_utxo: Some(utxos[0].clone()), - redeem_script: Some(ScriptBuf::new_p2wpkh(wpkhs[0])), + redeem_script: Some(RedeemScriptBuf::new_p2wpkh(wpkhs[0])), bip32_derivation: bip32_derivations[0].clone(), sighash_type: Some(ty), ..Default::default() }, Input { witness_utxo: Some(utxos[1].clone()), - redeem_script: Some(ScriptBuf::new_p2wpkh(wpkhs[1])), + redeem_script: Some(RedeemScriptBuf::new_p2wpkh(wpkhs[1])), bip32_derivation: bip32_derivations[1].clone(), sighash_type: Some(ty), ..Default::default() @@ -218,7 +207,7 @@ fn main() { ]; // Step 3: Signer role; that signs the PSBT. - psbt.sign(&master_xpriv, &secp).expect("valid signature"); + psbt.sign(&master_xpriv).expect("valid signature"); // Step 4: Finalizer role; that finalizes the PSBT. println!("PSBT Inputs: {:#?}", psbt.inputs); diff --git a/bitcoin/examples/ecdsa-psbt.rs b/bitcoin/examples/ecdsa-psbt.rs index 0ac297654c..70a4b3d4e0 100644 --- a/bitcoin/examples/ecdsa-psbt.rs +++ b/bitcoin/examples/ecdsa-psbt.rs @@ -31,17 +31,14 @@ use std::collections::BTreeMap; use std::fmt; -use bitcoin::address::script_pubkey::ScriptBufExt as _; use bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, IntoDerivationPath, Xpriv, Xpub}; use bitcoin::consensus::encode; -use bitcoin::consensus_validation::TransactionExt as _; +use bitcoin::ext::*; use bitcoin::locktime::absolute; use bitcoin::psbt::{self, Input, Psbt, PsbtSighashType}; -use bitcoin::script::ScriptBufExt as _; -use bitcoin::secp256k1::{Secp256k1, Signing, Verification}; use bitcoin::{ - transaction, Address, Amount, CompressedPublicKey, Network, OutPoint, ScriptBuf, Sequence, - Transaction, TxIn, TxOut, Witness, + transaction, Address, Amount, CompressedPublicKey, Network, OutPoint, RedeemScriptBuf, + ScriptPubKeyBuf, ScriptSigBuf, Sequence, Transaction, TxIn, TxOut, Witness, }; type Result = std::result::Result; @@ -53,7 +50,7 @@ const EXTENDED_MASTER_PRIVATE_KEY: &str = "tprv8ZgxMBicQKsPeSHZFZWT8zxie2dXWcwem const INPUT_UTXO_TXID: &str = "295f06639cde6039bf0c3dbf4827f0e3f2b2c2b476408e2f9af731a8d7a9c7fb"; const INPUT_UTXO_VOUT: u32 = 0; const INPUT_UTXO_SCRIPT_PUBKEY: &str = "00149891eeb8891b3e80a2a1ade180f143add23bf5de"; -const INPUT_UTXO_VALUE: &str = "50 BTC"; +const INPUT_UTXO_AMOUNT: &str = "50 BTC"; // Get this from the descriptor, // "wpkh([97f17dca/0'/0'/0']02749483607dafb30c66bd93ece4474be65745ce538c2d70e8e246f17e7a4e0c0c)#m9n56cx0". const INPUT_UTXO_DERIVATION_PATH: &str = "0h/0h/0h"; @@ -68,17 +65,15 @@ const CHANGE_AMOUNT_BTC: &str = "48.99999 BTC"; // 1000 sat transaction fee. const NETWORK: Network = Network::Regtest; fn main() -> Result<()> { - let secp = Secp256k1::new(); - let (offline, fingerprint, account_0_xpub, input_xpub) = - ColdStorage::new(&secp, EXTENDED_MASTER_PRIVATE_KEY)?; + ColdStorage::new(EXTENDED_MASTER_PRIVATE_KEY)?; let online = WatchOnly::new(account_0_xpub, input_xpub, fingerprint); - let created = online.create_psbt(&secp)?; + let created = online.create_psbt()?; let updated = online.update_psbt(created)?; - let signed = offline.sign_psbt(&secp, updated)?; + let signed = offline.sign_psbt(updated)?; let finalized = online.finalize_psbt(signed)?; @@ -92,7 +87,7 @@ fn main() -> Result<()> { Ok(()) } -// We cache the pubkeys for convenience because it requires a scep context to convert the private key. +// We cache the pubkeys for convenience because it requires a secp256k1 context to convert the private key. /// An example of an offline signer i.e., a cold-storage device. struct ColdStorage { /// The master extended private key. @@ -111,22 +106,21 @@ impl ColdStorage { /// # Returns /// /// The newly created signer along with the data needed to configure a watch-only wallet. - fn new(secp: &Secp256k1, xpriv: &str) -> Result { + fn new(xpriv: &str) -> Result { let master_xpriv = xpriv.parse::()?; - let master_xpub = Xpub::from_xpriv(secp, &master_xpriv); + let master_xpub = Xpub::from_xpriv(&master_xpriv); // Hardened children require secret data to derive. let path = "84h/0h/0h".into_derivation_path()?; - let account_0_xpriv = - master_xpriv.derive_xpriv(secp, &path).expect("derivation path is short"); - let account_0_xpub = Xpub::from_xpriv(secp, &account_0_xpriv); + let account_0_xpriv = master_xpriv.derive_xpriv(&path).expect("derivation path is short"); + let account_0_xpub = Xpub::from_xpriv(&account_0_xpriv); let path = INPUT_UTXO_DERIVATION_PATH.into_derivation_path()?; - let input_xpriv = master_xpriv.derive_xpriv(secp, &path).expect("derivation path is short"); - let input_xpub = Xpub::from_xpriv(secp, &input_xpriv); + let input_xpriv = master_xpriv.derive_xpriv(&path).expect("derivation path is short"); + let input_xpub = Xpub::from_xpriv(&input_xpriv); - let wallet = ColdStorage { master_xpriv, master_xpub }; + let wallet = Self { master_xpriv, master_xpub }; let fingerprint = wallet.master_fingerprint(); Ok((wallet, fingerprint, account_0_xpub, input_xpub)) @@ -136,12 +130,8 @@ impl ColdStorage { fn master_fingerprint(&self) -> Fingerprint { self.master_xpub.fingerprint() } /// Signs `psbt` with this signer. - fn sign_psbt( - &self, - secp: &Secp256k1, - mut psbt: Psbt, - ) -> Result { - match psbt.sign(&self.master_xpriv, secp) { + fn sign_psbt(&self, mut psbt: Psbt) -> Result { + match psbt.sign(&self.master_xpriv) { Ok(keys) => assert_eq!(keys.len(), 1), Err((_, e)) => { let e = e.get(&0).expect("at least one error"); @@ -152,7 +142,7 @@ impl ColdStorage { } } -/// An example of an watch-only online wallet. +/// An example of a watch-only online wallet. struct WatchOnly { /// The xpub for account 0 derived from derivation path "m/84h/0h/0h". account_0_xpub: Xpub, @@ -171,30 +161,30 @@ impl WatchOnly { /// The reason for importing the `input_xpub` is so one can use bitcoind to grab a valid input /// to verify the workflow presented in this file. fn new(account_0_xpub: Xpub, input_xpub: Xpub, master_fingerprint: Fingerprint) -> Self { - WatchOnly { account_0_xpub, input_xpub, master_fingerprint } + Self { account_0_xpub, input_xpub, master_fingerprint } } - /// Creates the PSBT, in BIP174 parlance this is the 'Creator'. - fn create_psbt(&self, secp: &Secp256k1) -> Result { + /// Creates the PSBT, in BIP-0174 parlance this is the 'Creator'. + fn create_psbt(&self) -> Result { let to_address = RECEIVE_ADDRESS.parse::>()?.require_network(Network::Regtest)?; let to_amount = OUTPUT_AMOUNT_BTC.parse::()?; - let (_, change_address, _) = self.change_address(secp)?; + let (_, change_address, _) = self.change_address()?; let change_amount = CHANGE_AMOUNT_BTC.parse::()?; let tx = Transaction { version: transaction::Version::TWO, lock_time: absolute::LockTime::ZERO, - input: vec![TxIn { + inputs: vec![TxIn { previous_output: OutPoint { txid: INPUT_UTXO_TXID.parse()?, vout: INPUT_UTXO_VOUT }, - script_sig: ScriptBuf::new(), + script_sig: ScriptSigBuf::new(), sequence: Sequence::MAX, // Disable LockTime and RBF. witness: Witness::default(), }], - output: vec![ - TxOut { value: to_amount, script_pubkey: to_address.script_pubkey() }, - TxOut { value: change_amount, script_pubkey: change_address.script_pubkey() }, + outputs: vec![ + TxOut { amount: to_amount, script_pubkey: to_address.script_pubkey() }, + TxOut { amount: change_amount, script_pubkey: change_address.script_pubkey() }, ], }; @@ -203,14 +193,14 @@ impl WatchOnly { Ok(psbt) } - /// Updates the PSBT, in BIP174 parlance this is the 'Updater'. + /// Updates the PSBT, in BIP-0174 parlance this is the 'Updater'. fn update_psbt(&self, mut psbt: Psbt) -> Result { let mut input = Input { witness_utxo: Some(previous_output()), ..Default::default() }; let pk = self.input_xpub.to_public_key(); let wpkh = pk.wpubkey_hash(); - let redeem_script = ScriptBuf::new_p2wpkh(wpkh); + let redeem_script = RedeemScriptBuf::new_p2wpkh(wpkh); input.redeem_script = Some(redeem_script); let fingerprint = self.master_fingerprint; @@ -227,7 +217,7 @@ impl WatchOnly { Ok(psbt) } - /// Finalizes the PSBT, in BIP174 parlance this is the 'Finalizer'. + /// Finalizes the PSBT, in BIP-0174 parlance this is the 'Finalizer'. /// This is just an example. For a production-ready PSBT Finalizer, use [rust-miniscript](https://docs.rs/miniscript/latest/miniscript/psbt/trait.PsbtExt.html#tymethod.finalize) fn finalize_psbt(&self, mut psbt: Psbt) -> Result { if psbt.inputs.is_empty() { @@ -251,16 +241,13 @@ impl WatchOnly { Ok(psbt) } - /// Returns data for the first change address (standard BIP84 derivation path + /// Returns data for the first change address (standard BIP-0084 derivation path /// "m/84h/0h/0h/1/0"). A real wallet would have access to the chain so could determine if an /// address has been used or not. We ignore this detail and just re-use the first change address /// without loss of generality. - fn change_address( - &self, - secp: &Secp256k1, - ) -> Result<(CompressedPublicKey, Address, DerivationPath)> { + fn change_address(&self) -> Result<(CompressedPublicKey, Address, DerivationPath)> { let path = [ChildNumber::ONE_NORMAL, ChildNumber::ZERO_NORMAL]; - let derived = self.account_0_xpub.derive_xpub(secp, &path)?; + let derived = self.account_0_xpub.derive_xpub(path)?; let pk = derived.to_public_key(); let addr = Address::p2wpkh(pk, NETWORK); @@ -276,17 +263,17 @@ fn input_derivation_path() -> Result { } fn previous_output() -> TxOut { - let script_pubkey = ScriptBuf::from_hex_no_length_prefix(INPUT_UTXO_SCRIPT_PUBKEY) + let script_pubkey = ScriptPubKeyBuf::from_hex_no_length_prefix(INPUT_UTXO_SCRIPT_PUBKEY) .expect("failed to parse input utxo scriptPubkey"); - let amount = INPUT_UTXO_VALUE.parse::().expect("failed to parse input utxo value"); + let amount = INPUT_UTXO_AMOUNT.parse::().expect("failed to parse input utxo amount"); - TxOut { value: amount, script_pubkey } + TxOut { amount, script_pubkey } } struct Error(Box); impl From for Error { - fn from(e: T) -> Self { Error(Box::new(e)) } + fn from(e: T) -> Self { Self(Box::new(e)) } } impl fmt::Debug for Error { diff --git a/bitcoin/examples/io.rs b/bitcoin/examples/io.rs index 812c6b1664..1cabb4f41b 100644 --- a/bitcoin/examples/io.rs +++ b/bitcoin/examples/io.rs @@ -17,7 +17,7 @@ fn main() { // Encode to a custom type by implementing `bitcoin_io` traits. encode_to_custom_type(); - // Encode to a foreign custom type by using the `bitcoin_io::bridge::FromStd` wrapper. + // Encode to a foreign custom type by using the `bitcoin_io::FromStd` wrapper. encode_using_wrapper(); } @@ -46,7 +46,7 @@ fn encode_decode_from_stdlib_type() { /// /// To use the `Encodable` (and `Decodable`) traits you can implement the `bitcoin_io` traits. fn encode_to_custom_type() { - /// A byte counter - counts how many bytes where written to it. + /// A byte counter - counts how many bytes were written to it. struct WriteCounter { count: usize, } @@ -75,7 +75,7 @@ fn encode_to_custom_type() { /// Encodes to a custom type by using the `bitcoin_io::bridge` module. /// /// If you have a type that you don't control that implements `std::io::Write` you can still encode -/// to it by way of the `io::bridge::FromStd` wrapper. +/// to it by way of the `io::FromStd` wrapper. fn encode_using_wrapper() { use pretend_this_is_some_other_crate::WriteCounter; @@ -96,7 +96,7 @@ fn encode_using_wrapper() { } mod pretend_this_is_some_other_crate { - /// A byte counter - counts how many bytes where written to it. + /// A byte counter - counts how many bytes were written to it. pub struct WriteCounter { count: usize, } diff --git a/bitcoin/examples/script.rs b/bitcoin/examples/script.rs index 930b4899e0..25585e0515 100644 --- a/bitcoin/examples/script.rs +++ b/bitcoin/examples/script.rs @@ -9,8 +9,8 @@ use bitcoin::consensus::encode; use bitcoin::key::WPubkeyHash; -use bitcoin::script::{self, ScriptBufExt, ScriptExt}; -use bitcoin::ScriptBuf; +use bitcoin::script::{self, ScriptBufExt as _, ScriptExt as _}; +use bitcoin::WitnessScriptBuf; fn main() { let pk = "b472a266d0bd89c13706a4132ccfb16f7c3b9fcb".parse::().unwrap(); @@ -18,63 +18,66 @@ fn main() { // TL;DR Use `to_hex_string_prefixed` and `from_hex_prefixed`. let script_code = script::p2wpkh_script_code(pk); let hex = script_code.to_hex_string_prefixed(); - let decoded = ScriptBuf::from_hex_prefixed(&hex).unwrap(); + let decoded = WitnessScriptBuf::from_hex_prefixed(&hex).unwrap(); assert_eq!(decoded, script_code); // Or if you prefer: `to_hex_string_no_length_prefix` and `from_hex_no_length_prefix`. let script_code = script::p2wpkh_script_code(pk); let hex = script_code.to_hex_string_no_length_prefix(); - let decoded = ScriptBuf::from_hex_no_length_prefix(&hex).unwrap(); + let decoded = WitnessScriptBuf::from_hex_no_length_prefix(&hex).unwrap(); assert_eq!(decoded, script_code); // Writes the script as human-readable eg, OP_DUP OP_HASH160 OP_PUSHBYTES_20 ... println!("human-readable script: {script_code}"); // We do not implement parsing scripts from human-readable format. - // let decoded = s.parse::().unwrap(); + // let decoded = s.parse::().unwrap(); // This is not equivalent to consensus encoding i.e., does not include the length prefix. let hex_lower_hex_trait = format!("{script_code:x}"); println!("hex created using `LowerHex`: {hex_lower_hex_trait}"); // The `deserialize_hex` function requires the length prefix. - assert!(encode::deserialize_hex::(&hex_lower_hex_trait).is_err()); + assert!(encode::deserialize_hex::(&hex_lower_hex_trait).is_err()); // And so does `from_hex_prefixed`. - assert!(ScriptBuf::from_hex_prefixed(&hex_lower_hex_trait).is_err()); + assert!(WitnessScriptBuf::from_hex_prefixed(&hex_lower_hex_trait).is_err()); // But we provide an explicit constructor that does not. - assert_eq!(ScriptBuf::from_hex_no_length_prefix(&hex_lower_hex_trait).unwrap(), script_code); + assert_eq!( + WitnessScriptBuf::from_hex_no_length_prefix(&hex_lower_hex_trait).unwrap(), + script_code + ); // This is consensus encoding i.e., includes the length prefix. let hex_inherent = script_code.to_hex_string_prefixed(); // Defined in `ScriptExt`. println!("hex created using inherent `to_hex_string_prefixed`: {hex_inherent}"); - // The inverse of `to_hex_string_prefixed` is `from_hex_string_prefixed`. - let decoded = ScriptBuf::from_hex_prefixed(&hex_inherent).unwrap(); // Defined in `ScriptBufExt`. + // The inverse of `to_hex_string_prefixed` is `from_hex_prefixed`. + let decoded = WitnessScriptBuf::from_hex_prefixed(&hex_inherent).unwrap(); // Defined in `ScriptBufExt`. assert_eq!(decoded, script_code); // We can also parse the output of `to_hex_string_prefixed` using `deserialize_hex`. - let decoded = encode::deserialize_hex::(&hex_inherent).unwrap(); + let decoded = encode::deserialize_hex::(&hex_inherent).unwrap(); assert_eq!(decoded, script_code); // We also support encode/decode using `consensus::encode` functions. let encoded = encode::serialize_hex(&script_code); println!("hex created using consensus::encode::serialize_hex: {encoded}"); - let decoded: ScriptBuf = encode::deserialize_hex(&encoded).unwrap(); + let decoded: WitnessScriptBuf = encode::deserialize_hex(&encoded).unwrap(); assert_eq!(decoded, script_code); - // And we can mix these to calls because both include the length prefix. + // And we can mix these two calls because both include the length prefix. let encoded = encode::serialize_hex(&script_code); - let decoded = ScriptBuf::from_hex_prefixed(&encoded).unwrap(); + let decoded = WitnessScriptBuf::from_hex_prefixed(&encoded).unwrap(); assert_eq!(decoded, script_code); // Encode/decode using a byte vector. let encoded = encode::serialize(&script_code); assert_eq!(&encoded[1..], script_code.as_bytes()); // Shows that prefix is the first byte. - let decoded: ScriptBuf = encode::deserialize(&encoded).unwrap(); + let decoded: WitnessScriptBuf = encode::deserialize(&encoded).unwrap(); assert_eq!(decoded, script_code); // to/from bytes excludes the prefix, these are not encoding/decoding functions so this is sane. - let bytes = script_code.to_bytes(); - let got = ScriptBuf::from_bytes(bytes); + let bytes = script_code.to_vec(); + let got = WitnessScriptBuf::from_bytes(bytes); assert_eq!(got, script_code); } diff --git a/bitcoin/examples/serde.rs b/bitcoin/examples/serde.rs new file mode 100644 index 0000000000..a40f65f434 --- /dev/null +++ b/bitcoin/examples/serde.rs @@ -0,0 +1,59 @@ +//! Serializing with `serde` and `consensus::{Encodable, Decodable}` +//! +//! All types that implement consensus encoding traits can be serde de/serialized. +//! For integer types that can have multiple units we typically provide a few different modules. + +use bitcoin::block::{Header, Version}; +use bitcoin::consensus::serde::Hex; +use bitcoin::consensus::{self}; +use bitcoin::{ + amount, fee_rate, Amount, BlockHash, BlockTime, CompactTarget, FeeRate, TxMerkleNode, +}; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct Foo { + /// Consensus encoded into hex is often the best option. + #[serde(with = "consensus::serde::With::")] + header: Header, + + /// This works but it's little-endian which may be hard to read. + /// + /// Integer wrapper types are more readable if they explicitly use a unit. + #[serde(with = "consensus::serde::With::")] + this: Amount, + + /// `Amount` can use sats or bitcoin (`as_btc`). + #[serde(with = "amount::serde::as_sat")] + that: Amount, + + /// `FeeRate` can use kilo weight units or virtual bytes, both floor and ceil. + #[serde(with = "fee_rate::serde::as_sat_per_kwu_floor")] + fee_rate: FeeRate, +} + +fn main() { + let f = Foo { + header: dummy_header(), + this: Amount::ONE_SAT, + that: Amount::ONE_BTC, + fee_rate: FeeRate::DUST, + }; + + let s = serde_json::to_string(&f).unwrap(); + println!("{s}"); + + let deser = serde_json::from_str::(&s).unwrap(); + assert_eq!(deser, f); +} + +fn dummy_header() -> Header { + Header { + version: Version::ONE, + prev_blockhash: BlockHash::from_byte_array([0x99; 32]), + merkle_root: TxMerkleNode::from_byte_array([0x77; 32]), + time: BlockTime::from(2), + bits: CompactTarget::from_consensus(3), + nonce: 4, + } +} diff --git a/bitcoin/examples/sighash.rs b/bitcoin/examples/sighash.rs index bfa82216eb..1440cbbfe6 100644 --- a/bitcoin/examples/sighash.rs +++ b/bitcoin/examples/sighash.rs @@ -1,7 +1,7 @@ -use bitcoin::address::script_pubkey::ScriptBufExt as _; -use bitcoin::script::ScriptExt as _; +use bitcoin::ext::*; use bitcoin::{ - consensus, ecdsa, sighash, Amount, CompressedPublicKey, Script, ScriptBuf, Transaction, + consensus, ecdsa, sighash, Amount, CompressedPublicKey, ScriptPubKey, ScriptPubKeyBuf, + Transaction, WitnessScript, }; use hex_lit::hex; @@ -17,16 +17,16 @@ use hex_lit::hex; /// /// # Parameters /// -/// * `raw_tx` - spending tx hex -/// * `inp_idx` - spending tx input index -/// * `amount` - ref tx output value in sats +/// * `raw_tx` - the spending tx hex +/// * `inp_idx` - the spending tx input index +/// * `amount` - the ref tx output amount. fn compute_sighash_p2wpkh(raw_tx: &[u8], inp_idx: usize, amount: Amount) { let tx: Transaction = consensus::deserialize(raw_tx).unwrap(); - let inp = &tx.input[inp_idx]; + let inp = &tx.inputs[inp_idx]; let witness = &inp.witness; println!("Witness: {witness:?}"); - // BIP-141: The witness must consist of exactly 2 items (≤ 520 bytes each). The first one a + // BIP-0141: The witness must consist of exactly 2 items (≤ 520 bytes each). The first one a // signature, and the second one a public key. assert_eq!(witness.len(), 2); let sig_bytes = witness.get(0).unwrap(); @@ -34,12 +34,12 @@ fn compute_sighash_p2wpkh(raw_tx: &[u8], inp_idx: usize, amount: Amount) { let sig = ecdsa::Signature::from_slice(sig_bytes).expect("failed to parse sig"); - //BIP-143: "The item 5 : For P2WPKH witness program, the scriptCode is 0x1976a914{20-byte-pubkey-hash}88ac" + //BIP-0143: "The item 5 : For P2WPKH witness program, the scriptCode is 0x1976a914{20-byte-pubkey-hash}88ac" //this is nothing but a standard P2PKH script OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG: let pk = CompressedPublicKey::from_slice(pk_bytes).expect("failed to parse pubkey"); let wpkh = pk.wpubkey_hash(); println!("Script pubkey hash: {wpkh:x}"); - let spk = ScriptBuf::new_p2wpkh(wpkh); + let spk = ScriptPubKeyBuf::new_p2wpkh(wpkh); let mut cache = sighash::SighashCache::new(&tx); let sighash = cache @@ -48,20 +48,19 @@ fn compute_sighash_p2wpkh(raw_tx: &[u8], inp_idx: usize, amount: Amount) { println!("SegWit p2wpkh sighash: {sighash:x}"); let msg = secp256k1::Message::from(sighash); println!("Message is {msg:x}"); - let secp = secp256k1::Secp256k1::verification_only(); - pk.verify(&secp, msg, sig).unwrap() + pk.verify(msg, sig).unwrap() } /// Computes sighash for a legacy multisig transaction input that spends either a p2sh or a p2ms output. /// /// # Parameters /// -/// * `raw_tx` - spending tx hex -/// * `inp_idx` - spending tx input index -/// * `script_pubkey_bytes_opt` - Option with scriptPubKey bytes. If None, it's p2sh case, i.e., reftx output's scriptPubKey.type is "scripthash". In this case scriptPubkey is extracted from the spending transaction's scriptSig. If Some(), it's p2ms case, i.e., reftx output's scriptPubKey.type is "multisig", and the scriptPubkey is supplied from the referenced output. +/// * `raw_tx` - the spending tx hex +/// * `inp_idx` - the spending tx input index +/// * `script_pubkey_bytes_opt` - the Option with scriptPubKey bytes. If None, it's p2sh case, i.e., reftx output's scriptPubKey.type is "scripthash". In this case scriptPubkey is extracted from the spending transaction's scriptSig. If Some(), it's p2ms case, i.e., reftx output's scriptPubKey.type is "multisig", and the scriptPubkey is supplied from the referenced output. fn compute_sighash_legacy(raw_tx: &[u8], inp_idx: usize, script_pubkey_bytes_opt: Option<&[u8]>) { let tx: Transaction = consensus::deserialize(raw_tx).unwrap(); - let inp = &tx.input[inp_idx]; + let inp = &tx.inputs[inp_idx]; let script_sig = &inp.script_sig; println!("scriptSig is: {script_sig}"); let cache = sighash::SighashCache::new(&tx); @@ -79,14 +78,14 @@ fn compute_sighash_legacy(raw_tx: &[u8], inp_idx: usize, script_pubkey_bytes_opt script_pubkey_p2sh.push_bytes().unwrap().as_bytes() } }; - let script_code = Script::from_bytes(script_pubkey_bytes); + let script_code = ScriptPubKey::from_bytes(script_pubkey_bytes); let pushbytes_0 = instructions.remove(0).unwrap(); assert!( pushbytes_0.push_bytes().unwrap().as_bytes().is_empty(), "first in ScriptSig must be PUSHBYTES_0 got {pushbytes_0:?}" ); - //All other scriptSig instructions must be signatures + //All other scriptSig instructions must be signatures for instr in instructions { let sig = ecdsa::Signature::from_slice(instr.unwrap().push_bytes().unwrap().as_bytes()) .expect("failed to parse sig"); @@ -101,18 +100,18 @@ fn compute_sighash_legacy(raw_tx: &[u8], inp_idx: usize, script_pubkey_bytes_opt /// /// # Parameters /// -/// * `raw_tx` - spending tx hex -/// * `inp_idx` - spending tx input index -/// * `amount` - ref tx output value in sats +/// * `raw_tx` - the spending tx hex +/// * `inp_idx` - the spending tx input index +/// * `amount` - the ref tx output amount. fn compute_sighash_p2wsh(raw_tx: &[u8], inp_idx: usize, amount: Amount) { let tx: Transaction = consensus::deserialize(raw_tx).unwrap(); - let inp = &tx.input[inp_idx]; + let inp = &tx.inputs[inp_idx]; let witness = &inp.witness; println!("witness {witness:?}"); - //last element is called witnessScript according to BIP141. It supersedes scriptPubKey. + //last element is called witnessScript according to BIP-0141. It supersedes scriptPubKey. let witness_script_bytes: &[u8] = witness.last().expect("out of bounds"); - let witness_script = Script::from_bytes(witness_script_bytes); + let witness_script = WitnessScript::from_bytes(witness_script_bytes); let mut cache = sighash::SighashCache::new(&tx); //in an M of N multisig, the witness elements from 1 (0-based) to M-2 are signatures (with sighash flags as the last byte) @@ -145,12 +144,12 @@ fn sighash_p2wpkh() { //vin:0 let inp_idx = 0; - //output value from the referenced vout:0 from the referenced tx: + //output amount from the referenced vout:0 from the referenced tx: //bitcoin-cli getrawtransaction 752d675b9cc0bd14e0bd23969effee0005ad6d7e550dcc832f0216c7ffd4e15c 3 - let ref_out_value = Amount::from_sat_u32(200000000); + let ref_out_amount = Amount::from_sat_u32(200000000); println!("\nsighash_p2wpkh:"); - compute_sighash_p2wpkh(&raw_tx, inp_idx, ref_out_value); + compute_sighash_p2wpkh(&raw_tx, inp_idx, ref_out_amount); } fn sighash_p2sh_multisig_2x2() { @@ -174,13 +173,13 @@ fn sighash_p2wsh_multisig_2x2() { //bitcoin-cli decodescript 52210289da5da9d3700156db2d01e6362491733f6c886971791deda74b4e9d707190b2210323c437f30384498be79df2990ce5a8de00844e768c0ccce914335b6c26adea7352ae //its ASM is 2 0289da5da9d3700156db2d01e6362491733f6c886971791deda74b4e9d707190b2 0323c437f30384498be79df2990ce5a8de00844e768c0ccce914335b6c26adea73 2 OP_CHECKMULTISIG let raw_tx = hex!("010000000001011b9eb4122976fad8f809ee4cea8ac8d1c5b6b8e0d0f9f93327a5d78c9a3945280000000000ffffffff02ba3e0d00000000002200201c3b09401aaa7c9709d118a75d301bdb2180fb68b2e9b3ade8ad4ff7281780cfa586010000000000220020a41d0d894799879ca1bd88c1c3f1c2fd4b1592821cc3c5bfd5be5238b904b09f040047304402201c7563e876d67b5702aea5726cd202bf92d0b1dc52c4acd03435d6073e630bac022032b64b70d7fba0cb8be30b882ea06c5f8ec7288d113459dd5d3e294214e2c96201483045022100f532f7e3b8fd01a0edc86de4870db4e04858964d0a609df81deb99d9581e6c2e02206d9e9b6ab661176be8194faded62f518cdc6ee74dba919e0f35d77cff81f38e5014752210289da5da9d3700156db2d01e6362491733f6c886971791deda74b4e9d707190b2210323c437f30384498be79df2990ce5a8de00844e768c0ccce914335b6c26adea7352ae00000000"); - //For the witness transaction sighash computation, we need its referenced output's value from the original transaction: + //For the witness transaction sighash computation, we need its referenced output's amount from the original transaction: //bitcoin-cli getrawtransaction 2845399a8cd7a52733f9f9d0e0b8b6c5d1c88aea4cee09f8d8fa762912b49e1b 3 - //we need vout 0 value in sats: - let ref_out_value = Amount::from_sat_u32(968240); + //we need vout 0 amount: + let ref_out_amount = Amount::from_sat_u32(968240); println!("\nsighash_p2wsh_multisig_2x2:"); - compute_sighash_p2wsh(&raw_tx, 0, ref_out_value); + compute_sighash_p2wsh(&raw_tx, 0, ref_out_amount); } fn sighash_p2ms_multisig_2x3() { diff --git a/bitcoin/examples/sign-tx-segwit-v0.rs b/bitcoin/examples/sign-tx-segwit-v0.rs index e9a49385d5..5f64df68aa 100644 --- a/bitcoin/examples/sign-tx-segwit-v0.rs +++ b/bitcoin/examples/sign-tx-segwit-v0.rs @@ -2,15 +2,14 @@ //! Demonstrate creating a transaction that spends to and from p2wpkh outputs. -use bitcoin::address::script_pubkey::ScriptBufExt as _; +use bitcoin::ext::*; use bitcoin::key::WPubkeyHash; use bitcoin::locktime::absolute; -use bitcoin::secp256k1::{rand, Message, Secp256k1, SecretKey, Signing}; +use bitcoin::secp256k1::{rand, Message, SecretKey}; use bitcoin::sighash::{EcdsaSighashType, SighashCache}; -use bitcoin::witness::WitnessExt as _; use bitcoin::{ - transaction, Address, Amount, Network, OutPoint, ScriptBuf, Sequence, Transaction, TxIn, TxOut, - Txid, Witness, + transaction, Address, Amount, Network, OutPoint, ScriptPubKeyBuf, ScriptSigBuf, Sequence, + Transaction, TxIn, TxOut, Txid, Witness, }; const DUMMY_UTXO_AMOUNT: Amount = Amount::from_sat_u32(20_000_000); @@ -18,11 +17,9 @@ const SPEND_AMOUNT: Amount = Amount::from_sat_u32(5_000_000); const CHANGE_AMOUNT: Amount = Amount::from_sat_u32(14_999_000); // 1000 sat fee. fn main() { - let secp = Secp256k1::new(); - // Get a secret key we control and the pubkeyhash of the associated pubkey. // In a real application these would come from a stored secret. - let (sk, wpkh) = senders_keys(&secp); + let (sk, wpkh) = senders_keys(); // Get an address to send to. let address = receivers_address(); @@ -34,26 +31,26 @@ fn main() { // The input for the transaction we are constructing. let input = TxIn { previous_output: dummy_out_point, // The dummy output we are spending. - script_sig: ScriptBuf::default(), // For a p2wpkh script_sig is empty. + script_sig: ScriptSigBuf::default(), // For a p2wpkh script_sig is empty. sequence: Sequence::ENABLE_LOCKTIME_AND_RBF, witness: Witness::default(), // Filled in after signing. }; // The spend output is locked to a key controlled by the receiver. - let spend = TxOut { value: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; + let spend = TxOut { amount: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; // The change output is locked to a key controlled by us. let change = TxOut { - value: CHANGE_AMOUNT, - script_pubkey: ScriptBuf::new_p2wpkh(wpkh), // Change comes back to us. + amount: CHANGE_AMOUNT, + script_pubkey: ScriptPubKeyBuf::new_p2wpkh(wpkh), // Change comes back to us. }; // The transaction we want to sign and broadcast. let mut unsigned_tx = Transaction { - version: transaction::Version::TWO, // Post BIP-68. + version: transaction::Version::TWO, // Post BIP-0068. lock_time: absolute::LockTime::ZERO, // Ignore the locktime. - input: vec![input], // Input goes into index 0. - output: vec![spend, change], // Outputs, order does not matter. + inputs: vec![input], // Input goes into index 0. + outputs: vec![spend, change], // Outputs, order does not matter. }; let input_index = 0; @@ -71,11 +68,11 @@ fn main() { // Sign the sighash using the secp256k1 library (exported by rust-bitcoin). let msg = Message::from(sighash); - let signature = secp.sign_ecdsa(&msg, &sk); + let signature = secp256k1::ecdsa::sign(msg, &sk); // Update the witness stack. let signature = bitcoin::ecdsa::Signature { signature, sighash_type }; - let pk = sk.public_key(&secp); + let pk = sk.public_key(); *sighasher.witness_mut(input_index).unwrap() = Witness::p2wpkh(signature, pk); // Get the signed transaction. @@ -88,9 +85,9 @@ fn main() { /// An example of keys controlled by the transaction sender. /// /// In a real application these would be actual secrets. -fn senders_keys(secp: &Secp256k1) -> (SecretKey, WPubkeyHash) { - let sk = SecretKey::new(&mut rand::thread_rng()); - let pk = bitcoin::PublicKey::new(sk.public_key(secp)); +fn senders_keys() -> (SecretKey, WPubkeyHash) { + let sk = SecretKey::new(&mut rand::rng()); + let pk = bitcoin::PublicKey::new(sk.public_key()); let wpkh = pk.wpubkey_hash().expect("key is compressed"); (sk, wpkh) @@ -113,19 +110,19 @@ fn receivers_address() -> Address { /// /// An utxo is described by the `OutPoint` (txid and index within the transaction that it was /// created). Using the out point one can get the transaction by `txid` and using the `vout` get the -/// transaction value and script pubkey (`TxOut`) of the utxo. +/// transaction amount and script pubkey (`TxOut`) of the utxo. /// /// This output is locked to keys that we control, in a real application this would be a valid /// output taken from a transaction that appears in the chain. fn dummy_unspent_transaction_output(wpkh: WPubkeyHash) -> (OutPoint, TxOut) { - let script_pubkey = ScriptBuf::new_p2wpkh(wpkh); + let script_pubkey = ScriptPubKeyBuf::new_p2wpkh(wpkh); let out_point = OutPoint { txid: Txid::from_byte_array([0xFF; 32]), // Arbitrary invalid dummy value. vout: 0, }; - let utxo = TxOut { value: DUMMY_UTXO_AMOUNT, script_pubkey }; + let utxo = TxOut { amount: DUMMY_UTXO_AMOUNT, script_pubkey }; (out_point, utxo) } diff --git a/bitcoin/examples/sign-tx-taproot.rs b/bitcoin/examples/sign-tx-taproot.rs index a68c968b4b..a1554966e6 100644 --- a/bitcoin/examples/sign-tx-taproot.rs +++ b/bitcoin/examples/sign-tx-taproot.rs @@ -2,15 +2,14 @@ //! Demonstrate creating a transaction that spends to and from p2tr outputs. -use bitcoin::address::script_pubkey::ScriptBufExt as _; +use bitcoin::ext::*; use bitcoin::key::{Keypair, TapTweak, TweakedKeypair, UntweakedPublicKey}; use bitcoin::locktime::absolute; -use bitcoin::secp256k1::{rand, Message, Secp256k1, SecretKey, Signing, Verification}; +use bitcoin::secp256k1::{rand, SecretKey}; use bitcoin::sighash::{Prevouts, SighashCache, TapSighashType}; -use bitcoin::witness::WitnessExt as _; use bitcoin::{ - transaction, Address, Amount, Network, OutPoint, ScriptBuf, Sequence, Transaction, TxIn, TxOut, - Txid, Witness, + transaction, Address, Amount, Network, OutPoint, ScriptPubKeyBuf, ScriptSigBuf, Sequence, + Transaction, TxIn, TxOut, Txid, Witness, }; const DUMMY_UTXO_AMOUNT: Amount = Amount::from_sat_u32(20_000_000); @@ -18,15 +17,13 @@ const SPEND_AMOUNT: Amount = Amount::from_sat_u32(5_000_000); const CHANGE_AMOUNT: Amount = Amount::from_sat_u32(14_999_000); // 1000 sat fee. fn main() { - let secp = Secp256k1::new(); - // Get a keypair we control. In a real application these would come from a stored secret. - let keypair = senders_keys(&secp); + let keypair = senders_keys(); let (internal_key, _parity) = keypair.x_only_public_key(); // Get an unspent output that is locked to the key above that we control. // In a real application these would come from the chain. - let (dummy_out_point, dummy_utxo) = dummy_unspent_transaction_output(&secp, internal_key); + let (dummy_out_point, dummy_utxo) = dummy_unspent_transaction_output(internal_key); // Get an address to send to. let address = receivers_address(); @@ -34,26 +31,26 @@ fn main() { // The input for the transaction we are constructing. let input = TxIn { previous_output: dummy_out_point, // The dummy output we are spending. - script_sig: ScriptBuf::default(), // For a p2tr script_sig is empty. + script_sig: ScriptSigBuf::default(), // For a p2tr script_sig is empty. sequence: Sequence::ENABLE_LOCKTIME_AND_RBF, witness: Witness::default(), // Filled in after signing. }; // The spend output is locked to a key controlled by the receiver. - let spend = TxOut { value: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; + let spend = TxOut { amount: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; // The change output is locked to a key controlled by us. let change = TxOut { - value: CHANGE_AMOUNT, - script_pubkey: ScriptBuf::new_p2tr(&secp, internal_key, None), // Change comes back to us. + amount: CHANGE_AMOUNT, + script_pubkey: ScriptPubKeyBuf::new_p2tr(internal_key, None), // Change comes back to us. }; // The transaction we want to sign and broadcast. let mut unsigned_tx = Transaction { - version: transaction::Version::TWO, // Post BIP-68. + version: transaction::Version::TWO, // Post BIP-0068. lock_time: absolute::LockTime::ZERO, // Ignore the locktime. - input: vec![input], // Input goes into index 0. - output: vec![spend, change], // Outputs, order does not matter. + inputs: vec![input], // Input goes into index 0. + outputs: vec![spend, change], // Outputs, order does not matter. }; let input_index = 0; @@ -69,9 +66,8 @@ fn main() { .expect("failed to construct sighash"); // Sign the sighash using the secp256k1 library (exported by rust-bitcoin). - let tweaked: TweakedKeypair = keypair.tap_tweak(&secp, None); - let msg = Message::from(sighash); - let signature = secp.sign_schnorr(msg.as_ref(), tweaked.as_keypair()); + let tweaked: TweakedKeypair = keypair.tap_tweak(None); + let signature = secp256k1::schnorr::sign(&sighash.to_byte_array(), tweaked.as_keypair()); // Update the witness stack. let signature = bitcoin::taproot::Signature { signature, sighash_type }; @@ -87,9 +83,9 @@ fn main() { /// An example of keys controlled by the transaction sender. /// /// In a real application these would be actual secrets. -fn senders_keys(secp: &Secp256k1) -> Keypair { - let sk = SecretKey::new(&mut rand::thread_rng()); - Keypair::from_secret_key(secp, &sk) +fn senders_keys() -> Keypair { + let sk = SecretKey::new(&mut rand::rng()); + Keypair::from_secret_key(&sk) } /// A dummy address for the receiver. @@ -105,27 +101,26 @@ fn receivers_address() -> Address { .expect("valid address for mainnet") } -/// Constructs a new p2wpkh output locked to the key associated with `wpkh`. +/// Constructs a new p2tr output locked to the key associated with `internal_key`. /// /// An utxo is described by the `OutPoint` (txid and index within the transaction that it was /// created). Using the out point one can get the transaction by `txid` and using the `vout` get the -/// transaction value and script pubkey (`TxOut`) of the utxo. +/// transaction amount and script pubkey (`TxOut`) of the utxo. /// /// This output is locked to keys that we control, in a real application this would be a valid /// output taken from a transaction that appears in the chain. -fn dummy_unspent_transaction_output>( - secp: &Secp256k1, +fn dummy_unspent_transaction_output>( internal_key: K, ) -> (OutPoint, TxOut) { let internal_key = internal_key.into(); - let script_pubkey = ScriptBuf::new_p2tr(secp, internal_key, None); + let script_pubkey = ScriptPubKeyBuf::new_p2tr(internal_key, None); let out_point = OutPoint { txid: Txid::from_byte_array([0xFF; 32]), // Arbitrary invalid dummy value. vout: 0, }; - let utxo = TxOut { value: DUMMY_UTXO_AMOUNT, script_pubkey }; + let utxo = TxOut { amount: DUMMY_UTXO_AMOUNT, script_pubkey }; (out_point, utxo) } diff --git a/bitcoin/examples/taproot-psbt-simple.rs b/bitcoin/examples/taproot-psbt-simple.rs index c35dbe4635..6bb28580c2 100644 --- a/bitcoin/examples/taproot-psbt-simple.rs +++ b/bitcoin/examples/taproot-psbt-simple.rs @@ -22,16 +22,15 @@ //! The miner's fee will be 10,000 satoshis. use std::collections::BTreeMap; -use bitcoin::address::script_pubkey::ScriptBufExt as _; use bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, IntoDerivationPath, Xpriv, Xpub}; +use bitcoin::ext::*; use bitcoin::key::UntweakedPublicKey; use bitcoin::locktime::absolute; use bitcoin::psbt::Input; -use bitcoin::secp256k1::{Secp256k1, Signing}; -use bitcoin::witness::WitnessExt as _; use bitcoin::{ - consensus, transaction, Address, Amount, Network, OutPoint, Psbt, ScriptBuf, Sequence, - TapLeafHash, TapSighashType, Transaction, TxIn, TxOut, Txid, Witness, XOnlyPublicKey, + consensus, transaction, Address, Amount, Network, OutPoint, Psbt, ScriptPubKeyBuf, + ScriptSigBuf, Sequence, TapLeafHash, TapSighashType, Transaction, TxIn, TxOut, Txid, Witness, + XOnlyPublicKey, }; // The master xpriv, from which we derive the keys we control. @@ -53,35 +52,27 @@ const SPEND_AMOUNT: Amount = Amount::from_sat_u32(25_000_000); const CHANGE_AMOUNT: Amount = Amount::from_sat_u32(4_990_000); // 10_000 sat fee. // Derive the external address xpriv. -fn get_external_address_xpriv( - secp: &Secp256k1, - master_xpriv: Xpriv, - index: u32, -) -> Xpriv { +fn get_external_address_xpriv(master_xpriv: Xpriv, index: u32) -> Xpriv { let derivation_path = BIP86_DERIVATION_PATH.into_derivation_path().expect("valid derivation path"); let child_xpriv = - master_xpriv.derive_xpriv(secp, &derivation_path).expect("only deriving three steps"); + master_xpriv.derive_xpriv(&derivation_path).expect("only deriving three steps"); let external_index = ChildNumber::ZERO_NORMAL; let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); - child_xpriv.derive_xpriv(secp, &[external_index, idx]).expect("only deriving two more steps") + child_xpriv.derive_xpriv([external_index, idx]).expect("only deriving two more steps") } // Derive the internal address xpriv. -fn get_internal_address_xpriv( - secp: &Secp256k1, - master_xpriv: Xpriv, - index: u32, -) -> Xpriv { +fn get_internal_address_xpriv(master_xpriv: Xpriv, index: u32) -> Xpriv { let derivation_path = BIP86_DERIVATION_PATH.into_derivation_path().expect("valid derivation path"); let child_xpriv = - master_xpriv.derive_xpriv(secp, &derivation_path).expect("only deriving three steps"); + master_xpriv.derive_xpriv(&derivation_path).expect("only deriving three steps"); let internal_index = ChildNumber::ONE_NORMAL; let idx = ChildNumber::from_normal_idx(index).expect("valid index number"); - child_xpriv.derive_xpriv(secp, &[internal_index, idx]).expect("only deriving two more steps") + child_xpriv.derive_xpriv([internal_index, idx]).expect("only deriving two more steps") } // Get the Taproot Key Origin. @@ -119,7 +110,7 @@ fn dummy_unspent_transaction_outputs() -> Vec<(OutPoint, TxOut)> { vout: 0, }; - let utxo_1 = TxOut { value: DUMMY_UTXO_AMOUNT_INPUT_1, script_pubkey: script_pubkey_1 }; + let utxo_1 = TxOut { amount: DUMMY_UTXO_AMOUNT_INPUT_1, script_pubkey: script_pubkey_1 }; let script_pubkey_2 = "bc1pfd0jmmdnp278vppcw68tkkmquxtq50xchy7f6wdmjtjm7fgsr8dszdcqce" .parse::>() @@ -133,23 +124,21 @@ fn dummy_unspent_transaction_outputs() -> Vec<(OutPoint, TxOut)> { vout: 1, }; - let utxo_2 = TxOut { value: DUMMY_UTXO_AMOUNT_INPUT_2, script_pubkey: script_pubkey_2 }; + let utxo_2 = TxOut { amount: DUMMY_UTXO_AMOUNT_INPUT_2, script_pubkey: script_pubkey_2 }; vec![(out_point_1, utxo_1), (out_point_2, utxo_2)] } fn main() { - let secp = Secp256k1::new(); - // Get the individual xprivs we control. In a real application these would come from a stored secret. let master_xpriv = XPRIV.parse::().expect("valid xpriv"); - let xpriv_input_1 = get_external_address_xpriv(&secp, master_xpriv, 0); - let xpriv_input_2 = get_internal_address_xpriv(&secp, master_xpriv, 0); - let xpriv_change = get_internal_address_xpriv(&secp, master_xpriv, 1); + let xpriv_input_1 = get_external_address_xpriv(master_xpriv, 0); + let xpriv_input_2 = get_internal_address_xpriv(master_xpriv, 0); + let xpriv_change = get_internal_address_xpriv(master_xpriv, 1); // Get the PKs - let (pk_input_1, _) = Xpub::from_xpriv(&secp, &xpriv_input_1).public_key.x_only_public_key(); - let (pk_input_2, _) = Xpub::from_xpriv(&secp, &xpriv_input_2).public_key.x_only_public_key(); - let (pk_change, _) = Xpub::from_xpriv(&secp, &xpriv_change).public_key.x_only_public_key(); + let (pk_input_1, _) = Xpub::from_xpriv(&xpriv_input_1).public_key.x_only_public_key(); + let (pk_input_2, _) = Xpub::from_xpriv(&xpriv_input_2).public_key.x_only_public_key(); + let (pk_change, _) = Xpub::from_xpriv(&xpriv_change).public_key.x_only_public_key(); // Get the Tap Key Origins // Map of tap root X-only keys to origin info and leaf hashes contained in it. @@ -178,27 +167,27 @@ fn main() { .into_iter() .map(|(outpoint, _)| TxIn { previous_output: outpoint, - script_sig: ScriptBuf::default(), + script_sig: ScriptSigBuf::default(), sequence: Sequence::ENABLE_LOCKTIME_AND_RBF, witness: Witness::default(), }) .collect(); // The spend output is locked to a key controlled by the receiver. - let spend = TxOut { value: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; + let spend = TxOut { amount: SPEND_AMOUNT, script_pubkey: address.script_pubkey() }; // The change output is locked to a key controlled by us. let change = TxOut { - value: CHANGE_AMOUNT, - script_pubkey: ScriptBuf::new_p2tr(&secp, pk_change, None), // Change comes back to us. + amount: CHANGE_AMOUNT, + script_pubkey: ScriptPubKeyBuf::new_p2tr(pk_change, None), // Change comes back to us. }; // The transaction we want to sign and broadcast. let unsigned_tx = Transaction { version: transaction::Version::TWO, // Post BIP 68. lock_time: absolute::LockTime::ZERO, // Ignore the locktime. - input: inputs, // Input is 0-indexed. - output: vec![spend, change], // Outputs, order does not matter. + inputs, // Input is 0-indexed. + outputs: vec![spend, change], // Outputs, order does not matter. }; // Now we'll start the PSBT workflow. @@ -227,7 +216,7 @@ fn main() { ]; // Step 3: Signer role; that signs the PSBT. - psbt.sign(&master_xpriv, &secp).expect("valid signature"); + psbt.sign(&master_xpriv).expect("valid signature"); // Step 4: Finalizer role; that finalizes the PSBT. psbt.inputs.iter_mut().for_each(|input| { diff --git a/bitcoin/examples/taproot-psbt.rs b/bitcoin/examples/taproot-psbt.rs index 39b70f9f4e..2b5ef494b5 100644 --- a/bitcoin/examples/taproot-psbt.rs +++ b/bitcoin/examples/taproot-psbt.rs @@ -77,27 +77,22 @@ const UTXO_3: P2trUtxo = P2trUtxo { use std::collections::BTreeMap; -use bitcoin::address::script_pubkey::{BuilderExt as _, ScriptBufExt as _}; use bitcoin::bip32::{ChildNumber, DerivationPath, Fingerprint, Xpriv, Xpub}; use bitcoin::consensus::encode; -use bitcoin::consensus_validation::TransactionExt as _; +use bitcoin::ext::*; use bitcoin::key::{TapTweak, XOnlyPublicKey}; use bitcoin::opcodes::all::{OP_CHECKSIG, OP_CLTV, OP_DROP}; use bitcoin::psbt::{self, Input, Output, Psbt, PsbtSighashType}; -use bitcoin::script::{ScriptBufExt as _, ScriptExt as _}; -use bitcoin::secp256k1::Secp256k1; use bitcoin::sighash::{self, SighashCache, TapSighash, TapSighashType}; use bitcoin::taproot::{self, LeafVersion, TapLeafHash, TaprootBuilder, TaprootSpendInfo}; use bitcoin::{ - absolute, script, transaction, Address, Amount, Network, OutPoint, ScriptBuf, Transaction, - TxIn, TxOut, Witness, + absolute, script, transaction, Address, Amount, Network, OutPoint, ScriptPubKeyBuf, + ScriptSigBuf, TapScriptBuf, Transaction, TxIn, TxOut, Witness, }; fn main() -> Result<(), Box> { - let secp = Secp256k1::new(); - println!("\n----------------"); - println!("\nSTART EXAMPLE 1 - P2TR with a BIP86 commitment, signed with internal key\n"); + println!("\nSTART EXAMPLE 1 - P2TR with a BIP-0086 commitment, signed with internal key\n"); // Just some addresses for outputs from our wallets. Not really important. let to_address = "bcrt1p0p3rvwww0v9znrclp00uneq8ytre9kj922v8fxhnezm3mgsmn9usdxaefc" @@ -114,14 +109,13 @@ fn main() -> Result<(), Box> { .ok_or("fees more than input amount!")?; let tx_hex_string = encode::serialize_hex(&generate_bip86_key_spend_tx( - &secp, // The master extended private key from the descriptor in step 4 BENEFACTOR_XPRIV_STR.parse::()?, // Set these fields with valid data for the UTXO from step 5 above UTXO_1, vec![ - TxOut { value: amount_to_send, script_pubkey: to_address.script_pubkey() }, - TxOut { value: change_amount, script_pubkey: change_address.script_pubkey() }, + TxOut { amount: amount_to_send, script_pubkey: to_address.script_pubkey() }, + TxOut { amount: change_amount, script_pubkey: change_address.script_pubkey() }, ], )?); println!( @@ -220,7 +214,6 @@ struct P2trUtxo<'a> { #[allow(clippy::single_element_loop)] fn generate_bip86_key_spend_tx( - secp: &secp256k1::Secp256k1, master_xpriv: Xpriv, input_utxo: P2trUtxo, outputs: Vec, @@ -232,13 +225,13 @@ fn generate_bip86_key_spend_tx( let tx1 = Transaction { version: transaction::Version::TWO, lock_time: absolute::LockTime::ZERO, - input: vec![TxIn { + inputs: vec![TxIn { previous_output: OutPoint { txid: input_utxo.txid.parse()?, vout: input_utxo.vout }, - script_sig: ScriptBuf::new(), + script_sig: ScriptSigBuf::new(), sequence: bitcoin::Sequence(0xFFFFFFFF), // Ignore nSequence. witness: Witness::default(), }], - output: outputs, + outputs, }; let mut psbt = Psbt::from_unsigned_tx(tx1)?; @@ -256,9 +249,10 @@ fn generate_bip86_key_spend_tx( let mut input = Input { witness_utxo: { - let script_pubkey = ScriptBuf::from_hex_no_length_prefix(input_utxo.script_pubkey) - .expect("failed to parse input utxo scriptPubkey"); - Some(TxOut { value: from_amount, script_pubkey }) + let script_pubkey = + ScriptPubKeyBuf::from_hex_no_length_prefix(input_utxo.script_pubkey) + .expect("failed to parse input utxo scriptPubkey"); + Some(TxOut { amount: from_amount, script_pubkey }) }, tap_key_origins: origins, ..Default::default() @@ -273,8 +267,8 @@ fn generate_bip86_key_spend_tx( let mut input_txouts = Vec::::new(); for input in [&input_utxo].iter() { input_txouts.push(TxOut { - value: input.amount, - script_pubkey: ScriptBuf::from_hex_no_length_prefix(input.script_pubkey)?, + amount: input.amount, + script_pubkey: ScriptPubKeyBuf::from_hex_no_length_prefix(input.script_pubkey)?, }); } @@ -297,8 +291,7 @@ fn generate_bip86_key_spend_tx( .get(&input.tap_internal_key.ok_or("internal key missing in PSBT")?) .ok_or("missing Taproot key origin")?; - let secret_key = - master_xpriv.derive_xpriv(secp, &derivation_path)?.to_private_key().inner; + let secret_key = master_xpriv.derive_xpriv(derivation_path)?.to_private_key().inner; sign_psbt_taproot( secret_key, input.tap_internal_key.unwrap(), @@ -306,7 +299,6 @@ fn generate_bip86_key_spend_tx( input, hash, sighash_type, - secp, ); Ok(()) @@ -331,8 +323,9 @@ fn generate_bip86_key_spend_tx( let tx = psbt.extract_tx_unchecked_fee_rate(); tx.verify(|_| { Some(TxOut { - value: from_amount, - script_pubkey: ScriptBuf::from_hex_no_length_prefix(input_utxo.script_pubkey).unwrap(), + amount: from_amount, + script_pubkey: ScriptPubKeyBuf::from_hex_no_length_prefix(input_utxo.script_pubkey) + .unwrap(), }) }) .expect("failed to verify transaction"); @@ -347,7 +340,6 @@ struct BenefactorWallet { beneficiary_xpub: Xpub, current_spend_info: Option, next_psbt: Option, - secp: Secp256k1, next: ChildNumber, } @@ -361,7 +353,6 @@ impl BenefactorWallet { beneficiary_xpub, current_spend_info: None, next_psbt: None, - secp: Secp256k1::new(), next: ChildNumber::ZERO_NORMAL, }) } @@ -369,7 +360,7 @@ impl BenefactorWallet { fn time_lock_script( locktime: absolute::LockTime, beneficiary_key: XOnlyPublicKey, - ) -> ScriptBuf { + ) -> TapScriptBuf { script::Builder::new() .push_lock_time(locktime) .push_opcode(OP_CLTV) @@ -386,7 +377,9 @@ impl BenefactorWallet { ) -> Result<(Transaction, Psbt), Box> { if let ChildNumber::Normal { index } = self.next { if index > 0 && self.current_spend_info.is_some() { - return Err("transaction already exists, use refresh_inheritance_timelock to refresh the timelock".into()); + return Err( + "transaction already exists, use refresh_tx to refresh the timelock".into() + ); } } // We use some other derivation path in this example for our inheritance protocol. The important thing is to ensure @@ -394,11 +387,11 @@ impl BenefactorWallet { let derivation_path = format!("101/1/0/0/{}", self.next).parse::()?; let internal_keypair = self .master_xpriv - .derive_xpriv(&self.secp, &derivation_path) + .derive_xpriv(&derivation_path) .expect("derivation path is short") - .to_keypair(&self.secp); + .to_keypair(); let beneficiary_key = - self.beneficiary_xpub.derive_xpub(&self.secp, &derivation_path)?.to_x_only_public_key(); + self.beneficiary_xpub.derive_xpub(&derivation_path)?.to_x_only_public_key(); // Build up the leaf script and combine with internal key into a Taproot commitment let script = Self::time_lock_script(lock_time, beneficiary_key); @@ -406,36 +399,34 @@ impl BenefactorWallet { let taproot_spend_info = TaprootBuilder::new() .add_leaf(0, script.clone())? - .finalize(&self.secp, internal_keypair.x_only_public_key().0) + .finalize(internal_keypair.x_only_public_key().0) .expect("should be finalizable"); self.current_spend_info = Some(taproot_spend_info.clone()); - let script_pubkey = ScriptBuf::new_p2tr( - &self.secp, + let script_pubkey = ScriptPubKeyBuf::new_p2tr( taproot_spend_info.internal_key(), taproot_spend_info.merkle_root(), ); - let value = (input_utxo.amount - ABSOLUTE_FEES) + let amount = (input_utxo.amount - ABSOLUTE_FEES) .expect("ABSOLUTE_FEES must be set below input amount"); - // Spend a normal BIP86-like output as an input in our inheritance funding transaction + // Spend a normal BIP-0086-like output as an input in our inheritance funding transaction let tx = generate_bip86_key_spend_tx( - &self.secp, self.master_xpriv, input_utxo, - vec![TxOut { script_pubkey: script_pubkey.clone(), value }], + vec![TxOut { script_pubkey: script_pubkey.clone(), amount }], )?; // CREATOR + UPDATER let next_tx = Transaction { version: transaction::Version::TWO, lock_time, - input: vec![TxIn { + inputs: vec![TxIn { previous_output: OutPoint { txid: tx.compute_txid(), vout: 0 }, - script_sig: ScriptBuf::new(), + script_sig: ScriptSigBuf::new(), sequence: bitcoin::Sequence(0xFFFFFFFD), // enable locktime and opt-in RBF witness: Witness::default(), }], - output: vec![], + outputs: vec![], }; let mut next_psbt = Psbt::from_unsigned_tx(next_tx)?; let mut origins = BTreeMap::new(); @@ -445,7 +436,7 @@ impl BenefactorWallet { ); origins.insert( internal_keypair.x_only_public_key().0.into(), - (vec![], (self.master_xpriv.fingerprint(&self.secp), derivation_path)), + (vec![], (self.master_xpriv.fingerprint(), derivation_path)), ); let ty = "SIGHASH_ALL".parse::()?; let mut tap_scripts = BTreeMap::new(); @@ -455,7 +446,7 @@ impl BenefactorWallet { ); let input = Input { - witness_utxo: { Some(TxOut { value, script_pubkey }) }, + witness_utxo: { Some(TxOut { amount, script_pubkey }) }, tap_key_origins: origins, tap_merkle_root: taproot_spend_info.merkle_root(), sighash_type: Some(ty), @@ -478,8 +469,8 @@ impl BenefactorWallet { if let Some(ref spend_info) = self.current_spend_info.clone() { let mut psbt = self.next_psbt.clone().expect("should have next_psbt"); let input = &mut psbt.inputs[0]; - let input_value = input.witness_utxo.as_ref().unwrap().value; - let output_value = (input_value - ABSOLUTE_FEES).into_result()?; + let input_amount = input.witness_utxo.as_ref().unwrap().amount; + let output_amount = (input_amount - ABSOLUTE_FEES).into_result()?; // We use some other derivation path in this example for our inheritance protocol. The important thing is to ensure // that we use an unhardened path so we can make use of xpubs. @@ -487,13 +478,11 @@ impl BenefactorWallet { format!("101/1/0/0/{}", self.next).parse::()?; let new_internal_keypair = self .master_xpriv - .derive_xpriv(&self.secp, &new_derivation_path) + .derive_xpriv(&new_derivation_path) .expect("derivation path is short") - .to_keypair(&self.secp); - let beneficiary_key = self - .beneficiary_xpub - .derive_xpub(&self.secp, &new_derivation_path)? - .to_x_only_public_key(); + .to_keypair(); + let beneficiary_key = + self.beneficiary_xpub.derive_xpub(&new_derivation_path)?.to_x_only_public_key(); // Build up the leaf script and combine with internal key into a Taproot commitment let lock_time = absolute::LockTime::from_height( @@ -505,18 +494,17 @@ impl BenefactorWallet { let taproot_spend_info = TaprootBuilder::new() .add_leaf(0, script.clone())? - .finalize(&self.secp, new_internal_keypair.x_only_public_key().0) + .finalize(new_internal_keypair.x_only_public_key().0) .expect("should be finalizable"); self.current_spend_info = Some(taproot_spend_info.clone()); let prevout_script_pubkey = input.witness_utxo.as_ref().unwrap().script_pubkey.clone(); - let output_script_pubkey = ScriptBuf::new_p2tr( - &self.secp, + let output_script_pubkey = ScriptPubKeyBuf::new_p2tr( taproot_spend_info.internal_key(), taproot_spend_info.merkle_root(), ); - psbt.unsigned_tx.output = - vec![TxOut { script_pubkey: output_script_pubkey.clone(), value: output_value }]; + psbt.unsigned_tx.outputs = + vec![TxOut { script_pubkey: output_script_pubkey.clone(), amount: output_amount }]; psbt.outputs = vec![Output::default()]; psbt.unsigned_tx.lock_time = absolute::LockTime::ZERO; @@ -527,7 +515,7 @@ impl BenefactorWallet { let hash = SighashCache::new(&psbt.unsigned_tx).taproot_key_spend_signature_hash( 0, &sighash::Prevouts::All(&[TxOut { - value: input_value, + amount: input_amount, script_pubkey: prevout_script_pubkey, }]), sighash_type, @@ -540,7 +528,7 @@ impl BenefactorWallet { .ok_or("missing Taproot key origin")?; let secret_key = self .master_xpriv - .derive_xpriv(&self.secp, &derivation_path) + .derive_xpriv(derivation_path) .expect("derivation path is short") .to_private_key() .inner; @@ -551,7 +539,6 @@ impl BenefactorWallet { input, hash, sighash_type, - &self.secp, ); } @@ -572,20 +559,20 @@ impl BenefactorWallet { // EXTRACTOR let tx = psbt.extract_tx_unchecked_fee_rate(); tx.verify(|_| { - Some(TxOut { value: input_value, script_pubkey: output_script_pubkey.clone() }) + Some(TxOut { amount: input_amount, script_pubkey: output_script_pubkey.clone() }) }) .expect("failed to verify transaction"); let next_tx = Transaction { version: transaction::Version::TWO, lock_time, - input: vec![TxIn { + inputs: vec![TxIn { previous_output: OutPoint { txid: tx.compute_txid(), vout: 0 }, - script_sig: ScriptBuf::new(), + script_sig: ScriptSigBuf::new(), sequence: bitcoin::Sequence(0xFFFFFFFD), // enable locktime and opt-in RBF witness: Witness::default(), }], - output: vec![], + outputs: vec![], }; let mut next_psbt = Psbt::from_unsigned_tx(next_tx)?; let mut origins = BTreeMap::new(); @@ -605,9 +592,9 @@ impl BenefactorWallet { let input = Input { witness_utxo: { let script_pubkey = output_script_pubkey; - let amount = output_value; + let amount = output_amount; - Some(TxOut { value: amount, script_pubkey }) + Some(TxOut { amount, script_pubkey }) }, tap_key_origins: origins, tap_merkle_root: taproot_spend_info.merkle_root(), @@ -632,15 +619,14 @@ impl BenefactorWallet { /// after some expiry using CLTV. struct BeneficiaryWallet { master_xpriv: Xpriv, - secp: secp256k1::Secp256k1, } impl BeneficiaryWallet { fn new(master_xpriv: Xpriv) -> Result> { - Ok(Self { master_xpriv, secp: Secp256k1::new() }) + Ok(Self { master_xpriv }) } - fn master_xpub(&self) -> Xpub { Xpub::from_xpriv(&self.secp, &self.master_xpriv) } + fn master_xpub(&self) -> Xpub { Xpub::from_xpriv(&self.master_xpriv) } fn spend_inheritance( &self, @@ -648,13 +634,13 @@ impl BeneficiaryWallet { lock_time: absolute::LockTime, to_address: Address, ) -> Result> { - let input_value = psbt.inputs[0].witness_utxo.as_ref().unwrap().value; + let input_amount = psbt.inputs[0].witness_utxo.as_ref().unwrap().amount; let input_script_pubkey = psbt.inputs[0].witness_utxo.as_ref().unwrap().script_pubkey.clone(); psbt.unsigned_tx.lock_time = lock_time; - psbt.unsigned_tx.output = vec![TxOut { + psbt.unsigned_tx.outputs = vec![TxOut { script_pubkey: to_address.script_pubkey(), - value: (input_value - ABSOLUTE_FEES) + amount: (input_amount - ABSOLUTE_FEES) .expect("ABSOLUTE_FEES must be set below input amount"), }]; psbt.outputs = vec![Output::default()]; @@ -664,17 +650,14 @@ impl BeneficiaryWallet { for (x_only_pubkey, (leaf_hashes, (_, derivation_path))) in &psbt.inputs[0].tap_key_origins.clone() { - let secret_key = self - .master_xpriv - .derive_xpriv(&self.secp, &derivation_path)? - .to_private_key() - .inner; + let secret_key = + self.master_xpriv.derive_xpriv(derivation_path)?.to_private_key().inner; for lh in leaf_hashes { let sighash_type = TapSighashType::All; let hash = SighashCache::new(&unsigned_tx).taproot_script_spend_signature_hash( 0, &sighash::Prevouts::All(&[TxOut { - value: input_value, + amount: input_amount, script_pubkey: input_script_pubkey.clone(), }]), *lh, @@ -687,7 +670,6 @@ impl BeneficiaryWallet { &mut psbt.inputs[0], hash, sighash_type, - &self.secp, ); } } @@ -718,7 +700,7 @@ impl BeneficiaryWallet { // EXTRACTOR let tx = psbt.extract_tx_unchecked_fee_rate(); tx.verify(|_| { - Some(TxOut { value: input_value, script_pubkey: input_script_pubkey.clone() }) + Some(TxOut { amount: input_amount, script_pubkey: input_script_pubkey.clone() }) }) .expect("failed to verify transaction"); @@ -747,16 +729,14 @@ fn sign_psbt_taproot( psbt_input: &mut psbt::Input, hash: TapSighash, sighash_type: TapSighashType, - secp: &Secp256k1, ) { - let keypair = secp256k1::Keypair::from_seckey_slice(secp, secret_key.as_ref()).unwrap(); + let keypair = secp256k1::Keypair::from_seckey_byte_array(secret_key.to_secret_bytes()).unwrap(); let keypair = match leaf_hash { - None => keypair.tap_tweak(secp, psbt_input.tap_merkle_root).to_keypair(), + None => keypair.tap_tweak(psbt_input.tap_merkle_root).to_keypair(), Some(_) => keypair, // no tweak for script spend }; - let msg = secp256k1::Message::from(hash); - let signature = secp.sign_schnorr(msg.as_ref(), &keypair); + let signature = secp256k1::schnorr::sign(&hash.to_byte_array(), &keypair); let final_signature = taproot::Signature { signature, sighash_type }; diff --git a/bitcoin/src/address/error.rs b/bitcoin/src/address/error.rs index f1479425c1..822909200f 100644 --- a/bitcoin/src/address/error.rs +++ b/bitcoin/src/address/error.rs @@ -28,12 +28,10 @@ impl From for FromScriptError { impl fmt::Display for FromScriptError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use FromScriptError::*; - - match *self { - WitnessVersion(ref e) => write_err!(f, "witness version construction error"; e), - WitnessProgram(ref e) => write_err!(f, "witness program error"; e), - UnrecognizedScript => write!(f, "script is not a p2pkh, p2sh or witness program"), + match self { + Self::WitnessVersion(ref e) => write_err!(f, "witness version construction error"; e), + Self::WitnessProgram(ref e) => write_err!(f, "witness program error"; e), + Self::UnrecognizedScript => write!(f, "script is not a p2pkh, p2sh or witness program"), } } } @@ -41,12 +39,10 @@ impl fmt::Display for FromScriptError { #[cfg(feature = "std")] impl std::error::Error for FromScriptError { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use FromScriptError::*; - - match *self { - UnrecognizedScript => None, - WitnessVersion(ref e) => Some(e), - WitnessProgram(ref e) => Some(e), + match self { + Self::UnrecognizedScript => None, + Self::WitnessVersion(ref e) => Some(e), + Self::WitnessProgram(ref e) => Some(e), } } } @@ -93,12 +89,10 @@ impl From for ParseError { impl fmt::Display for ParseError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use ParseError::*; - - match *self { - Base58(ref e) => write_err!(f, "base58 error"; e), - Bech32(ref e) => write_err!(f, "bech32 error"; e), - NetworkValidation(ref e) => write_err!(f, "validation error"; e), + match self { + Self::Base58(ref e) => write_err!(f, "base58 error"; e), + Self::Bech32(ref e) => write_err!(f, "bech32 error"; e), + Self::NetworkValidation(ref e) => write_err!(f, "validation error"; e), } } } @@ -106,12 +100,10 @@ impl fmt::Display for ParseError { #[cfg(feature = "std")] impl std::error::Error for ParseError { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use ParseError::*; - - match *self { - Base58(ref e) => Some(e), - Bech32(ref e) => Some(e), - NetworkValidation(ref e) => Some(e), + match self { + Self::Base58(ref e) => Some(e), + Self::Bech32(ref e) => Some(e), + Self::NetworkValidation(ref e) => Some(e), } } } @@ -125,7 +117,7 @@ impl From for ParseError { } impl From for ParseError { - fn from(e: UnknownHrpError) -> ParseError { Self::Bech32(e.into()) } + fn from(e: UnknownHrpError) -> Self { Self::Bech32(e.into()) } } impl From for ParseError { @@ -186,13 +178,12 @@ impl From for Bech32Error { impl fmt::Display for Bech32Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use Bech32Error::*; - - match *self { - ParseBech32(ref e) => write_err!(f, "SegWit parsing error"; e), - WitnessVersion(ref e) => write_err!(f, "witness version conversion/parsing error"; e), - WitnessProgram(ref e) => write_err!(f, "witness program error"; e), - UnknownHrp(ref e) => write_err!(f, "unknown hrp error"; e), + match self { + Self::ParseBech32(ref e) => write_err!(f, "SegWit parsing error"; e), + Self::WitnessVersion(ref e) => + write_err!(f, "witness version conversion/parsing error"; e), + Self::WitnessProgram(ref e) => write_err!(f, "witness program error"; e), + Self::UnknownHrp(ref e) => write_err!(f, "unknown hrp error"; e), } } } @@ -200,13 +191,11 @@ impl fmt::Display for Bech32Error { #[cfg(feature = "std")] impl std::error::Error for Bech32Error { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use Bech32Error::*; - - match *self { - ParseBech32(ref e) => Some(e), - WitnessVersion(ref e) => Some(e), - WitnessProgram(ref e) => Some(e), - UnknownHrp(ref e) => Some(e), + match self { + Self::ParseBech32(ref e) => Some(e), + Self::WitnessVersion(ref e) => Some(e), + Self::WitnessProgram(ref e) => Some(e), + Self::UnknownHrp(ref e) => Some(e), } } } @@ -263,13 +252,12 @@ impl From for Base58Error { impl fmt::Display for Base58Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use Base58Error::*; - - match *self { - ParseBase58(ref e) => write_err!(f, "legacy parsing error"; e), - LegacyAddressTooLong(ref e) => write_err!(f, "legacy address length error"; e), - InvalidBase58PayloadLength(ref e) => write_err!(f, "legacy payload length error"; e), - InvalidLegacyPrefix(ref e) => write_err!(f, "legacy prefix error"; e), + match self { + Self::ParseBase58(ref e) => write_err!(f, "legacy parsing error"; e), + Self::LegacyAddressTooLong(ref e) => write_err!(f, "legacy address length error"; e), + Self::InvalidBase58PayloadLength(ref e) => + write_err!(f, "legacy payload length error"; e), + Self::InvalidLegacyPrefix(ref e) => write_err!(f, "legacy prefix error"; e), } } } @@ -277,13 +265,11 @@ impl fmt::Display for Base58Error { #[cfg(feature = "std")] impl std::error::Error for Base58Error { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use Base58Error::*; - - match *self { - ParseBase58(ref e) => Some(e), - LegacyAddressTooLong(ref e) => Some(e), - InvalidBase58PayloadLength(ref e) => Some(e), - InvalidLegacyPrefix(ref e) => Some(e), + match self { + Self::ParseBase58(ref e) => Some(e), + Self::LegacyAddressTooLong(ref e) => Some(e), + Self::InvalidBase58PayloadLength(ref e) => Some(e), + Self::InvalidLegacyPrefix(ref e) => Some(e), } } } diff --git a/bitcoin/src/address/mod.rs b/bitcoin/src/address/mod.rs index c2a0b1a75b..709d108ea4 100644 --- a/bitcoin/src/address/mod.rs +++ b/bitcoin/src/address/mod.rs @@ -9,13 +9,12 @@ //! ### Creating a new address from a randomly-generated key pair. //! //! ```rust -//! #[cfg(feature = "rand-std")] { -//! use bitcoin::secp256k1::{rand, Secp256k1}; +//! #[cfg(all(feature = "rand", feature = "std"))] { +//! use bitcoin::secp256k1::rand; //! use bitcoin::{Address, Network, PublicKey}; //! //! // Generate random key pair. -//! let secp = Secp256k1::new(); -//! let (_sk, pk) = secp.generate_keypair(&mut rand::thread_rng()); +//! let (_sk, pk) = secp256k1::generate_keypair(&mut rand::rng()); //! let public_key = PublicKey::new(pk); // Or `PublicKey::from(pk)`. //! //! // Generate a mainnet pay-to-pubkey-hash address. @@ -40,7 +39,6 @@ //! ``` pub mod error; -pub mod script_pubkey; use core::fmt; use core::marker::PhantomData; @@ -50,9 +48,7 @@ use bech32::primitives::gf32::Fe32; use bech32::primitives::hrp::Hrp; use hashes::{hash160, HashEngine}; use internals::array::ArrayExt; -use secp256k1::{Secp256k1, Verification}; -use crate::address::script_pubkey::ScriptBufExt as _; use crate::constants::{ PUBKEY_ADDRESS_PREFIX_MAIN, PUBKEY_ADDRESS_PREFIX_TEST, SCRIPT_ADDRESS_PREFIX_MAIN, SCRIPT_ADDRESS_PREFIX_TEST, @@ -66,8 +62,9 @@ use crate::prelude::{String, ToOwned}; use crate::script::witness_program::WitnessProgram; use crate::script::witness_version::WitnessVersion; use crate::script::{ - self, RedeemScriptSizeError, Script, ScriptBuf, ScriptExt as _, ScriptHash, WScriptHash, - WitnessScriptSizeError, + self, RedeemScriptSizeError, Script, ScriptExt as _, ScriptHash, ScriptHashableTag, + ScriptPubKey, ScriptPubKeyBuf, ScriptPubKeyBufExt as _, ScriptPubKeyExt as _, WScriptHash, + WitnessScript, WitnessScriptExt as _, WitnessScriptSizeError, }; use crate::taproot::TapNodeHash; @@ -100,12 +97,12 @@ pub enum AddressType { impl fmt::Display for AddressType { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.write_str(match *self { - AddressType::P2pkh => "p2pkh", - AddressType::P2sh => "p2sh", - AddressType::P2wpkh => "p2wpkh", - AddressType::P2wsh => "p2wsh", - AddressType::P2tr => "p2tr", - AddressType::P2a => "p2a", + Self::P2pkh => "p2pkh", + Self::P2sh => "p2sh", + Self::P2wpkh => "p2wpkh", + Self::P2wsh => "p2wsh", + Self::P2tr => "p2tr", + Self::P2a => "p2a", }) } } @@ -114,12 +111,12 @@ impl FromStr for AddressType { type Err = UnknownAddressTypeError; fn from_str(s: &str) -> Result { match s { - "p2pkh" => Ok(AddressType::P2pkh), - "p2sh" => Ok(AddressType::P2sh), - "p2wpkh" => Ok(AddressType::P2wpkh), - "p2wsh" => Ok(AddressType::P2wsh), - "p2tr" => Ok(AddressType::P2tr), - "p2a" => Ok(AddressType::P2a), + "p2pkh" => Ok(Self::P2pkh), + "p2sh" => Ok(Self::P2sh), + "p2wpkh" => Ok(Self::P2wpkh), + "p2wsh" => Ok(Self::P2wsh), + "p2tr" => Ok(Self::P2tr), + "p2a" => Ok(Self::P2a), _ => Err(UnknownAddressTypeError(s.to_owned())), } } @@ -280,9 +277,9 @@ impl From for KnownHrp { impl From for NetworkKind { fn from(hrp: KnownHrp) -> Self { match hrp { - KnownHrp::Mainnet => NetworkKind::Main, - KnownHrp::Testnets => NetworkKind::Test, - KnownHrp::Regtest => NetworkKind::Test, + KnownHrp::Mainnet => Self::Main, + KnownHrp::Testnets => Self::Test, + KnownHrp::Regtest => Self::Test, } } } @@ -328,7 +325,7 @@ internals::transparent_newtype! { /// can be called, providing network on which the address is supposed to be valid. If the verification succeeds, /// `Address` is returned. /// - /// The types `Address` and `Address` are synonymous, i. e. they can be used interchangeably. + /// The types `Address` and `Address` are synonymous, i.e. they can be used interchangeably. /// /// ```rust /// use std::str::FromStr; @@ -389,12 +386,12 @@ internals::transparent_newtype! { /// /// # Relevant BIPs /// - /// * [BIP13 - Address Format for pay-to-script-hash](https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki) - /// * [BIP16 - Pay to Script Hash](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki) - /// * [BIP141 - Segregated Witness (Consensus layer)](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki) - /// * [BIP142 - Address Format for Segregated Witness](https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki) - /// * [BIP341 - Taproot: SegWit version 1 spending rules](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) - /// * [BIP350 - Bech32m format for v1+ witness addresses](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) + /// * [BIP-0013 - Address Format for pay-to-script-hash](https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki) + /// * [BIP-0016 - Pay to Script Hash](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki) + /// * [BIP-0141 - Segregated Witness (Consensus layer)](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki) + /// * [BIP-0142 - Address Format for Segregated Witness](https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki) + /// * [BIP-0341 - Taproot: SegWit version 1 spending rules](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) + /// * [BIP-0350 - Bech32m format for v1+ witness addresses](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] // The `#[repr(transparent)]` attribute is used to guarantee the layout of the `Address` struct. It // is an implementation detail and users should not rely on it in their code. @@ -419,7 +416,7 @@ impl fmt::Display for DisplayUnchecked<'_, N> { #[cfg(feature = "serde")] impl<'de, U: NetworkValidationUnchecked> serde::Deserialize<'de> for Address { - fn deserialize(deserializer: D) -> Result, D::Error> + fn deserialize(deserializer: D) -> Result where D: serde::de::Deserializer<'de>, { @@ -443,7 +440,7 @@ impl<'de, U: NetworkValidationUnchecked> serde::Deserialize<'de> for Address { // We know that `U` is only ever `NetworkUnchecked` but the compiler does not. let address = v.parse::>().map_err(E::custom)?; - Ok(Address::from_inner(address.into_inner())) + Ok(Address::from_inner(address.to_inner())) } } @@ -464,9 +461,9 @@ impl serde::Serialize for Address { /// Methods on [`Address`] that can be called on both `Address` and /// `Address`. impl Address { - fn from_inner(inner: AddressInner) -> Self { Address(PhantomData, inner) } + fn from_inner(inner: AddressInner) -> Self { Self(PhantomData, inner) } - fn into_inner(self) -> AddressInner { self.1 } + fn to_inner(self) -> AddressInner { self.1 } fn inner(&self) -> &AddressInner { &self.1 } @@ -476,8 +473,12 @@ impl Address { } /// Marks the network of this address as unchecked. + pub fn to_unchecked(self) -> Address { Address::from_inner(self.to_inner()) } + + /// Marks the network of this address as unchecked. + #[deprecated(since = "0.33.0", note = "use to_unchecked instead")] pub fn into_unchecked(self) -> Address { - Address::from_inner(self.into_inner()) + Address::from_inner(self.to_inner()) } /// Returns the [`NetworkKind`] of this address. @@ -497,22 +498,22 @@ impl Address { /// /// This is the preferred non-witness type address. #[inline] - pub fn p2pkh(pk: impl Into, network: impl Into) -> Address { + pub fn p2pkh(pk: impl Into, network: impl Into) -> Self { let hash = pk.into(); Self::from_inner(AddressInner::P2pkh { hash, network: network.into() }) } /// Constructs a new pay-to-script-hash (P2SH) [`Address`] from a script. /// - /// This address type was introduced with BIP16 and is the popular type to implement multi-sig + /// This address type was introduced with BIP-0016 and is the popular type to implement multi-sig /// these days. #[inline] - pub fn p2sh( - redeem_script: &Script, + pub fn p2sh( + redeem_script: &Script, network: impl Into, - ) -> Result { + ) -> Result { let hash = redeem_script.script_hash()?; - Ok(Address::p2sh_from_hash(hash, network)) + Ok(Self::p2sh_from_hash(hash, network)) } /// Constructs a new pay-to-script-hash (P2SH) [`Address`] from a script hash. @@ -521,7 +522,7 @@ impl Address { /// /// The `hash` pre-image (redeem script) must not exceed 520 bytes in length /// otherwise outputs created from the returned address will be un-spendable. - pub fn p2sh_from_hash(hash: ScriptHash, network: impl Into) -> Address { + pub fn p2sh_from_hash(hash: ScriptHash, network: impl Into) -> Self { Self::from_inner(AddressInner::P2sh { hash, network: network.into() }) } @@ -530,32 +531,32 @@ impl Address { /// This is the native SegWit address type for an output redeemable with a single signature. pub fn p2wpkh(pk: CompressedPublicKey, hrp: impl Into) -> Self { let program = WitnessProgram::p2wpkh(pk); - Address::from_witness_program(program, hrp) + Self::from_witness_program(program, hrp) } /// Constructs a new pay-to-script-hash (P2SH) [`Address`] that embeds a /// pay-to-witness-public-key-hash (P2WPKH). /// /// This is a SegWit address type that looks familiar (as p2sh) to legacy clients. - pub fn p2shwpkh(pk: CompressedPublicKey, network: impl Into) -> Address { - let builder = script::Builder::new().push_int_unchecked(0).push_slice(pk.wpubkey_hash()); + pub fn p2shwpkh(pk: CompressedPublicKey, network: impl Into) -> Self { + let builder = ScriptPubKey::builder().push_int_unchecked(0).push_slice(pk.wpubkey_hash()); let script_hash = builder.as_script().script_hash().expect("script is less than 520 bytes"); - Address::p2sh_from_hash(script_hash, network) + Self::p2sh_from_hash(script_hash, network) } /// Constructs a new pay-to-witness-script-hash (P2WSH) [`Address`] from a witness script. pub fn p2wsh( - witness_script: &Script, + witness_script: &WitnessScript, hrp: impl Into, - ) -> Result { + ) -> Result { let program = WitnessProgram::p2wsh(witness_script)?; - Ok(Address::from_witness_program(program, hrp)) + Ok(Self::from_witness_program(program, hrp)) } /// Constructs a new pay-to-witness-script-hash (P2WSH) [`Address`] from a witness script hash. - pub fn p2wsh_from_hash(hash: WScriptHash, hrp: impl Into) -> Address { + pub fn p2wsh_from_hash(hash: WScriptHash, hrp: impl Into) -> Self { let program = WitnessProgram::p2wsh_from_hash(hash); - Address::from_witness_program(program, hrp) + Self::from_witness_program(program, hrp) } /// Constructs a new pay-to-script-hash (P2SH) [`Address`] that embeds a @@ -563,40 +564,44 @@ impl Address { /// /// This is a SegWit address type that looks familiar (as p2sh) to legacy clients. pub fn p2shwsh( - witness_script: &Script, + witness_script: &WitnessScript, network: impl Into, - ) -> Result { + ) -> Result { let hash = witness_script.wscript_hash()?; - let builder = script::Builder::new().push_int_unchecked(0).push_slice(hash); + let builder = ScriptPubKey::builder().push_int_unchecked(0).push_slice(hash); let script_hash = builder.as_script().script_hash().expect("script is less than 520 bytes"); - Ok(Address::p2sh_from_hash(script_hash, network)) + Ok(Self::p2sh_from_hash(script_hash, network)) } /// Constructs a new pay-to-Taproot (P2TR) [`Address`] from an untweaked key. - pub fn p2tr>( - secp: &Secp256k1, + pub fn p2tr>( internal_key: K, merkle_root: Option, hrp: impl Into, - ) -> Address { + ) -> Self { let internal_key = internal_key.into(); - let program = WitnessProgram::p2tr(secp, internal_key, merkle_root); - Address::from_witness_program(program, hrp) + let program = WitnessProgram::p2tr(internal_key, merkle_root); + Self::from_witness_program(program, hrp) } /// Constructs a new pay-to-Taproot (P2TR) [`Address`] from a pre-tweaked output key. - pub fn p2tr_tweaked(output_key: TweakedPublicKey, hrp: impl Into) -> Address { + pub fn p2tr_tweaked(output_key: TweakedPublicKey, hrp: impl Into) -> Self { let program = WitnessProgram::p2tr_tweaked(output_key); - Address::from_witness_program(program, hrp) + Self::from_witness_program(program, hrp) + } + + /// Constructs a new pay-to-anchor (P2A) [`Address`]. + pub fn p2a(hrp: impl Into) -> Self { + Self::from_witness_program(WitnessProgram::p2a(), hrp) } /// Constructs a new [`Address`] from an arbitrary [`WitnessProgram`]. /// /// This only exists to support future witness versions. If you are doing normal mainnet things /// then you likely do not need this constructor. - pub fn from_witness_program(program: WitnessProgram, hrp: impl Into) -> Address { + pub fn from_witness_program(program: WitnessProgram, hrp: impl Into) -> Self { let inner = AddressInner::Segwit { program, hrp: hrp.into() }; - Address::from_inner(inner) + Self::from_inner(inner) } /// Gets the address type of the [`Address`]. @@ -682,39 +687,39 @@ impl Address { /// Constructs a new [`Address`] from an output script (`scriptPubkey`). pub fn from_script( - script: &Script, + script: &ScriptPubKey, params: impl AsRef, - ) -> Result { + ) -> Result { let network = params.as_ref().network; if script.is_p2pkh() { let bytes = script.as_bytes()[3..23].try_into().expect("statically 20B long"); let hash = PubkeyHash::from_byte_array(bytes); - Ok(Address::p2pkh(hash, network)) + Ok(Self::p2pkh(hash, network)) } else if script.is_p2sh() { let bytes = script.as_bytes()[2..22].try_into().expect("statically 20B long"); let hash = ScriptHash::from_byte_array(bytes); - Ok(Address::p2sh_from_hash(hash, network)) + Ok(Self::p2sh_from_hash(hash, network)) } else if script.is_witness_program() { let opcode = script.first_opcode().expect("is_witness_program guarantees len > 4"); let version = WitnessVersion::try_from(opcode)?; let program = WitnessProgram::new(version, &script.as_bytes()[2..])?; - Ok(Address::from_witness_program(program, network)) + Ok(Self::from_witness_program(program, network)) } else { Err(FromScriptError::UnrecognizedScript) } } /// Generates a script pubkey spending to this address. - pub fn script_pubkey(&self) -> ScriptBuf { + pub fn script_pubkey(&self) -> ScriptPubKeyBuf { use AddressInner::*; match *self.inner() { - P2pkh { hash, network: _ } => ScriptBuf::new_p2pkh(hash), - P2sh { hash, network: _ } => ScriptBuf::new_p2sh(hash), + P2pkh { hash, network: _ } => ScriptPubKeyBuf::new_p2pkh(hash), + P2sh { hash, network: _ } => ScriptPubKeyBuf::new_p2sh(hash), Segwit { ref program, hrp: _ } => { let prog = program.program(); let version = program.version(); - script_pubkey::new_witness_program_unchecked(version, prog) + script::new_witness_program_unchecked(version, prog) } } } @@ -727,7 +732,7 @@ impl Address { /// Quoting BIP 173 "inside QR codes uppercase SHOULD be used, as those permit the use of /// alphanumeric mode, which is 45% more compact than the normal byte mode." /// - /// Note however that despite BIP21 explicitly stating that the `bitcoin:` prefix should be + /// Note however that despite BIP-0021 explicitly stating that the `bitcoin:` prefix should be /// parsed as case-insensitive many wallets got this wrong and don't parse correctly. /// [See compatibility table.](https://github.com/btcpayserver/btcpayserver/issues/2110) /// @@ -773,7 +778,7 @@ impl Address { /// Returns true if the address creates a particular script /// This function doesn't make any allocations. - pub fn matches_script_pubkey(&self, script: &Script) -> bool { + pub fn matches_script_pubkey(&self, script: &ScriptPubKey) -> bool { use AddressInner::*; match *self.inner() { P2pkh { ref hash, network: _ } if script.is_p2pkh() => @@ -899,10 +904,10 @@ impl Address { /// For details about this mechanism, see section [*Parsing addresses*](Address#parsing-addresses) /// on [`Address`]. #[inline] - pub fn assume_checked(self) -> Address { Address::from_inner(self.into_inner()) } + pub fn assume_checked(self) -> Address { Address::from_inner(self.to_inner()) } - /// Parse a bech32 Address string - pub fn from_bech32_str(s: &str) -> Result, Bech32Error> { + /// Parses a bech32 Address string + pub fn from_bech32_str(s: &str) -> Result { let (hrp, witness_version, data) = bech32::segwit::decode(s).map_err(|e| Bech32Error::ParseBech32(ParseBech32Error(e)))?; let version = WitnessVersion::try_from(witness_version.to_u8())?; @@ -911,17 +916,18 @@ impl Address { let hrp = KnownHrp::from_hrp(hrp)?; let inner = AddressInner::Segwit { program, hrp }; - Ok(Address::from_inner(inner)) + Ok(Self::from_inner(inner)) } - /// Parse a base58 Address string - pub fn from_base58_str(s: &str) -> Result, Base58Error> { + /// Parses a base58 Address string + pub fn from_base58_str(s: &str) -> Result { if s.len() > 50 { return Err(LegacyAddressTooLongError { length: s.len() }.into()); } let data = base58::decode_check(s)?; - let data: &[u8; 21] = - (&*data).try_into().map_err(|_| InvalidBase58PayloadLengthError { length: s.len() })?; + let data: &[u8; 21] = (&*data) + .try_into() + .map_err(|_| InvalidBase58PayloadLengthError { length: data.len() })?; let (prefix, &data) = data.split_first(); @@ -945,15 +951,15 @@ impl Address { invalid => return Err(InvalidLegacyPrefixError { invalid }.into()), }; - Ok(Address::from_inner(inner)) + Ok(Self::from_inner(inner)) } } -impl From
for ScriptBuf { +impl From
for ScriptPubKeyBuf { fn from(a: Address) -> Self { a.script_pubkey() } } -// Alternate formatting `{:#}` is used to return uppercase version of bech32 addresses which should +// Alternate formatting `{:#}` is used to return an uppercase version of bech32 addresses which should // be used in QR codes, see [`Address::to_qr_uri`]. impl fmt::Display for Address { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { fmt::Display::fmt(&self.inner(), fmt) } @@ -993,10 +999,10 @@ impl FromStr for Address { if ["bc1", "bcrt1", "tb1"].iter().any(|&prefix| s.to_lowercase().starts_with(prefix)) { let address = Address::from_bech32_str(s)?; // We know that `U` is only ever `NetworkUnchecked` but the compiler does not. - Ok(Address::from_inner(address.into_inner())) + Ok(Self::from_inner(address.to_inner())) } else if ["1", "2", "3", "m", "n"].iter().any(|&prefix| s.starts_with(prefix)) { let address = Address::from_base58_str(s)?; - Ok(Address::from_inner(address.into_inner())) + Ok(Self::from_inner(address.to_inner())) } else { let hrp = match s.rfind('1') { Some(pos) => &s[..pos], @@ -1022,7 +1028,7 @@ mod tests { use super::*; use crate::network::Network::{Bitcoin, Testnet}; use crate::network::{params, TestnetVersion}; - use crate::script::ScriptBufExt as _; + use crate::script::{RedeemScriptBuf, ScriptBufExt as _, WitnessScriptBuf}; fn roundtrips(addr: &Address, network: Network) { assert_eq!( @@ -1055,7 +1061,7 @@ mod tests { assert_eq!( addr.script_pubkey(), - ScriptBuf::from_hex_no_length_prefix( + ScriptPubKeyBuf::from_hex_no_length_prefix( "76a914162c5ea71c0b23f5b9022ef047c4a86470a5b07088ac" ) .unwrap() @@ -1087,8 +1093,10 @@ mod tests { assert_eq!( addr.script_pubkey(), - ScriptBuf::from_hex_no_length_prefix("a914162c5ea71c0b23f5b9022ef047c4a86470a5b07087") - .unwrap(), + ScriptPubKeyBuf::from_hex_no_length_prefix( + "a914162c5ea71c0b23f5b9022ef047c4a86470a5b07087" + ) + .unwrap(), ); assert_eq!(&addr.to_string(), "33iFwdLuRpW1uK1RTRqsoi8rR4NpDzk66k"); assert_eq!(addr.address_type(), Some(AddressType::P2sh)); @@ -1097,7 +1105,7 @@ mod tests { #[test] fn p2sh_parse() { - let script = ScriptBuf::from_hex_no_length_prefix("552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae").unwrap(); + let script = RedeemScriptBuf::from_hex_no_length_prefix("552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae").unwrap(); let addr = Address::p2sh(&script, NetworkKind::Test).unwrap(); assert_eq!(&addr.to_string(), "2N3zXjbwdTcPsJiy8sUK9FhWJhqQCxA8Jjr"); assert_eq!(addr.address_type(), Some(AddressType::P2sh)); @@ -1106,7 +1114,7 @@ mod tests { #[test] fn p2sh_parse_for_large_script() { - let script = ScriptBuf::from_hex_no_length_prefix("552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae12123122313123123ac1231231231231313123131231231231313212313213123123552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae12123122313123123ac1231231231231313123131231231231313212313213123123552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae12123122313123123ac1231231231231313123131231231231313212313213123123").unwrap(); + let script = RedeemScriptBuf::from_hex_no_length_prefix("552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae12123122313123123ac1231231231231313123131231231231313212313213123123552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae12123122313123123ac1231231231231313123131231231231313212313213123123552103a765fc35b3f210b95223846b36ef62a4e53e34e2925270c2c7906b92c9f718eb2103c327511374246759ec8d0b89fa6c6b23b33e11f92c5bc155409d86de0c79180121038cae7406af1f12f4786d820a1466eec7bc5785a1b5e4a387eca6d797753ef6db2103252bfb9dcaab0cd00353f2ac328954d791270203d66c2be8b430f115f451b8a12103e79412d42372c55dd336f2eb6eb639ef9d74a22041ba79382c74da2338fe58ad21035049459a4ebc00e876a9eef02e72a3e70202d3d1f591fc0dd542f93f642021f82102016f682920d9723c61b27f562eb530c926c00106004798b6471e8c52c60ee02057ae12123122313123123ac1231231231231313123131231231231313212313213123123").unwrap(); let res = Address::p2sh(&script, NetworkKind::Test); assert_eq!(res.unwrap_err().invalid_size(), script.len()) } @@ -1126,7 +1134,7 @@ mod tests { #[test] fn p2wsh() { // stolen from Bitcoin transaction 5df912fda4becb1c29e928bec8d64d93e9ba8efa9b5b405bd683c86fd2c65667 - let script = ScriptBuf::from_hex_no_length_prefix("52210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae").unwrap(); + let script = WitnessScriptBuf::from_hex_no_length_prefix("52210375e00eb72e29da82b89367947f29ef34afb75e8654f6ea368e0acdfd92976b7c2103a1b26313f430c4b15bb1fdce663207659d8cac749a0e53d70eff01874496feff2103c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f88053ae").unwrap(); let addr = Address::p2wsh(&script, KnownHrp::Mainnet).expect("script is valid"); assert_eq!( &addr.to_string(), @@ -1151,7 +1159,7 @@ mod tests { #[test] fn p2shwsh() { // stolen from Bitcoin transaction f9ee2be4df05041d0e0a35d7caa3157495ca4f93b233234c9967b6901dacf7a9 - let script = ScriptBuf::from_hex_no_length_prefix("522103e5529d8eaa3d559903adb2e881eb06c86ac2574ffa503c45f4e942e2a693b33e2102e5f10fcdcdbab211e0af6a481f5532536ec61a5fdbf7183770cf8680fe729d8152ae").unwrap(); + let script = WitnessScriptBuf::from_hex_no_length_prefix("522103e5529d8eaa3d559903adb2e881eb06c86ac2574ffa503c45f4e942e2a693b33e2102e5f10fcdcdbab211e0af6a481f5532536ec61a5fdbf7183770cf8680fe729d8152ae").unwrap(); let addr = Address::p2shwsh(&script, NetworkKind::Main).expect("script is valid"); assert_eq!(&addr.to_string(), "36EqgNnsWW94SreZgBWc1ANC6wpFZwirHr"); assert_eq!(addr.address_type(), Some(AddressType::P2sh)); @@ -1240,7 +1248,7 @@ mod tests { assert_eq!(addr.to_string(), into.to_string()); assert_eq!( into.script_pubkey(), - ScriptBuf::from_hex_no_length_prefix( + ScriptPubKeyBuf::from_hex_no_length_prefix( "76a914162c5ea71c0b23f5b9022ef047c4a86470a5b07088ac" ) .unwrap() @@ -1257,8 +1265,10 @@ mod tests { assert_eq!(addr.to_string(), into.to_string()); assert_eq!( into.script_pubkey(), - ScriptBuf::from_hex_no_length_prefix("a914162c5ea71c0b23f5b9022ef047c4a86470a5b07087") - .unwrap() + ScriptPubKeyBuf::from_hex_no_length_prefix( + "a914162c5ea71c0b23f5b9022ef047c4a86470a5b07087" + ) + .unwrap() ); let addr: Address = @@ -1288,7 +1298,7 @@ mod tests { assert_eq!(addr.to_string(), into.to_string()); assert_eq!( into.script_pubkey(), - ScriptBuf::from_hex_no_length_prefix( + ScriptPubKeyBuf::from_hex_no_length_prefix( "00201863143c14c5166804bd19203356da136c985678cd4d27a1b8c6329604903262" ) .unwrap() @@ -1307,8 +1317,10 @@ mod tests { assert_eq!(addr.to_string(), into.to_string()); assert_eq!( into.script_pubkey(), - ScriptBuf::from_hex_no_length_prefix("001454d26dddb59c7073c6a197946ea1841951fa7a74") - .unwrap() + ScriptPubKeyBuf::from_hex_no_length_prefix( + "001454d26dddb59c7073c6a197946ea1841951fa7a74" + ) + .unwrap() ); } @@ -1342,8 +1354,7 @@ mod tests { let internal_key = "cc8a4bc64d897bddc5fbc2f670f7a8ba0b386779106cf1223c6fc5d7cd6fc115" .parse::() .unwrap(); - let secp = Secp256k1::verification_only(); - let address = Address::p2tr(&secp, internal_key, None, KnownHrp::Mainnet); + let address = Address::p2tr(internal_key, None, KnownHrp::Mainnet); assert_eq!( address.to_string(), "bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr" @@ -1487,15 +1498,17 @@ mod tests { fn fail_address_from_script() { use crate::witness_program; - let bad_p2wpkh = - ScriptBuf::from_hex_no_length_prefix("15000014dbc5b0a8f9d4353b4b54c3db48846bb15abfec") - .unwrap(); - let bad_p2wsh = ScriptBuf::from_hex_no_length_prefix( + let bad_p2wpkh = ScriptPubKeyBuf::from_hex_no_length_prefix( + "15000014dbc5b0a8f9d4353b4b54c3db48846bb15abfec", + ) + .unwrap(); + let bad_p2wsh = ScriptPubKeyBuf::from_hex_no_length_prefix( "00202d4fa2eb233d008cc83206fa2f4f2e60199000f5b857a835e3172323385623", ) .unwrap(); let invalid_segwitv0_script = - ScriptBuf::from_hex_no_length_prefix("001161458e330389cd0437ee9fe3641d70cc18").unwrap(); + ScriptPubKeyBuf::from_hex_no_length_prefix("001161458e330389cd0437ee9fe3641d70cc18") + .unwrap(); let expected = Err(FromScriptError::UnrecognizedScript); assert_eq!(Address::from_script(&bad_p2wpkh, Network::Bitcoin), expected); @@ -1565,17 +1578,17 @@ mod tests { // Serialize with an unchecked address. let foo_unchecked = Foo { address: unchecked }; let ser = serde_json::to_string(&foo_unchecked).expect("failed to serialize"); - let rinsed: Foo = + let roundtrip: Foo = serde_json::from_str(&ser).expect("failed to deserialize"); - assert_eq!(rinsed, foo_unchecked); + assert_eq!(roundtrip, foo_unchecked); // Serialize with a checked address. let foo_checked = Foo { address: unchecked.assume_checked() }; let ser = serde_json::to_string(&foo_checked).expect("failed to serialize"); - let rinsed: Foo = + let roundtrip: Foo = serde_json::from_str(&ser).expect("failed to deserialize"); - assert_eq!(&rinsed.address, foo_checked.address.as_unchecked()); - assert_eq!(rinsed, foo_unchecked); + assert_eq!(&roundtrip.address, foo_checked.address.as_unchecked()); + assert_eq!(roundtrip, foo_unchecked); } #[test] @@ -1584,7 +1597,7 @@ mod tests { // This test-vector is borrowed from the bitcoin source code. let address_str = "bcrt1pfeesnyr2tx"; - let script = ScriptBuf::new_p2a(); + let script = ScriptPubKeyBuf::new_p2a(); let address_unchecked = address_str.parse().unwrap(); let address = Address::from_script(&script, Network::Regtest).unwrap(); assert_eq!(address.as_unchecked(), &address_unchecked); @@ -1595,4 +1608,22 @@ mod tests { assert!(address.is_spend_standard()); assert_eq!(address.address_type(), Some(AddressType::P2a)); } + + #[test] + fn base58_invalid_payload_length_reports_decoded_size() { + use crate::constants::PUBKEY_ADDRESS_PREFIX_MAIN; + + let mut payload = [0u8; 22]; // Invalid: should be 21 + payload[0] = PUBKEY_ADDRESS_PREFIX_MAIN; + let encoded = base58::encode_check(&payload); + + let err = Address::::from_base58_str(&encoded).unwrap_err(); + match err { + Base58Error::InvalidBase58PayloadLength(inner) => { + assert_eq!(inner.invalid_base58_payload_length(), 22); // Payload size + assert_ne!(inner.invalid_base58_payload_length(), encoded.len()); // Not string size + } + other => panic!("unexpected error: {other:?}"), + } + } } diff --git a/bitcoin/src/address/script_pubkey.rs b/bitcoin/src/address/script_pubkey.rs deleted file mode 100644 index bc3637de3b..0000000000 --- a/bitcoin/src/address/script_pubkey.rs +++ /dev/null @@ -1,240 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 - -//! Bitcoin scriptPubkey script extensions. - -use internals::array::ArrayExt; -use secp256k1::{Secp256k1, Verification}; - -use crate::internal_macros::define_extension_trait; -use crate::key::{ - PubkeyHash, PublicKey, TapTweak, TweakedPublicKey, UntweakedPublicKey, WPubkeyHash, - XOnlyPublicKey, -}; -use crate::opcodes::all::*; -use crate::script::witness_program::{WitnessProgram, P2A_PROGRAM}; -use crate::script::witness_version::WitnessVersion; -use crate::script::{ - self, Builder, PushBytes, RedeemScriptSizeError, Script, ScriptBuf, ScriptExt as _, ScriptHash, - WScriptHash, WitnessScriptSizeError, -}; -use crate::taproot::TapNodeHash; - -define_extension_trait! { - /// Extension functionality to add scriptPubkey support to the [`Builder`] type. - pub trait BuilderExt impl for Builder { - /// Adds instructions to push a public key onto the stack. - fn push_key(self, key: PublicKey) -> Builder { - if key.compressed { - self.push_slice(key.inner.serialize()) - } else { - self.push_slice(key.inner.serialize_uncompressed()) - } - } - - /// Adds instructions to push an XOnly public key onto the stack. - fn push_x_only_key(self, x_only_key: XOnlyPublicKey) -> Builder { - self.push_slice(x_only_key.serialize()) - } - } -} - -define_extension_trait! { - /// Extension functionality to add scriptPubkey support to the [`Script`] type. - pub trait ScriptExt impl for Script { - /// Computes the P2WSH output corresponding to this witnessScript (aka the "witness redeem - /// script"). - fn to_p2wsh(&self) -> Result { - self.wscript_hash().map(ScriptBuf::new_p2wsh) - } - - /// Computes P2TR output with a given internal key and a single script spending path equal to - /// the current script, assuming that the script is a Tapscript. - fn to_p2tr>( - &self, - secp: &Secp256k1, - internal_key: K, - ) -> ScriptBuf { - let internal_key = internal_key.into(); - let leaf_hash = self.tapscript_leaf_hash(); - let merkle_root = TapNodeHash::from(leaf_hash); - ScriptBuf::new_p2tr(secp, internal_key, Some(merkle_root)) - } - - /// Computes the P2SH output corresponding to this redeem script. - fn to_p2sh(&self) -> Result { - self.script_hash().map(ScriptBuf::new_p2sh) - } - - /// Returns the script code used for spending a P2WPKH output if this script is a script pubkey - /// for a P2WPKH output. The `scriptCode` is described in [BIP143]. - /// - /// [BIP143]: - fn p2wpkh_script_code(&self) -> Option { - if self.is_p2wpkh() { - // The `self` script is 0x00, 0x14, - let bytes = <[u8; 20]>::try_from(&self.as_bytes()[2..]).expect("length checked in is_p2wpkh()"); - let wpkh = WPubkeyHash::from_byte_array(bytes); - Some(script::p2wpkh_script_code(wpkh)) - } else { - None - } - } - - /// Checks whether a script pubkey is a P2PK output. - /// - /// You can obtain the public key, if its valid, - /// by calling [`p2pk_public_key()`](Self::p2pk_public_key) - fn is_p2pk(&self) -> bool { self.p2pk_pubkey_bytes().is_some() } - - /// Returns the public key if this script is P2PK with a **valid** public key. - /// - /// This may return `None` even when [`is_p2pk()`](Self::is_p2pk) returns true. - /// This happens when the public key is invalid (e.g. the point not being on the curve). - /// In this situation the script is unspendable. - fn p2pk_public_key(&self) -> Option { - PublicKey::from_slice(self.p2pk_pubkey_bytes()?).ok() - } - } -} - -define_extension_trait! { - pub(crate) trait ScriptExtPrivate impl for Script { - /// Returns the bytes of the (possibly invalid) public key if this script is P2PK. - fn p2pk_pubkey_bytes(&self) -> Option<&[u8]> { - if let Ok(bytes) = <&[u8; 67]>::try_from(self.as_bytes()) { - let (&first, bytes) = bytes.split_first::<66>(); - let (&last, pubkey) = bytes.split_last::<65>(); - (first == OP_PUSHBYTES_65.to_u8() && last == OP_CHECKSIG.to_u8()).then_some(pubkey) - } else if let Ok(bytes) = <&[u8; 35]>::try_from(self.as_bytes()) { - let (&first, bytes) = bytes.split_first::<34>(); - let (&last, pubkey) = bytes.split_last::<33>(); - (first == OP_PUSHBYTES_33.to_u8() && last == OP_CHECKSIG.to_u8()).then_some(pubkey) - } else { - None - } - } - } -} - -define_extension_trait! { - /// Extension functionality to add scriptPubkey support to the [`ScriptBuf`] type. - pub trait ScriptBufExt impl for ScriptBuf { - /// Generates P2PK-type of scriptPubkey. - fn new_p2pk(pubkey: PublicKey) -> Self { - Builder::new().push_key(pubkey).push_opcode(OP_CHECKSIG).into_script() - } - - /// Generates P2PKH-type of scriptPubkey. - fn new_p2pkh(pubkey_hash: PubkeyHash) -> Self { - Builder::new() - .push_opcode(OP_DUP) - .push_opcode(OP_HASH160) - .push_slice(pubkey_hash) - .push_opcode(OP_EQUALVERIFY) - .push_opcode(OP_CHECKSIG) - .into_script() - } - - /// Generates P2SH-type of scriptPubkey with a given hash of the redeem script. - fn new_p2sh(script_hash: ScriptHash) -> Self { - Builder::new() - .push_opcode(OP_HASH160) - .push_slice(script_hash) - .push_opcode(OP_EQUAL) - .into_script() - } - - /// Generates P2WPKH-type of scriptPubkey. - fn new_p2wpkh(pubkey_hash: WPubkeyHash) -> Self { - // pubkey hash is 20 bytes long, so it's safe to use `new_witness_program_unchecked` (Segwitv0) - new_witness_program_unchecked(WitnessVersion::V0, pubkey_hash) - } - - /// Generates P2WSH-type of scriptPubkey with a given hash of the redeem script. - fn new_p2wsh(script_hash: WScriptHash) -> Self { - // script hash is 32 bytes long, so it's safe to use `new_witness_program_unchecked` (Segwitv0) - new_witness_program_unchecked(WitnessVersion::V0, script_hash) - } - - /// Generates P2TR for script spending path using an internal public key and some optional - /// script tree Merkle root. - fn new_p2tr>( - secp: &Secp256k1, - internal_key: K, - merkle_root: Option, - ) -> Self { - let internal_key = internal_key.into(); - let (output_key, _) = internal_key.tap_tweak(secp, merkle_root); - // output key is 32 bytes long, so it's safe to use `new_witness_program_unchecked` (Segwitv1) - new_witness_program_unchecked(WitnessVersion::V1, output_key.serialize()) - } - - /// Generates P2TR for key spending path for a known [`TweakedPublicKey`]. - fn new_p2tr_tweaked(output_key: TweakedPublicKey) -> Self { - // output key is 32 bytes long, so it's safe to use `new_witness_program_unchecked` (Segwitv1) - new_witness_program_unchecked(WitnessVersion::V1, output_key.serialize()) - } - - /// Generates pay to anchor output. - fn new_p2a() -> Self { - new_witness_program_unchecked(WitnessVersion::V1, P2A_PROGRAM) - } - - /// Generates P2WSH-type of scriptPubkey with a given [`WitnessProgram`]. - fn new_witness_program(witness_program: &WitnessProgram) -> Self { - Builder::new() - .push_opcode(witness_program.version().into()) - .push_slice(witness_program.program()) - .into_script() - } - } -} - -/// Generates P2WSH-type of scriptPubkey with a given [`WitnessVersion`] and the program bytes. -/// Does not do any checks on version or program length. -/// -/// Convenience method used by `new_p2a`, `new_p2wpkh`, `new_p2wsh`, `new_p2tr`, and `new_p2tr_tweaked`. -pub(super) fn new_witness_program_unchecked>( - version: WitnessVersion, - program: T, -) -> ScriptBuf { - let program = program.as_ref(); - debug_assert!(program.len() >= 2 && program.len() <= 40); - // In SegWit v0, the program must be either 20 bytes (P2WPKH) or 32 bytes (P2WSH) long. - debug_assert!(version != WitnessVersion::V0 || program.len() == 20 || program.len() == 32); - Builder::new().push_opcode(version.into()).push_slice(program).into_script() -} - -mod sealed { - pub trait Sealed {} - impl Sealed for super::Script {} - impl Sealed for super::ScriptBuf {} - impl Sealed for super::Builder {} -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn shortest_witness_program() { - let bytes = [0x00; 2]; // Arbitrary bytes, witprog must be between 2 and 40. - let version = WitnessVersion::V15; // Arbitrary version number, intentionally not 0 or 1. - - let p = WitnessProgram::new(version, &bytes).expect("failed to create witness program"); - let script = ScriptBuf::new_witness_program(&p); - - assert_eq!(script.witness_version(), Some(version)); - } - - #[test] - fn longest_witness_program() { - let bytes = [0x00; 40]; // Arbitrary bytes, witprog must be between 2 and 40. - let version = WitnessVersion::V16; // Arbitrary version number, intentionally not 0 or 1. - - let p = WitnessProgram::new(version, &bytes).expect("failed to create witness program"); - let script = ScriptBuf::new_witness_program(&p); - - assert_eq!(script.witness_version(), Some(version)); - } -} diff --git a/bitcoin/src/bip158.rs b/bitcoin/src/bip158.rs index b62617e5c7..d240d1adec 100644 --- a/bitcoin/src/bip158.rs +++ b/bitcoin/src/bip158.rs @@ -13,13 +13,13 @@ //! //! # Relevant BIPS //! -//! * [BIP 157 - Client Side Block Filtering](https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki) -//! * [BIP 158 - Compact Block Filters for Light Clients](https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki) +//! * [BIP-0157 - Client Side Block Filtering](https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki) +//! * [BIP-0158 - Compact Block Filters for Light Clients](https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki) //! //! # Examples //! //! ```ignore -//! fn get_script_for_coin(coin: &OutPoint) -> Result { +//! fn get_script_for_coin(coin: &OutPoint) -> Result { //! // get utxo ... //! } //! @@ -31,7 +31,7 @@ //! //! // read and evaluate a filter //! -//! let query: Iterator = // .. some scripts you care about +//! let query: Iterator = // .. some scripts you care about //! if filter.match_any(&block_hash, &mut query.map(|s| s.as_bytes())) { //! // get this block //! } @@ -41,36 +41,21 @@ use core::cmp::{self, Ordering}; use core::convert::Infallible; use core::fmt; -use hashes::{sha256d, siphash24, HashEngine as _}; +use hashes::{sha256d, siphash24}; use internals::array::ArrayExt as _; use internals::{write_err, ToU64 as _}; use io::{BufRead, Write}; use crate::block::{Block, BlockHash, Checked}; use crate::consensus::{ReadExt, WriteExt}; -use crate::internal_macros::impl_hashencode; use crate::prelude::{BTreeSet, Borrow, Vec}; -use crate::script::{Script, ScriptExt as _}; +use crate::script::{ScriptPubKey, ScriptPubKeyExt as _}; use crate::transaction::OutPoint; -/// Golomb encoding parameter as in BIP-158, see also https://gist.github.com/sipa/576d5f09c3b86c3b1b75598d799fc845 +/// Golomb encoding parameter as in BIP-0158, see also https://gist.github.com/sipa/576d5f09c3b86c3b1b75598d799fc845 const P: u8 = 19; const M: u64 = 784931; -hashes::hash_newtype! { - /// Filter hash, as defined in BIP-157. - pub struct FilterHash(sha256d::Hash); - /// Filter header, as defined in BIP-157. - pub struct FilterHeader(sha256d::Hash); -} - -hashes::impl_hex_for_newtype!(FilterHash, FilterHeader); -#[cfg(feature = "serde")] -hashes::impl_serde_for_newtype!(FilterHash, FilterHeader); - -impl_hashencode!(FilterHash); -impl_hashencode!(FilterHeader); - /// Errors for blockfilter. #[derive(Debug)] #[non_exhaustive] @@ -87,11 +72,9 @@ impl From for Error { impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { - use Error::*; - - match *self { - UtxoMissing(ref coin) => write!(f, "unresolved UTXO {}", coin), - Io(ref e) => write_err!(f, "I/O error"; e), + match self { + Self::UtxoMissing(ref coin) => write!(f, "unresolved UTXO {}", coin), + Self::Io(ref e) => write_err!(f, "I/O error"; e), } } } @@ -99,17 +82,15 @@ impl fmt::Display for Error { #[cfg(feature = "std")] impl std::error::Error for Error { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use Error::*; - - match *self { - UtxoMissing(_) => None, - Io(ref e) => Some(e), + match self { + Self::UtxoMissing(_) => None, + Self::Io(ref e) => Some(e), } } } impl From for Error { - fn from(io: io::Error) -> Self { Error::Io(io) } + fn from(io: io::Error) -> Self { Self::Io(io) } } /// A block filter, as described by BIP 158. @@ -119,28 +100,18 @@ pub struct BlockFilter { pub content: Vec, } -impl FilterHash { - /// Computes the filter header from a filter hash and previous filter header. - pub fn filter_header(&self, previous_filter_header: FilterHeader) -> FilterHeader { - let mut engine = sha256d::Hash::engine(); - engine.input(self.as_ref()); - engine.input(previous_filter_header.as_ref()); - FilterHeader(sha256d::Hash::from_engine(engine)) - } -} - impl BlockFilter { /// Constructs a new filter from pre-computed data. - pub fn new(content: &[u8]) -> BlockFilter { BlockFilter { content: content.to_vec() } } + pub fn new(content: &[u8]) -> Self { Self { content: content.to_vec() } } /// Computes a SCRIPT_FILTER that contains spent and output scripts. pub fn new_script_filter( block: &Block, script_for_coin: M, - ) -> Result + ) -> Result where M: Fn(&OutPoint) -> Result, - S: Borrow