Comments (6)
Looking forward to z-addr -> t-addr/z-addr! Well done @raychu86 @howardwu!
from wagyu.
Preliminary implementation for Zcash transaction builder is complete with real transaction tests.
NOTE:
Sending real transactions with sapling spends require the most recent sapling tree state (current tests use gdb/lldb dives into the Zcash node to retrieve this information). gdb/lldb scraping for state information was only used for testing and future development will be require a separate stateful client.
Current scraping techniques only allows us to obtain the commitment tree witnesses and anchor separately, however the ideal implementation should obtain the full tree or the incremental witnesses.
from wagyu.
Thanks again @raychu86! This is fantastic!
One question about sapling witnesses: couldn't you extract the commitment tree witnesses and anchors from the light client? The client includes a sqlite DB for the most recent witnesses. See: https://github.com/str4d/librustzcash/blob/preview/zcash_client_backend/src/sqlite.rs
Would this help?
from wagyu.
Thanks for the pointer! That would most likely work.
I'll look into that avenue and do some testing to see if I can further simplify/untangle the transaction building process.
from wagyu.
Implementation WIP in feature/zcash-transactions.
- t-addr -> t-addr
- t-addr -> z-addr
- z-addr-> t-addr
- z-addr -> z-addr
Note: All z-addresses refer to sapling addresses.
from wagyu.
Current implementation generates sapling spends and outputs with valid proofs.
Shielded outputs have been tested with real transactions (successfully broadcasting the crafted transaction hexes), however shielded spends have not. This is because sapling spends require a the latest state of the sapling tree state in order to determine a valid anchor and nullifier.
Further research is underway regarding tests for real sapling spends.
Testing proposal:
- Run a zcash node
- Extract a serialize sapling tree state or note witnesses using GDB or LLDB.
- Import the serialized value into wagyu transaction builder
- Generate the transaction hex
- Broadcast the transaction via zcash-cli
from wagyu.
Related Issues (20)
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files HOT 1
- Relevant
- Use wagyu and zcash-cli to get different signature results.
- Electrum derivation path
- library doc
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files
- Dependabot can't resolve your Rust dependency files
- `ethereum import-hd` fails with valid mnemonic HOT 1
- encryption
- Allow showing bech32 keys for imported wallet HOT 1
- Is this project still maintained?
- Wagyu build fails HOT 3
- I got the following issue when using wagyu with yew.rs HOT 1
- does the eth version support usdt ,
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wagyu.