Commit Graph

3133 Commits

Author SHA1 Message Date
Andrew Poelstra 582c0e3dfa
Merge rust-bitcoin/rust-bitcoin#2054: Bump model-checking/kani-github-action from 0.15 to 0.36
1f25a40440 Bump model-checking/kani-github-action from 0.15 to 0.36 (dependabot[bot])

Pull request description:

  Bumps [model-checking/kani-github-action](https://github.com/model-checking/kani-github-action) from 0.15 to 0.36.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/model-checking/kani-github-action/releases">model-checking/kani-github-action's releases</a>.</em></p>
  <blockquote>
  <h2>Kani Verifier CI Action 0.36</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.35</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.34</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.33</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.32</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.31</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.30</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.29</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.28</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.27</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.26</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.25</h2>
  <p>Bump Kani version to 0.25.0</p>
  <h2>Kani Verifier CI Action 0.24</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.23</h2>
  <p>Update to Kani 0.23.0</p>
  <h2>Kani Verifier CI Action 0.22</h2>
  <p>No release notes provided.</p>
  <h2>Kani Verifier CI Action 0.21</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Bump version to 0.21 by <a href="https://github.com/danielsn"><code>@danielsn</code></a> in <a href="https://redirect.github.com/model-checking/kani-github-action/pull/23">model-checking/kani-github-action#23</a></li>
  </ul>
  <h2>Kani Verifier CI Action 0.20</h2>
  <!-- raw HTML omitted -->
  </blockquote>
  <p>... (truncated)</p>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="4876903b8a"><code>4876903</code></a> Update Kani version to 0.36.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/47">#47</a>)</li>
  <li><a href="402266cd4f"><code>402266c</code></a> Update Kani version to 0.35.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/43">#43</a>)</li>
  <li><a href="86cd7a26e0"><code>86cd7a2</code></a> Bump Kani version to 0.34.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/42">#42</a>)</li>
  <li><a href="ba46efd09d"><code>ba46efd</code></a> Bump Kani version (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/41">#41</a>)</li>
  <li><a href="8b0aa93be2"><code>8b0aa93</code></a> Bump Kani version to 0.32.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/40">#40</a>)</li>
  <li><a href="251c15a5fb"><code>251c15a</code></a> update-to-0.31.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/39">#39</a>)</li>
  <li><a href="7a843b5dbf"><code>7a843b5</code></a> Bump kani version to 0.30.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/38">#38</a>)</li>
  <li><a href="e6805b4b48"><code>e6805b4</code></a> Bump kani version to 0.29.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/37">#37</a>)</li>
  <li><a href="15bc38bcae"><code>15bc38b</code></a> Bump Kani version to 0.28.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/36">#36</a>)</li>
  <li><a href="9757fc4509"><code>9757fc4</code></a> Update Kani version to 0.27.0 (<a href="https://redirect.github.com/model-checking/kani-github-action/issues/35">#35</a>)</li>
  <li>Additional commits viewable in <a href="https://github.com/model-checking/kani-github-action/compare/v0.15...v0.36">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=model-checking/kani-github-action&package-manager=github_actions&previous-version=0.15&new-version=0.36)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

ACKs for top commit:
  apoelstra:
    ACK 1f25a40440
  tcharding:
    ACK 1f25a40440

Tree-SHA512: 38beebebc2402c299d03999096ab0258842e44ebcd11da80e376c41c8ec1ebd8738e15dfcab906af9f094ccf9db763747eaeddd40fd7348d0d3c52d926be9d8d
2023-09-09 14:22:56 +00:00
Andrew Poelstra f2701f6241
Merge rust-bitcoin/rust-bitcoin#2057: Bump actions/download-artifact from 2 to 3
ba3c770e69 Bump actions/download-artifact from 2 to 3 (dependabot[bot])

Pull request description:

  Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p>
  <blockquote>
  <h2>v3.0.0</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Update default runtime to node16 (<a href="https://redirect.github.com/actions/download-artifact/pull/134">actions/download-artifact#134</a>)</li>
  <li>Update package-lock.json file version to 2 (<a href="https://redirect.github.com/actions/download-artifact/pull/136">actions/download-artifact#136</a>)</li>
  </ul>
  <h3>Breaking Changes</h3>
  <p>With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.</p>
  <h2>v2.1.1</h2>
  <ul>
  <li>Bump <code>@actions/core</code> to the latest version to prevent breaking changes once <code>set-output</code> and <code>save-state</code> commands are deprecated <a href="https://redirect.github.com/actions/download-artifact/pull/210">#21</a></li>
  </ul>
  <h2>v2.1.0 Download Artifact</h2>
  <ul>
  <li>Improved output &amp; logging</li>
  <li>Fixed issue where downloading all artifacts could cause display percentages to be over 100%</li>
  <li>Various small bug fixes &amp; improvements</li>
  </ul>
  <h2>v2.0.10</h2>
  <ul>
  <li>Retry on HTTP 500 responses from the service</li>
  </ul>
  <h2>v2.0.9</h2>
  <ul>
  <li>Fixes to proxy related issues</li>
  </ul>
  <h2>v2.0.8</h2>
  <ul>
  <li>Improvements to retryability if an error is encountered during artifact download</li>
  </ul>
  <h2>v2.0.7 download-artifact</h2>
  <ul>
  <li>Improved download retry-ability if a partial download is encountered</li>
  </ul>
  <h2>v2.0.6</h2>
  <p>Update actions/core NPM package that is used internally</p>
  <h2>v2.0.5</h2>
  <ul>
  <li>Add Third Party License Information</li>
  </ul>
  <h2>v2.0.4</h2>
  <ul>
  <li>Use the latest version of the <code>@actions/artifact</code> NPM package</li>
  </ul>
  <h2>v2.0.3</h2>
  <ul>
  <li>Misc improvements</li>
  </ul>
  <h2>v2.0.2</h2>
  <ul>
  <li>Support for tilde expansion</li>
  </ul>
  <h2>v2.0.1</h2>
  <ul>
  <li>Download path output</li>
  <li>Improved logging</li>
  </ul>
  </blockquote>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="9bc31d5ccc"><code>9bc31d5</code></a> Update to latest actions/artifact NPM package (<a href="https://redirect.github.com/actions/download-artifact/issues/195">#195</a>)</li>
  <li><a href="d2278a10ef"><code>d2278a1</code></a> Update release-new-action-version.yml (<a href="https://redirect.github.com/actions/download-artifact/issues/196">#196</a>)</li>
  <li><a href="c1a6d8f06a"><code>c1a6d8f</code></a> Update codeql-analysis.yml (<a href="https://redirect.github.com/actions/download-artifact/issues/197">#197</a>)</li>
  <li><a href="9782bd6a98"><code>9782bd6</code></a> Update <code>@actions/core</code> to 1.10.0 (<a href="https://redirect.github.com/actions/download-artifact/issues/178">#178</a>)</li>
  <li><a href="076f0f7dd0"><code>076f0f7</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/156">#156</a> from actions/dependabot/npm_and_yarn/ansi-regex-4.1.1</li>
  <li><a href="7151be3221"><code>7151be3</code></a> Bump ansi-regex from 4.1.0 to 4.1.1</li>
  <li><a href="51cbdc41c1"><code>51cbdc4</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/152">#152</a> from actions/dependabot/npm_and_yarn/minimist-1.2.6</li>
  <li><a href="e89a529079"><code>e89a529</code></a> Bump minimist from 1.2.5 to 1.2.6</li>
  <li><a href="fb598a63ae"><code>fb598a6</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/136">#136</a> from actions/jtamsut/update-lockfile-version</li>
  <li><a href="a4a09c5d7e"><code>a4a09c5</code></a> regenerate index.js</li>
  <li>Additional commits viewable in <a href="https://github.com/actions/download-artifact/compare/v2...v3">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

ACKs for top commit:
  apoelstra:
    ACK ba3c770e69
  tcharding:
    ACK ba3c770e69

Tree-SHA512: f095603846a08e52def2c44666edc1d8e4c277a518c988b366bf37fa1ecb74e4e68ff0be91541970d20c8db779b6a984c08e14d61522c4a0edf6927b6ab338ee
2023-09-09 14:15:26 +00:00
dependabot[bot] ba3c770e69
Bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-08 20:23:02 +00:00
dependabot[bot] 1f25a40440
Bump model-checking/kani-github-action from 0.15 to 0.36
Bumps [model-checking/kani-github-action](https://github.com/model-checking/kani-github-action) from 0.15 to 0.36.
- [Release notes](https://github.com/model-checking/kani-github-action/releases)
- [Commits](https://github.com/model-checking/kani-github-action/compare/v0.15...v0.36)

---
updated-dependencies:
- dependency-name: model-checking/kani-github-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-08 20:22:53 +00:00
Andrew Poelstra b2b562d44b
Merge rust-bitcoin/rust-bitcoin#2052: CI: Add `dependabot.yml`
36a294b018 CI: Add `dependabot.yml` (Einherjar)

Pull request description:

  Fixes #2051.

  This does not touch Rust code or Cargo workflows.
  It creates a dependabot update only restricted to `"github-actions"`.

  We are using outdated `actions/checkout`, `actions/cache` (`v2` in some and `v3` in others were the must up-to-date is `v4`).

  For the `dtolnay/rust-toolchain@1.48.0` in
  f8d7bcfce2/.github/workflows/rust.yml (L77)
  it would not touch it only if there is a `1.48.X` increase in `X`.

  For the `actions-rs/toolchain@v1` in f8d7bcfce2/.github/workflows/fuzz.yml (L50) it will only update if we have `actions-rs/toolchain@vX` increase in `X`.

  **And to stress that again, it will ⚠️ create PRs and we would need to approve them ⚠️ (they would be subject to the same merge policy) to instantiate the proposed dependabots into `master`.**

ACKs for top commit:
  tcharding:
    ACK 36a294b018
  apoelstra:
    ACK 36a294b018

Tree-SHA512: 84860c8ee37d3e50f4e0c3118ac5edbfa4bd9046a553c353ae553e44051b2b8d2b0575e761d73c26964d51dda5ba03534204037cb5eca6edd6d2a3b7005c522c
2023-09-08 20:22:32 +00:00
Einherjar 36a294b018
CI: Add `dependabot.yml` 2023-09-08 05:47:19 -04:00
Andrew Poelstra f8d7bcfce2
Merge rust-bitcoin/rust-bitcoin#2040: Use weight for block size function
a68c42e113 Remove test from Transaction test names (yancy)
f796d6fef9 Use Weight type for scaled_size (yancy)
e746341f33 Add tests for scaled_size (yancy)
97b7a2dee9 Use Weight type for block base_size (yancy)
9536a9947c Add base_size test (yancy)

Pull request description:

  Use Weight type for `base_size` in Transaction.  Also a small re-factor to remove `test_` and `_tests` from the testname for transaction tests.

ACKs for top commit:
  apoelstra:
    ACK a68c42e113
  tcharding:
    ACK a68c42e113

Tree-SHA512: f4ab54143cbd9b1439912390f1e0857069a32b715477a4bc08692c5e32860a7090c95a92f78b118b17c1295c45a3bbdd209ba1d68c3a934341269235040e6911
2023-09-06 14:26:09 +00:00
Andrew Poelstra 70223027b9
Merge rust-bitcoin/rust-bitcoin#2035: Improve witness display
de95bf52cb Use checked_sub (Tobin C. Harding)

Pull request description:

  Recently we "if" guarded subtraction manually using `> 0`, we can better convey the meaning by using `checked_sub` and pattern match on the option.

  Refactor only, no logic changes.

ACKs for top commit:
  RCasatta:
    utACK de95bf52cb
  apoelstra:
    ACK de95bf52cb

Tree-SHA512: 2514cc2d8af89158e5e5e5a866f3fadb4927ba07dfb4e077fd16a98acf638588bee5ce03e2dc73fbda0b5064c30d8773d3be583c03c2a5336b8738c212a9776f
2023-09-05 13:23:38 +00:00
yancy a68c42e113 Remove test from Transaction test names 2023-09-04 15:26:44 +02:00
yancy f796d6fef9 Use Weight type for scaled_size 2023-09-04 15:26:44 +02:00
yancy e746341f33 Add tests for scaled_size 2023-09-04 15:26:44 +02:00
yancy 97b7a2dee9 Use Weight type for block base_size 2023-09-04 15:26:44 +02:00
yancy 9536a9947c Add base_size test 2023-09-04 15:26:44 +02:00
Andrew Poelstra 8e573f4b57
Merge rust-bitcoin/rust-bitcoin#2018: Introduce a basic justfile
eccd3fe57b Introduce a basic justfile (Tobin C. Harding)

Pull request description:

  Introduce usage of `just` by adding a basic `justfile`.

  If this goes in we can add various script invocations to it plus other useful things that often get red CI runs (eg, checking no-std).

ACKs for top commit:
  RCasatta:
    ACK eccd3fe57b
  apoelstra:
    ACK eccd3fe57b

Tree-SHA512: c10514e0ee623f366904c9103bc961a1316b199c09083180767fb9b5864e94df122c9db1a3ea084c8790f0b849e89c68b304f87247b70763fb93c28a33642d28
2023-09-03 15:06:27 +00:00
Andrew Poelstra 1cb5cb7547
Merge rust-bitcoin/rust-bitcoin#2032: Update base64 usage to 0.21.3
18e2854a42 Update base64 usage to 0.21.3 (junderw)

Pull request description:

  Closes #2031

  The imports are a bit bike-sheddy... but I think this is fine.

ACKs for top commit:
  tcharding:
    ACK 18e2854a42
  apoelstra:
    ACK 18e2854a42

Tree-SHA512: 5707adc2066ef33a30e81eb74ddcb938350e5853438152278767c824a45909a0b4761d036e4e5f21fccd61102c4734936b5fd570dbd87140cd3b679dc9c7eec4
2023-09-02 14:01:57 +00:00
junderw 18e2854a42
Update base64 usage to 0.21.3 2023-08-30 22:47:56 -07:00
Tobin C. Harding eccd3fe57b
Introduce a basic justfile
Introduce usage of `just` by adding a basic `justfile`.
2023-08-31 13:19:49 +10:00
Tobin C. Harding de95bf52cb
Use checked_sub
Recently we "if" guarded subtraction manually using `> 0`, we can better
convey the meaning by using `checked_sub` and pattern match on the
option.

Refactor only, no logic changes.
2023-08-31 13:11:11 +10:00
sanket1729 c06c9beb01
Merge rust-bitcoin/rust-bitcoin#2036: CI: Fx pinning
adcc01c0bd CI: Fix pinning (Tobin C. Harding)

Pull request description:

  More crates broke our MSRV by using edition 2021 without doing a major release, pin them in the CI script.

  Other open PRs need this to get past CI.

ACKs for top commit:
  sanket1729:
    ACK adcc01c0bd

Tree-SHA512: 3fbaaf2677791c4761fb0543a09f855441a977aec8d277c01c12c3389ce64158833b6a5ea89a3cf4f2182b51f480849deaf8e33127a14f818024a1af95346baa
2023-08-30 19:58:14 -07:00
Riccardo Casatta feafac3c65
Merge rust-bitcoin/rust-bitcoin#1999: Fix witness display bug
84614d9997 Unit test debug print of witness with empty instruction (Tobin C. Harding)
e96be5ee6e Fix Witness debug display bug (Tobin C. Harding)

Pull request description:

  When we introduce a custom `Debug` implementation for the `Witness` we introduced a bug that causes code to panic if the witness contains an empty instruction.

  The bug can be verified by putting patch 2 first or by running `cargo run --example sighash` on master.

ACKs for top commit:
  apoelstra:
    ACK 84614d9997
  RCasatta:
    ACK 84614d9997

Tree-SHA512: d51891206ab15f74dda07eb29ff3f6c69dc3f983a5a5abb55685688548481a19f7c1d33aa1183a89c553ff2bc86cf41057c2bae33d75e8a7f3b801056775bf9e
2023-08-30 11:48:27 +02:00
Tobin C. Harding adcc01c0bd
CI: Fix pinning
More crates broke our MSRV by using edition 2021 without doing a major
release, pin them in the CI script.

diff --git a/contrib/test.sh b/contrib/test.sh
index 74f8ffb3..79932ad5 100755
--- a/contrib/test.sh
+++ b/contrib/test.sh
@@ -13,6 +13,12 @@ if cargo --version | grep ${MSRV}; then
     cargo update -p quote --precise 1.0.30
     cargo update -p proc-macro2 --precise 1.0.63
     cargo update -p serde_test --precise 1.0.175
+    # Have to pin this so we can pin `schemars_derive`
+    cargo update -p schemars --precise 0.8.12
+    # schemars_derive 0.8.13 uses edition 2021
+    cargo update -p schemars_derive --precise 0.8.12
+    # memcrh 2.6.0 uses edition 2021
+    cargo update -p memchr --precise 2.5.0

     cargo update -p bitcoin:0.30.1 --precise 0.30.0
2023-08-29 12:33:19 +10:00
Andrew Poelstra 7fd9b89e82
Merge rust-bitcoin/rust-bitcoin#2010: Use weight type for stripped_size
55e94b5dea Remove test from test names for Weight type (yancy)
142dde64c3 Use Weight type for stripped_size (yancy)
cb76f3ec43 Add scale_by_witness_factor to Weight type (yancy)
38c9e9947e Add witness scale factor to the Weight type (yancy)
77552987ab Add from_wu_usize to Weight type (yancy)
1a88c887f5 Rename strippedsize to stripped_size (yancy)
3369257c75 Fix grammar (yancy)

Pull request description:

  Return Weight type for the strippedize function.

ACKs for top commit:
  apoelstra:
    ACK 55e94b5dea
  tcharding:
    ACK 55e94b5dea

Tree-SHA512: ad3e4bc29380f22e20a6302c1b24c201c772be759c655c62ba4717840a01fcaa36f0f8442c9a3ba71c6400d6af47a9a815e6d90877b5f14c6883fb950b9669fd
2023-08-26 16:12:43 +00:00
Andrew Poelstra eef5cc3b92
Merge rust-bitcoin/rust-bitcoin#1978: Wrap the `bitcoinconsensus` error
29a4f9b114 Wrap the bitcoinconsensus error (Tobin C. Harding)

Pull request description:

  Currently the `bitcoinconsensus` error is part of the public API. This hinders maintainability because changes to the verison of `bitcoinconsensus` force a re-release in `rust-bitcoin`. This is an unnecessary maintenance burden, we can wrap the error instead.

ACKs for top commit:
  apoelstra:
    ACK 29a4f9b114
  sanket1729:
    utACK 29a4f9b114

Tree-SHA512: 36bc1b0ad5f5675d79eea2409844a839d862997c256e301c53c5f1af547edc9a0b83e586bd70e1b8853722cd7ef279e7515e09fbe942660f8049090d1be39d3a
2023-08-25 15:06:42 +00:00
Andrew Poelstra 4dc71b0de7
Merge rust-bitcoin/rust-bitcoin#2020: Add version bytes consts
f18f684ad2 Add version bytes consts (Tobin C. Harding)

Pull request description:

  BIP-32 defines 4 4-byte consts used as version bytes; currently we are hardcoding the version bytes in multiple places.

  Add BIP-32 version bytes consts and use them throughout the module.

ACKs for top commit:
  apoelstra:
    ACK f18f684ad2
  RCasatta:
    utACK f18f684ad2

Tree-SHA512: 50bf2d26f0f8e3528642ffcc621c03b82f536994deb808a6c84225676b4b8849db8e0d16e46f3819e0810296a422b31cf90d0595739910afdb92fb768ef7696e
2023-08-25 14:57:59 +00:00
Andrew Poelstra a458461a6b
Merge rust-bitcoin/rust-bitcoin#2004: psbt: Add IndexOutOfBounds error
66d5800ac0 psbt: Add IndexOutOfBounds error (Tobin C. Harding)

Pull request description:

  We currently have a bunch of functions that are infallible if the `index` argument is within-bounds however we return a `SignError`, this obfuscates the code.

  Add an `IndexOutOfBoundsError`. While we are at it make it an enum so users can differentiate between which vector the out of bounds access was attempted against.

ACKs for top commit:
  sanket1729:
    utACK 66d5800ac0. This is a clean improvement over existing code.
  apoelstra:
    ACK 66d5800ac0

Tree-SHA512: fa8a24990d1dcdab0c9b019fb2387b5a518b02d0a65715f0ab62519894b19c0c74750d3dcdc928626fa68b146038b907d79de3ba9712c9287db8fa64693ebc11
2023-08-25 13:58:06 +00:00
Andrew Poelstra 082bd03120
Merge rust-bitcoin/rust-bitcoin#2019: Rename xpub and xpriv types
be05f9d852 Rename xpub and xpriv types (Tobin C. Harding)

Pull request description:

  The BIP-32 extended public key and extended private key exist in the Bitcoin vernacular as xpub and xpriv. We can use these terms with no loss of clarity.

  Rename our current BIP-32 types

  - `ExtendedPubKey` to `Xpub`
  - `ExtendedPrivKey` to `Xpriv`

  This patch is a mechanical search-and-replace, followed by running the formatter, no other manual changes.

ACKs for top commit:
  apoelstra:
    ACK be05f9d852
  sanket1729:
    ACK be05f9d852

Tree-SHA512: 49925688783c3f37a9b92a9767a0df095323a3fa51f3d672a0b5dd1d8bca86f7facbcc33921274bc147b369de09042c4850b08c31e63f71110903435daa6c00c
2023-08-25 13:41:50 +00:00
Andrew Poelstra bd05e3f309
Merge rust-bitcoin/rust-bitcoin#2029: Fix clippy warnings
724be17394 Remove useless usage of vec! macro (Tobin C. Harding)
e84ca292d9 Clear incorrect implementation of clone warning (Tobin C. Harding)

Pull request description:

  A new version `clippy 0.1.72 (5680fa1 2023-08-23)` just came out and we get a two new warnings. Fix them up.

ACKs for top commit:
  apoelstra:
    ACK 724be17394

Tree-SHA512: f82f026773f8738d8d89710b36b979850e0e33c4d1afb4f78d2d4e957b37dd850ef9e83c9e25197dac981c7b49c448e49078777261749567303f1aac282b3d33
2023-08-25 13:27:12 +00:00
Andrew Poelstra 9dbefc6f85
Merge rust-bitcoin/rust-bitcoin#1988: Export all hash types
7bbdd9b2af Export all hash types (Tobin C. Harding)

Pull request description:

  During the 0.30.0 release we removed the re-exports of hash types. This upset some folk and since the aim of our re-exports is not exactly clean as well as the fact that the public API surface is not yet fixed just re-export all the hash types at the crate root again.

  This is #1792 but does not use a wildcard and also grabs the other hashes that we recently moved.

ACKs for top commit:
  apoelstra:
    ACK 7bbdd9b2af
  sanket1729:
    ACK 7bbdd9b2af

Tree-SHA512: addfb617fae2fce12eb9d198ffeb1b0c99792dfd757222c21c62bd4b408432de5dc93c42da7d886b43c29b2c34bd318573e813f567a29080fc264ee7beba0f70
2023-08-25 13:02:19 +00:00
yancy 55e94b5dea Remove test from test names for Weight type 2023-08-25 10:28:34 +02:00
yancy 142dde64c3 Use Weight type for stripped_size 2023-08-25 10:28:34 +02:00
yancy cb76f3ec43 Add scale_by_witness_factor to Weight type 2023-08-25 10:28:34 +02:00
yancy 38c9e9947e Add witness scale factor to the Weight type 2023-08-25 10:28:05 +02:00
yancy 77552987ab Add from_wu_usize to Weight type 2023-08-25 10:03:59 +02:00
yancy 1a88c887f5 Rename strippedsize to stripped_size 2023-08-25 10:03:39 +02:00
Tobin C. Harding 724be17394
Remove useless usage of vec! macro
Clippy emits a bunch of warnings of form:

  warning: useless use of `vec!`

As suggested, remove the vec and just use an array.
2023-08-25 12:30:04 +10:00
Tobin C. Harding e84ca292d9
Clear incorrect implementation of clone warning
Clippy emits:

  error: incorrect implementation of `clone` on a `Copy` type

As suggested use `*self` instead of each individual field.
2023-08-25 12:08:56 +10:00
Andrew Poelstra cdbd4be4b1
Merge rust-bitcoin/rust-bitcoin#1917: hashes: Release `v0.13.0`
53f68383b7 hashes: Bump version to 0.13.0 (Tobin C. Harding)

Pull request description:

  In preparation for `hashes` release, bump the version. Depend on new version in `rust-bitcoin`.

  Note the `bitcoin-private` addition to the lock files is because we temporarily have two `bitcoin_hashes` dependencies and the secp one (v.0.12.0) depends on `bitcoin-private`.

ACKs for top commit:
  sanket1729:
    utACK 53f68383b7 . I am not sure about the exact nature of release dance between various crates in rust-bitcoin. This code and changelog entries looks good.
  apoelstra:
    ACK 53f68383b7

Tree-SHA512: a1933bcda1fa9a06c96a4c7079ff49f531e4f366373e98700446cecdf1eed5a104d4d4aa737202ec426cb1f1edf88eff5eee80df9f0cc3a9779c051a55f847b5
2023-08-24 17:22:10 +00:00
Andrew Poelstra da1836edf5
Merge rust-bitcoin/rust-bitcoin#2012: Add a script for updating lock files
8b84227aec Add a script for updating lock files (Tobin C. Harding)

Pull request description:

  Every time one of the dependencies is explicitly changed we have to update the minimal/recent lock files. Add a script to do so.

ACKs for top commit:
  apoelstra:
    ACK 8b84227aec
  sanket1729:
    ACK 8b84227aec

Tree-SHA512: f165308131077c55712d9ae5b85a4dc5f0f24c660dd4c196c48a53f64411b25714b2f32d3a6538f040b3d8ef5240df7d16b7b66561e0d8bb49245b44eb8f522c
2023-08-24 16:50:46 +00:00
Andrew Poelstra 407dec0bce
Merge rust-bitcoin/rust-bitcoin#2024: Add VarInt from implementations by way of macro
0419fa278b Add VarInt from implementations by way of macro (Tobin C. Harding)

Pull request description:

  Throughout the codebase we cast values to `u64` when constructing a `VarInt`. We can make the code marginally cleaner by adding `From<T>` impls for all unsigned integer types less than or equal to 64 bits. Also allows us to (possibly unnecessarily) comment the cast in a single place.

ACKs for top commit:
  sanket1729:
    utACK 0419fa278b
  apoelstra:
    ACK 0419fa278b

Tree-SHA512: 0cbcc7e9ec6a1a102693cb13685c348672fb13b098cbecd0a36bed0331165adb008f149f87f7b0c64f131974cfe513adbc12f508bc4853906adb2a65c0c647ee
2023-08-24 15:50:29 +00:00
Tobin C. Harding 53f68383b7
hashes: Bump version to 0.13.0
Add a changelog entry and bump the version to 0.13.0

Does not include changes to `bitcoin` to depend on the new version.
2023-08-24 12:25:42 +10:00
Tobin C. Harding 66d5800ac0
psbt: Add IndexOutOfBounds error
We currently have a bunch of functions that are infallible if the
`index` argument is within-bounds however we return a `SignError`, this
obfuscates the code.

Add an `IndexOutOfBoundsErorr`. While we are at it make it an enum so
users can differentiate between which vector the out of bounds access
was attempted against.
2023-08-24 12:12:04 +10:00
Tobin C. Harding 8b84227aec
Add a script for updating lock files
Every time one of the dependencies is explicitly changed we have to
update the minimal/recent lock files. Add a script to do so.
2023-08-24 11:03:06 +10:00
Tobin C. Harding 0419fa278b
Add VarInt from implementations by way of macro
Throughout the codebase we cast values to `u64` when constructing a
`VarInt`. We can make the code marginally cleaner by adding `From<T>`
impls for all unsigned integer types less than or equal to 64 bits.
Also allows us to (possibly unnecessarily) comment the cast in a single
place.
2023-08-24 10:37:53 +10:00
Andrew Poelstra 1991b7af40
Merge rust-bitcoin/rust-bitcoin#1998: Remove usage of ThirtyTwoByteHash
d9533523ac Remove usage of ThirtyTwoByteHash (Tobin C. Harding)

Pull request description:

  The `ThirtyTwoByteHash` trait is defined in `secp256k1` and used in `hashes` as well as `bitcoin`. This means that we must use the same version of `hashes` in both `bitcoin` and `secp256k1`. This makes doing release difficult.

  Remove usage of `ThirtyTwoByteHash` and use `Message::from_slice`. Include TODO above each usage because as soon as we release the new version of secp we can use the new `Message::from_digest`.

  This is step backwards as far as type safety goes and it makes the code more ugly as well because it uses `expect` but thems the breaks.

  For context see #1985

ACKs for top commit:
  sanket1729:
    utACK d9533523ac
  apoelstra:
    ACK d9533523ac

Tree-SHA512: 0dc6f7895ba6e1d2de978d45152e6e12b9f81b3fbe9f3ba89c090005b6c8d2e1221e0a04a3ac38c7e7669f6ce62edaa21739ae58cc1d2cad63f608a36231718e
2023-08-23 14:07:11 +00:00
Tobin C. Harding d9533523ac
Remove usage of ThirtyTwoByteHash
The `ThirtyTwoByteHash` trait is defined in `secp256k1` and used in
`hashes` as well as `bitcoin`. This means that we must use the same
version of `hashes` in both `bitcoin` and `secp256k1`. This makes doing
release difficult.

Remove usage of `ThirtyTwoByteHash` and use `Message::from_slice`.
Include TODO above each usage because as soon as we release the new
version of secp we can use the new `Message::from_digest`.

This is step backwards as far as type safety goes and it makes the code
more ugly as well because it uses `expect` but thems the breaks.
2023-08-23 12:21:26 +10:00
Tobin C. Harding f18f684ad2
Add version bytes consts
BIP-32 defines 4 4-byte consts used as version bytes; currently we are
hardcoding the version bytes in multiple places.

Add BIP-32 version bytes consts and use them throughout the module.
2023-08-22 13:49:46 +10:00
Tobin C. Harding be05f9d852
Rename xpub and xpriv types
The BIP-32 extended public key and extended private key exist in the
Bitcoin vernacular as xpub and xpriv. We can use these terms with no
loss of clarity.

Rename our current BIP-32 types

- `ExtendedPubKey` to `Xpub`
- `ExtendedPrivKey` to `Xpriv`

This patch is a mechanical search-and-replace, followed by running the
formatter, no other manual changes.
2023-08-22 13:47:35 +10:00
Andrew Poelstra 5bf2117dc4
Merge rust-bitcoin/rust-bitcoin#1995: Improve segwit signature hash API
4300cf2210 Add p2wpkh and p2wsh signature hash functions (Tobin C. Harding)

Pull request description:

  The word "segwit" refers to segwit v0 and taproot but these functions are version specific. Add `v0` into the function names.

  This is similar to #1994, both based on recent post of mine to bitcoin dev mailing list.

ACKs for top commit:
  stevenroose:
    ACK 4300cf2210
  apoelstra:
    ACK 4300cf2210

Tree-SHA512: 723fc302954514da0fa57a3890b9f62e9d8d1b25289b8db00611d8bc34c5000b9e54943f57b8e94befcaf72633ac078b2ff66a1da0c5bb483cfaa584e3cb6014
2023-08-21 14:53:04 +00:00
yancy 3369257c75 Fix grammar 2023-08-21 15:51:58 +02:00
Andrew Poelstra 672656515e
Merge rust-bitcoin/rust-bitcoin#2001: Add txin base weight
7ec33d29eb refactor: developer doc first (yancy)
5496feb5c1 Add base weight const to TxIn (yancy)

Pull request description:

  Add a base weight const to TxIn.  I also used this const in strippedsize() and scaledsize().  As a different PR, I think strippedsize and scaledsize could return Weight instead of usize.  Also added a small commit to re-arrange commit messages.

ACKs for top commit:
  apoelstra:
    ACK 7ec33d29eb
  tcharding:
    ACK 7ec33d29eb

Tree-SHA512: b20f95605ed664b88df0a5a178d48f15f27d90eb404c9707aef010c4504d7ffd4a3565c217710b9289f87ed2a0724fd8f7cc78a79a58547fe3ee87339c0d74c1
2023-08-18 14:28:38 +00:00