Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emaringolo/pharo-bx-wrapper
Wrapper methods to execute libbitcoin's bx command line utility as regular Pharo expressions
https://github.com/emaringolo/pharo-bx-wrapper
Last synced: 16 days ago
JSON representation
Wrapper methods to execute libbitcoin's bx command line utility as regular Pharo expressions
- Host: GitHub
- URL: https://github.com/emaringolo/pharo-bx-wrapper
- Owner: eMaringolo
- License: mit
- Created: 2018-03-11T00:53:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-03-12T02:35:17.000Z (over 6 years ago)
- Last Synced: 2024-10-09T13:25:11.021Z (about 1 month ago)
- Language: Smalltalk
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pharo-bx-wrapper
Wrapper methods to execute [libbitcoin's bx command line utility](https://github.com/libbitcoin/libbitcoin-explorer/wiki)
as regular Pharo expressions.## About Bitcoin Explorer (bx)
BX is a general purpose Bitcoin command line utility that supports Linux, OSX and Windows.
The application can be built an distributed as a single file binary with no run time
dependencies apart from the operating system.## Installation
```smalltalk
Metacello new
baseline: 'BXWrapper';
repository: 'github://eMaringolo/pharo-bx-wrapper/src';
load.
```Please note that the `bx` executable must be included in `$PATH` and its binary is not provided by this package. You can download it at https://github.com/libbitcoin/libbitcoin-explorer/wiki/Download-BX.
## About this wrapper
This wrapper is built with the objective of being able to run `bx` from within the comfort of the Pharo image.
It uses [OSSubprocess](https://github.com/marianopeck/OSSubprocess/) extensively to invoke the external `bx` commands.
Since this is a work in progress, it's been tested in Linux only, so only `OSSUnixSubprocess` is implemented.## Pharo examples
To work with bx, you instantiate a `BXBitcoinExplorer` that will work as a command repository,
since it is stateless you can share the same instance to create different bx commands.```smalltalk
| bx |
bx := BXBitcoinExplorer new.
```
Inspect or print the output for the following examples.### Executing a single command
```smalltalk
bx seed
"'b0903233d630b2e5bb67a64f906819c914ea2612d63131ee'"
```### Chaining commands
To run the equivalent of:
```shell
$ bx seed | bx ec-new | bx ec-to-public | bx ec-to-address
```You evaluate:
```smalltalk
bx := BXBitcoinExplorer new.
(bx ecToAddress: (bx ecToPublic: (bx ecNew: bx seed))).
"'18FXUKxphFdd166nqNwt35uXCxAoFZC79q'"
```