Commit Graph

160 Commits

Author SHA1 Message Date
Conrado Gouvea 828007cc33
bump to 0.3.1 (#217)
* bump to 0.3.1

* Add necessary components to toolchain

Apparently GitHub recently made changes so that these components aren’t
installed automatically for all toolchains, so they’re now explicit (as
they probably should have been all along).

* comment cleanups

---------

Co-authored-by: Greg Pfeil <greg@technomadic.org>
2025-05-20 09:45:48 +02:00
Greg Pfeil d72cb63dd0
Remove extra `&` from `SighashCalculator` (#216)
* Remove extra `&` from `SighashCalculator`

* Remove the now-unnecessary lifetimes
2025-05-15 12:16:21 -03:00
Conrado Gouvea edf94cbf5c
bump to 0.3.0; attempt at using release-plz (#215) 2025-05-13 21:08:43 +02:00
Greg Pfeil d3e242b47f
Eliminate `ScriptNum` (#208)
* Move `set_vch` to simplify later diffs

This makes no changes other than swapping the positions of the `set_vch`
and `serialize` operations on `ScriptNum`.

* Extract integer ↔︎ `Vec<u8>` `fn`s from `ScriptNum`

__NB__: I recommend ignoring whitespace when reviewing this commit.

`ScriptNum` was used one of three ways:
1. convert a Rust integer to a stack value
2. load a stack value into Rust
3. do arithmetic on stack values

Combining these into one interface added extra complexity. For example,
`getint()` would clamp the value to `i32` range, but that range could
only be violated if arithmetic was performed on `ScriptNum`s, and
`getint` was never used on the result of arithmetic.

This extracts `parse_num` and `serialize_num` changing the three
patterns as follows:
1. `ScriptNum::from(_).getvch()` is now `serialize_num(_)`, and
2. `ScriptNum::new(_).and_then(getint())` is now `parse_num(_)`,
3. `ScriptNum::new(_)` … `getvch()` remains the same.

* Make `ScriptNum` a process

We never held a `ScriptNum` – we create one from the stack, perform an
operation, and serialize the result. This eliminates the type in favor
of operations that take a closure on `i64`s.

The operations that exist can’t possibly hit the various bounds that
were checked on `ScriptNum` operations, so they were removed.

As part of the above work, this introduces `cast_from_bool`, which is
then used to replace all instances of `VCH_TRUE`/`FALSE`.
2025-04-30 18:12:50 -03:00
Greg Pfeil cc157ffdce
Add various stepwise functionality (#204)
* Move some constants in preparation

This makes some minor changes to constants to facilitate splitting out a
stepwise interpreter.

* Extract a step function from the interpreter

This is generally useful for testing, but specifically, we want to be
able to run this side-by-side with the C++ interpreter, and check that
every bit of our state matches along the way.

This change is as minimal as possible, to avoid divergence until after
it can be compared against C++. E.g., the massive `match opcode {…}`
block that has been moved should only change the dereferencing of
`op_count`.

* Add a `State` struct to make stepping easier

* Expose step interpreter

* Add a stepwise comparison interpreter

The C++ changes aren’t in place yet, so this is currently just an A/A test.

This changes our closures into structs containing a function, because
that’s how we can pass around functions with universally-quantified
lifetimes.

* Make interpreters more flexible

Previously the `ZcashScript` impls didn’t use `self`, so the types were
just tags. However, with the new `StepwiseInterpreter`, they need
`self`.

This also removes `RustInterpreter` in favor of a `rust_interpreter`
function that instantiates an appropriate `StepwiseInterpreter`.

* Add a function for C++/Rust comparison interpreter

* Fix fuzzer

* Clean up `use` in lib.rs

* Fix weird indentation

* Make various fields non-`pub`

* Add a `new` constructor for `Stack`

* Remove incorrect comment

* Appease Clippy

Adds `Default` impls for `Stack` and `State`.

* Rename `State::manual` to `State::from_parts`
2025-04-10 18:03:29 -03:00
Greg Pfeil 2afc474338
Addressing post-hoc PR feedback on #174 (#197)
* Add ECC & myself (Greg Pfeil) as authors

* Have the Rust impl correctly report “high s” sigs

There is a bug in the C++ side where the error is not set correctly on a
“high s” signature. The Rust side had mirrored this bug, but this
eliminates the bug in the Rust.

* Remove extra byte from sig before low-s check

This doesn’t seem to have any effect on the semantics, as the DER-formatted signature includes
lengths that ensure it will ignore extra bytes, but the C++ code removes the extra byte, so the Rust
should as well.

* Change some comments

Co-authored-by: Daira-Emma Hopwood <daira@electriccoin.co>

* Appease `rustfmt`

* Have OP_DUP match the C++ impl more closely

* Address the second half of @daira’s #174 review

* Eliminate mutation from `Opcode` parsing

This now splits slices and returns the remaining pieces rather than
modifying the arguments.

* Remove obsolete comment

* Address PR comments

* Address additional comments on #174

---------

Co-authored-by: Daira-Emma Hopwood <daira@electriccoin.co>
2025-02-25 13:49:54 -03:00
Greg Pfeil 228ec8b4f7
Expose `ScriptError` on C++ side (#195)
**This changes the C++ implementation.**

Provides richer errors, which also gives more precision when comparing
against the Rust impl.

This also removes the (now unused) `zcash_script_error_t`. The only case
other than `zcash_script_ERR_OK` that was still in use was
`zcash_script_ERR_VERIFY_SCRIPT`, so that case has been added to
`ScriptError`.

This avoids changing the Rust API, but potentially `Error` and
`ScriptError` on the Rust side could be collapsed into one `enum`. It
would just be a breaking change.
2025-02-11 11:22:52 -03:00
dependabot[bot] 981dac81d6
Bump cc from 1.2.10 to 1.2.11 (#196)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.10 to 1.2.11.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.10...cc-v1.2.11)

---
updated-dependencies:
- dependency-name: cc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-04 11:11:42 -03:00
dependabot[bot] 10489af5f4
Bump tracing from 0.1.40 to 0.1.41 (#193)
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.40 to 0.1.41.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.40...tracing-0.1.41)

---
updated-dependencies:
- dependency-name: tracing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-04 11:09:53 -03:00
dependabot[bot] 2ec9b8d94d
Bump proptest from 0.9.6 to 1.6.0 (#192)
Bumps [proptest](https://github.com/proptest-rs/proptest) from 0.9.6 to 1.6.0.
- [Release notes](https://github.com/proptest-rs/proptest/releases)
- [Changelog](https://github.com/proptest-rs/proptest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/proptest-rs/proptest/compare/0.9.6...v1.6.0)

---
updated-dependencies:
- dependency-name: proptest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-04 11:09:18 -03:00
dependabot[bot] 274a8a8e9f
Bump libfuzzer-sys from 0.4.8 to 0.4.9 (#194)
Bumps [libfuzzer-sys](https://github.com/rust-fuzz/libfuzzer) from 0.4.8 to 0.4.9.
- [Changelog](https://github.com/rust-fuzz/libfuzzer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-fuzz/libfuzzer/compare/0.4.8...0.4.9)

---
updated-dependencies:
- dependency-name: libfuzzer-sys
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 19:58:39 -03:00
dependabot[bot] 35e19f95e2
Bump secp256k1 from 0.29.0 to 0.30.0 (#191)
Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1) from 0.29.0 to 0.30.0.
- [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.29.0...secp256k1-0.30.0)

---
updated-dependencies:
- dependency-name: secp256k1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 19:55:48 -03:00
Greg Pfeil 61f3ef3e74
Change type of `lock_time` parameter (#190)
* Change type of `lock_time` parameter

This is a breaking change. Lock times are stored in tx as `u32`, but
this API expected `i64`, forcing conversions on the caller. This change
brings the API into alignment with the tx representation.

* Update the `lock_time` type in the fuzz test
2025-01-30 10:54:32 -03:00
dependabot[bot] 4be3521814
Bump cc from 1.1.10 to 1.2.10 (#189)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.1.10 to 1.2.10.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.10...cc-v1.2.10)

---
updated-dependencies:
- dependency-name: cc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-29 20:03:38 -03:00
dependabot[bot] 4b55ca684b
Bump bitflags from 2.6.0 to 2.8.0 (#185)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.6.0 to 2.8.0.
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bitflags/bitflags/compare/2.6.0...2.8.0)

---
updated-dependencies:
- dependency-name: bitflags
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-29 19:45:47 -03:00
Dimitris Apostolou c21f1cbaee
Fix RUSTSEC-2024-0006 (#183) 2025-01-29 19:34:25 -03:00
Dimitris Apostolou 376fada843
Fix clippy warnings (#188) 2025-01-29 19:33:31 -03:00
Greg Pfeil 335ae9a2a6
Initial Rust implementation (#174)
* [DRAFT]

* Rearrange Rust impl to match C++ more closely

The only changes here other than moving chunks of code around are
- moving `evaluate` out of `impl Script`, which required changing
 `&self` to `script: &Script`; and
- unifying `ExecutionOptions` with `VerificationFlags`.

* Rename Rust identifiers to match C++

For easier side-by-side comparison.

* Connected the new API, but fails

* Existing unit tests succeed

* The rest of the owl

* Reverting to C++ style, and some other changes

* Appease Clippy

* Replace `ScriptNum` panics with error case

The C++ impl uses exceptions for `ScriptNum`, but catches them.

* Add some shallow property tests

These tests run both the C++ and Rust impls. One uses completely
arbitrary inputs, and the other limits script_sig to data pushes.

* Add shallow fuzz testing

* Preserve richer errors on the Rust side

For now, the underlying errors are discarded when comparing against the
C++ results, but there are corresponding changes on the C++ side in a
separate branch.

* Address @nuttycom’s review comments

- remove `uint256` module
- create a specific type for the C++/Rust comparison implementation
- rename some identifiers
- rephrase some comments

* Some changes to ease zebrad integration

- Switch from `log` to `tracing` for `warn!`,
- Export `SignedOutputs`, which is needed to create a `HashType`, and
- Upgrade zcash_primitives to the same version used by zebrad.

* Appease Clippy

* Remove dependency on zcash_primitives

This was only needed for the `TxVersion` enum. However, the `StrictEnc`
flag is a proxy for the v5 tx requirements, so instead of checking the
`TxVersion` explicitly, we expect callers to include `StrictEnc` for
verification of v5 transactions.

* Moving testing dependencies

libfuzzer-sys is Linux-specific, and it & proptest are only used for tests.

* Normalize Rust errors in comparison interpreter

This was a minor oversight, but this correction should only eliminate
false mismatches.

* Address @nuttycom’s PR feedback

* Eliminate a `panic!`

This `panic!` appears to be unreachable in the current implementation, but there is no need for it.
It doesn’t introduce any new failure cases.

Thanks to @conradoplg for noticing it.

* Use (`Try`)`From` for `ScriptNum` conversions

This also makes the `ScriptNum` field private so that `bn.0` can’t
extract the unconstrained `i64` value.

* Remove some `From` instances that do too much

* Subtract from `OP_RESERVED` instead of `OP_1 - 1`

`OP_RESERVED` is in the ‘0’ offset position of the `OP_n` opcodes. Just
use this even though it isn’t obviously a number to improve readability.

---------

Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2025-01-29 19:31:52 -03:00
Conrado Gouvea 4edd9009a2
Bump bindgen 0.71.1 (#187)
* Bump bindgen from 0.69.4 to 0.71.1

Bumps [bindgen](https://github.com/rust-lang/rust-bindgen) from 0.69.4 to 0.71.1.
- [Release notes](https://github.com/rust-lang/rust-bindgen/releases)
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/rust-bindgen/compare/v0.69.4...v0.71.1)

---
updated-dependencies:
- dependency-name: bindgen
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update proc-macro2 in Cargo.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-23 19:11:15 -03:00
Conrado Gouvea 38cc608560
Bump cc 1.1.10 (#186)
* Bump cc from 1.0.95 to 1.1.10

Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.0.95 to 1.1.10.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/1.0.95...cc-v1.1.10)

---
updated-dependencies:
- dependency-name: cc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix clippy issue

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-23 19:11:03 -03:00
dependabot[bot] a9bfcd5da2
Bump libc from 0.2.159 to 0.2.168 (#181)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.159 to 0.2.168.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.168/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.159...0.2.168)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-07 14:23:05 -03:00
dependabot[bot] 18af6894fd
Bump EmbarkStudios/cargo-deny-action from 1 to 2 (#180)
Bumps [EmbarkStudios/cargo-deny-action](https://github.com/embarkstudios/cargo-deny-action) from 1 to 2.
- [Release notes](https://github.com/embarkstudios/cargo-deny-action/releases)
- [Commits](https://github.com/embarkstudios/cargo-deny-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: EmbarkStudios/cargo-deny-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-07 14:22:33 -03:00
dependabot[bot] 116dc00a7f
Bump lazy_static from 1.4.0 to 1.5.0 (#163)
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.4.0...1.5.0)

---
updated-dependencies:
- dependency-name: lazy_static
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-07 14:21:54 -03:00
Greg Pfeil 7bcfb7729b
Add a basic rust-toolchain.toml (#176)
* Add a basic rust-toolchain.toml

Matches the one in Zebra, although I think pinning to a specific release
(e.g., `channel = "1.82"`) would help with consistency, perhaps avoiding
issues like
https://github.com/ZcashFoundation/zcash_script/pull/174#issuecomment-2445336306

* Remove redundant toolchain info from GH workflow

[actions-rs/toolchain doesn’t support TOML-formatted
rust-toolchain files](actions-rs/toolchain#126), but it’s unnecessary anyway.

- actions-rs/cargo will pick up the rust-toolchain.toml, so we usually
  don’t need to mention the toolchain at all;
- the Windows build just runs `rustup target add x86_64-pc-windows-msvc`
  directly; and
- where we want to build with multiple toolchains (in a matrix), there
  are some slightly-awkward conditionals.

This also makes some other changes:

- `fail-fast` is disabled because it hides useful & distinct build
  results; and
-  `rustup component add` for clippy and rustfmt are removed because
  they’re in the rust-toolchain.toml toolchain, and we want to make sure
  they are, so that they’re available to developers.

* Pin rustup channel to "1.81"

Newer versions until 1.85 (current nightly) have some breakage wrt C++
linking.

* Have bindgen target correct rustc version

It should match the version in rust-toolchain.toml. Unfortunately, it’s
not possible to reference that directly, so this adds comments to remind
contributors to update them together.
2024-12-16 10:47:41 +01:00
Greg Pfeil a429b3f8d3
Address Str4d’s comments on #171 (#175)
* Address Str4d’s comments on #171

Notably, `HashType` has changed incompatibly, so
ZcashFoundation/zebra#8751 will need to be updated.

* Apply suggestions from code review

Co-authored-by: Jack Grigg <thestr4d@gmail.com>

* Restrict bitflags used for `HashType` in v5 tx

---------

Co-authored-by: Jack Grigg <thestr4d@gmail.com>
2024-10-24 19:24:40 -03:00
Greg Pfeil 9d16e79c72
Provide a Rustier wrapper for zcash_script (#171)
* Move C++ bindings out of lib.rs

Have lib.rs re-export them, but make room for the upcoming Rust implementation.

* Provide a Rustier wrapper for zcash_script

This adds a `Script` trait that exposes slightly Rustier types in order
to have a common interface for the existing C++ implementation as well
as the upcoming Rust implementation (and a third instance that runs both
and checks that the Rust result matches the C++ one).

The module structure (interpreter.rs, zcash_script.rs) and locations of
definitions are intended to mirror the structure of the C++ code, especially as
we get the Rust implementation in place, for easier comparison. That
organization is very likely to change once everything has been checked.

* Address review feedback

Thanks to @nuttycom and @arya2 for getting the closure to work.

* Additional cleanup

* Use `try_from`/`_into` instead of `as`

* Address review feedback

* Widen the `Unknown` error type

This should fix the Windows build.
2024-09-17 16:11:32 -03:00
Conrado Gouvea c9d750743f
update documentation for release 0.2.0 (#161) 2024-06-10 17:17:54 +02:00
Conrado Gouvea 4924030059
Remove dependencies by switching to simplified API with a callback interface (#157)
* created zcash_script_verify_prehashed; compiles

* removed unneded code; callback API

* revert formatting changes to interpreter.cpp/.h

* remove prehashed code

* moving code around

* use #if 0 instead of commenting out to make diff clearer

* tmp

* remove debug prints

* cleanups

* deleted unneeded rust files

* remove unneeded dependencies

* remove more unneeded files

* add new tests and remove old ones

* remove unneded params; add sighashLen to callback

* remove unneeded code

* msvc fixes
2024-06-04 23:52:11 +02:00
Alfredo Garcia ef2a7fdd5d
cargo release execute output for v0.16 (#149)
* chore: Release zcash_script version 0.1.16

* fix the date
2024-04-26 09:45:10 -03:00
Alfredo Garcia 06de015788
Bump v0.1.16 (#147)
* remove zcashd depend

* Squashed 'depend/zcash/' content from commit 1408e23f0

git-subtree-dir: depend/zcash
git-subtree-split: 1408e23f00fa49ca5f86d2c7ebeb5d120603aa4c

* delete cargo, update and apply patch

* update dependencies

* fix compiling issue by updating lib.rs

* update `cc`

* update `cxx-gen`

* add changeloig entry

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2024-04-26 11:51:51 +02:00
Alfredo Garcia faed93224e
Bump the release v0.1.15 (#146)
* chore: Release zcash_script version 0.1.15

* update date
2024-04-19 11:48:41 -03:00
Alfredo Garcia 084da225db
Release v0.1.15 (#141)
* remove current zcash

* Squashed 'depend/zcash/' content from commit 889162ccf

git-subtree-dir: depend/zcash
git-subtree-split: 889162ccf3e0c2de4fda7aceec35dc3769c19131

* apply patch

* update dependencies
2024-04-17 15:41:59 -03:00
Conrado Gouvea cf9e0d26cf
Restore Windows support with MSVC (#108)
* switch to MSVC, fixes to support it

* fix linking errors

* document how to patch zcash source

* update hash due to nightly breakage; don't use deprecated bindgen function

* update patch with str4d's upstream suggestion

---------

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2024-04-11 07:56:54 -03:00
Alfredo Garcia 6c2eb13d9f
Create the v0.1.14 release - 2nd attempt (#110)
* update the changelog

* chore: Release zcash_script version 0.1.14

* remove duplicated
2023-10-18 15:39:20 -03:00
dependabot[bot] 4f678c97f5
Bump cxx-gen from 0.7.107 to 0.7.109 (#105)
Bumps [cxx-gen](https://github.com/dtolnay/cxx) from 0.7.107 to 0.7.109.
- [Release notes](https://github.com/dtolnay/cxx/releases)
- [Commits](https://github.com/dtolnay/cxx/commits)

---
updated-dependencies:
- dependency-name: cxx-gen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2023-10-17 17:29:05 -03:00
Alfredo Garcia 3fdf588c23
v0.1.14 release (#102)
* rm zcash

* Squashed 'depend/zcash/' content from commit e08571476

git-subtree-dir: depend/zcash
git-subtree-split: e08571476d8a59d0a624da7b118ab8d8ad2a6246

* delete zcash/Cargo.toml

* update versions

* update build

* make sapling.rs work by renaming it and copying it to OUT_DIR

* cargo fmt

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-10-17 16:03:37 -03:00
Alfredo Garcia 36de9309bf
Allow clippy lint (#103)
* allow clippy lint

* Revert "allow clippy lint"

This reverts commit 6744ff1ca4.

* move allow clippy rule to lib.rs

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-10-17 09:26:34 -03:00
Alfredo Garcia 4b8643723a
Add Cargo.lock to the project (#96) 2023-09-18 10:51:36 +10:00
dependabot[bot] 5541e58d34
Bump actions/checkout from 3 to 4 (#92)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 12:02:38 -03:00
Arya b900ff4261
v0.1.13 release (#91)
* rm depend/zcash

* Squashed 'depend/zcash/' content from commit 00c2a2434

git-subtree-dir: depend/zcash
git-subtree-split: 00c2a2434e655d275c26986c8751793f4c98bb01

* rm depends/zcash/Cargo.toml

* updates Cargo.toml

* Updates Changelog

* add tl_expected.hpp

* Fix build

* add test-dependencies features to ecc deps

* add missing .c files from secp256k1

* chore: Release zcash_script version 0.1.13

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-07-07 14:06:27 -04:00
teor 62c83941ed Remove duplicate release instructions 2023-05-08 17:26:23 -04:00
teor 258900639b (cargo-release) version 0.1.12 2023-05-08 07:16:28 +10:00
teor 5cfaef7bbd
Upgrade zcash_script to zcashd v5.5.0 (#84)
* Update dependencies to match zcashd v5.5.0

* Update dependencies to match Zebra main branch

* Update release instructions

* Add module docs for the build script to avoid warnings

* Update bridge file list to match the latest zcashd

* Ignore some emacs temporary files

* Standardise directory include paths in Cargo.toml

* Add extra info to cxx_gen errors

* Add additional Rust dependencies needed to compile

* Ignore some expected clippy lints

* Silence a C compiler macro redefinition warning

* Standardise directory paths in build.rs

* fix cxxbridge code generation

* Update Cargo.lock

* Use include!() for bridge.rs

* Add a changelog entry for the next release

* Fix a warning by adding docs for the crate

* Remove previous depend/zcash

* Squashed 'depend/zcash/' content from commit eb80047476

git-subtree-dir: depend/zcash
git-subtree-split: eb80047476e9c0db3524f647d412faf8d4a584ee

* Update depend/zcash to v5.5.0

```sh
git subtree add -P depend/zcash https://github.com/zcash/zcash.git v5.5.0 --squash
git rm depend/zcash/Cargo.toml
```

---------

Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2023-05-05 09:55:41 -03:00
dependabot[bot] 27f9e77549
Bump actions/checkout from 1 to 3 (#44)
Bumps [actions/checkout](https://github.com/actions/checkout) from 1 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v1...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-17 10:15:13 +10:00
teor b7ec9532e7
Add CI passing and PR review to the release instructions (#70) 2023-04-17 10:14:37 +10:00
Arya ed7b95b6da
v0.1.11 release (#69)
* Updates changelog

* chore: Release zcash_script version 0.1.11

* Apply suggestions from code review

Co-authored-by: teor <teor@riseup.net>

---------

Co-authored-by: teor <teor@riseup.net>
2023-02-23 19:24:18 -05:00
teor 5cbddbdac8
Update dependencies to match Zebra (#67) 2023-02-24 10:05:55 +10:00
teor 2b2c666c04
Add extra dependency update steps to the README (#63)
* Add extra dependency update steps to the README

* Use correct dependency steps from Cargo.toml

* Explain how to make new dependencies work

* Simplify instructions

* Add "check all open PRs before releasing"

* Add "run cargo-release" to the release instructions

Co-authored-by: Arya <aryasolhi@gmail.com>

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
2023-02-24 09:08:01 +10:00
teor fb997ccf3f
Check if we still need the rustc_serialize dependency (#68) 2023-02-24 09:07:06 +10:00
teor e04ad0fd88
Upgrade to Rust 2021 edition (#64) 2023-02-24 07:55:45 +10:00