go-elements
Go support for confidential transactions on Elements-based blockchains
The package is currently being developed. For stable versions, you must refer to the latest release
Install
# Install latest tagged release
$ go get github.com/vulpemventures/go-elements@latest
π Examples
π£ Roadmap
- [x] Chain parameters (prefixes, magic numbers, β¦)
- [x] Pay to Public Key Hash
- [x] Pay to Script Hash
- [x] Pay to Witness Public Key Hash
- [x] Pay to Witness Script Hash
- [x] Tx serialization / deserialization
- [x] Use of confidential values instead of pure numbers
- [x] Fix order of witness in transaction serialization
- [x] Add confidential fields
- [x] Serialization for (witness) signature
- [x] PSET / Bip174 for Elements
- [x] Blech32
- [x] CGO bindings for secp256k1-zkp
- [x] Unblinding ins / Blinding outs / Blinding issuance ins
- [x] Signing a confidential input (use 0 value amounts to produce the hash for the signature)
- [x] Asset issuance
- [x] Asset re-issuance
- [x] Slip77
- [ ] Upcoming PSET spec support
π₯ Development
$ git clone https://github.com/vulpemventures/go-elements.git
- Enter into the project folder and install dependencies:
$ cd go-elements
$ go get -t -v ./...
For running tests it is required to have a running Nigiri locally, or at least a remote one reachable from the outside.
To run the tests it is mandatory to export an API_URL
environment variable pointing to the URL of nigiri-chopsticks
.
$ nigiri start --liquid
$ make test
- More detailed documentation
$ godoc -http ":8080"
http://localhost:8080/pkg/github.com/vulpemventures/go-elements/
π·ββοΈ Contributors
License MIT