[ANN] Bittrex API

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] Bittrex API

Ben Coman
Thanks everyone who advised on Zinc, REST, NeoJSON, HMAC & Libsodium
to help me on my way to implement an interface to the Bittrex bitcoin
exchange.  I've got to the point where I'm happy to make an initial
0.x release.  After all my years having fun hacking around Pharo, this
is my first (tiny) product. Hopefully it may grow. :)

The implementation is probably closest to a Command pattern
with a class per entry-point.  All the v1.1 entry points are
implemented except a few to deposit & withdraw money from the
exchange.  These are currently infrequent events for me and left for
manual action.

I'm optimistic that I'll add a few more exchanges so I created a
github org to group them together.  Contributions welcome.

Please see quick start instructions here...
https://github.com/Traadh/bittrex

Have fun and take care...
https://imgs.xkcd.com/comics/engineer_syllogism.png

cheers -ben

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Bittrex API

hernanmd
Hi Ben,

Thank you for sharing this, looks really cool.

I have some issues installing the library. In the "Clone repository"
dialog I had to use

https://github.com/Traadh/bittrex.git

The install procedure did not downloaded the libsodium library. I had
to install it from loading Nacl.
Any particular difference with Nacl? From the dll in Nacl I can see
Bittrex functions are supported but appending a "256" in the function
prototype, i.e.: crypto_auth_hmacsha512256_keybytes , maybe you can
add the functions to the Nacl repository?
http://www.smalltalkhub.com/#!/~tonyg/Crypto-Nacl

Or you can use the URL's in ConfigurationOfNacl>>platformLibraryUrl to
download the library for each platform,
or integrate the download procedure in
https://github.com/hernanmd/MetacelloFileDownload

Cheers,

Hernán






2018-01-13 16:07 GMT-03:00 Ben Coman <[hidden email]>:

> Thanks everyone who advised on Zinc, REST, NeoJSON, HMAC & Libsodium
> to help me on my way to implement an interface to the Bittrex bitcoin
> exchange.  I've got to the point where I'm happy to make an initial
> 0.x release.  After all my years having fun hacking around Pharo, this
> is my first (tiny) product. Hopefully it may grow. :)
>
> The implementation is probably closest to a Command pattern
> with a class per entry-point.  All the v1.1 entry points are
> implemented except a few to deposit & withdraw money from the
> exchange.  These are currently infrequent events for me and left for
> manual action.
>
> I'm optimistic that I'll add a few more exchanges so I created a
> github org to group them together.  Contributions welcome.
>
> Please see quick start instructions here...
> https://github.com/Traadh/bittrex
>
> Have fun and take care...
> https://imgs.xkcd.com/comics/engineer_syllogism.png
>
> cheers -ben
>

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Bittrex API

Ben Coman
On 15 January 2018 at 14:19, Hernán Morales Durand
<[hidden email]> wrote:
> Hi Ben,
>
> Thank you for sharing this, looks really cool.
>



> I have some issues installing the library. In the "Clone repository"
> dialog I had to use
>
> https://github.com/Traadh/bittrex.git
>

Which OS are you on?
For Windows you need to enable  Iceberg > Settings > Custom keys
since Iceberg is not playing well there with ssh-agent.
Also, the software for creating ssh keys is not built into Windows. Try...
  http://guides.beanstalkapp.com/version-control/git-on-windows.html


Have you previously accessed github via SSH keys from command line?
Check your SSH keys are configured properly...
  https://help.github.com/articles/testing-your-ssh-connection/
and if not, get that working first...
  https://help.github.com/articles/connecting-to-github-with-ssh/


> The install procedure did not downloaded the libsodium library.

Whoops, missed that. I'll update the procedure.
Also its about time I write my first Baseline.


> I had to install it from loading Nacl.
> Any particular difference with Nacl? From the dll in Nacl I can see
> Bittrex functions are supported but appending a "256" in the function
> prototype, i.e.: crypto_auth_hmacsha512256_keybytes ,
> maybe you can add the functions to the Nacl repository?
> http://www.smalltalkhub.com/#!/~tonyg/Crypto-Nacl

I tried Crpto-Nacl first.  This was my first time using Libsodium and
it was difficult to find examples directly on the
HMAC512 function I needed.  The sample C code I compiled as a test
didn't match the function names
exported from Crypto-Nacl so this confounded my trials. It was simple
to FFI wrap the one Libsodium function I needed,
so thats what I did.

The Configuration of Crypto-Nacl downloads a pre-compiled libsodium
that exports different symbols to the system libsodium.
So IIUC its not a matter of just adding extra Smalltalk methods to the
Crypto-Nacl.
I don't know enough about Libsodium to understand the difference in
function naming
and I guess replacing it might break existing users ??


> Or you can use the URL's in ConfigurationOfNacl>>platformLibraryUrl to
> download the library for each platform,
> or integrate the download procedure in
> https://github.com/hernanmd/MetacelloFileDownload

good idea.  thx for the tip.
cheers -ben


>
> Cheers,
>
> Hernán
>
>
>
>
>
>
> 2018-01-13 16:07 GMT-03:00 Ben Coman <[hidden email]>:
>> Thanks everyone who advised on Zinc, REST, NeoJSON, HMAC & Libsodium
>> to help me on my way to implement an interface to the Bittrex bitcoin
>> exchange.  I've got to the point where I'm happy to make an initial
>> 0.x release.  After all my years having fun hacking around Pharo, this
>> is my first (tiny) product. Hopefully it may grow. :)
>>
>> The implementation is probably closest to a Command pattern
>> with a class per entry-point.  All the v1.1 entry points are
>> implemented except a few to deposit & withdraw money from the
>> exchange.  These are currently infrequent events for me and left for
>> manual action.
>>
>> I'm optimistic that I'll add a few more exchanges so I created a
>> github org to group them together.  Contributions welcome.
>>
>> Please see quick start instructions here...
>> https://github.com/Traadh/bittrex
>>
>> Have fun and take care...
>> https://imgs.xkcd.com/comics/engineer_syllogism.png
>>
>> cheers -ben
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Bittrex API

hernanmd
Hi Ben

2018-01-15 4:53 GMT-03:00 Ben Coman <[hidden email]>:

> On 15 January 2018 at 14:19, Hernán Morales Durand
> <[hidden email]> wrote:
>> Hi Ben,
>>
>> Thank you for sharing this, looks really cool.
>>
>
>
>
>> I have some issues installing the library. In the "Clone repository"
>> dialog I had to use
>>
>> https://github.com/Traadh/bittrex.git
>>
>
> Which OS are you on?
> For Windows you need to enable  Iceberg > Settings > Custom keys
> since Iceberg is not playing well there with ssh-agent.
> Also, the software for creating ssh keys is not built into Windows. Try...
>   http://guides.beanstalkapp.com/version-control/git-on-windows.html
>
>
> Have you previously accessed github via SSH keys from command line?
> Check your SSH keys are configured properly...
>   https://help.github.com/articles/testing-your-ssh-connection/
> and if not, get that working first...
>   https://help.github.com/articles/connecting-to-github-with-ssh/
>

Thanks, I am using Windows and actually I can use other repositories.
Anyway I prefer to wait the Baseline :)


>
>> The install procedure did not downloaded the libsodium library.
>
> Whoops, missed that. I'll update the procedure.
> Also its about time I write my first Baseline.
>
>
>> I had to install it from loading Nacl.
>> Any particular difference with Nacl? From the dll in Nacl I can see
>> Bittrex functions are supported but appending a "256" in the function
>> prototype, i.e.: crypto_auth_hmacsha512256_keybytes ,
>> maybe you can add the functions to the Nacl repository?
>> http://www.smalltalkhub.com/#!/~tonyg/Crypto-Nacl
>
> I tried Crpto-Nacl first.  This was my first time using Libsodium and
> it was difficult to find examples directly on the
> HMAC512 function I needed.  The sample C code I compiled as a test
> didn't match the function names
> exported from Crypto-Nacl so this confounded my trials. It was simple
> to FFI wrap the one Libsodium function I needed,
> so thats what I did.

Crypto-Nacl just provides the core operations, while sodium is a Nacl
fork which includes extra functions, which honestly I never need but
the library should work as well as they claim to be 100% compatible.

>
> The Configuration of Crypto-Nacl downloads a pre-compiled libsodium
> that exports different symbols to the system libsodium.

I didn't knew there was a system libsodium. I guess it is some lib
that is included in you OS by default.

> So IIUC its not a matter of just adding extra Smalltalk methods to the
> Crypto-Nacl.
> I don't know enough about Libsodium to understand the difference in
> function naming
> and I guess replacing it might break existing users ??
>

I will have a look, can you provide a link to the libsodium library
you are using?

>
>> Or you can use the URL's in ConfigurationOfNacl>>platformLibraryUrl to
>> download the library for each platform,
>> or integrate the download procedure in
>> https://github.com/hernanmd/MetacelloFileDownload
>
> good idea.  thx for the tip.
> cheers -ben
>
>
>>
>> Cheers,
>>
>> Hernán
>>
>>
>>
>>
>>
>>
>> 2018-01-13 16:07 GMT-03:00 Ben Coman <[hidden email]>:
>>> Thanks everyone who advised on Zinc, REST, NeoJSON, HMAC & Libsodium
>>> to help me on my way to implement an interface to the Bittrex bitcoin
>>> exchange.  I've got to the point where I'm happy to make an initial
>>> 0.x release.  After all my years having fun hacking around Pharo, this
>>> is my first (tiny) product. Hopefully it may grow. :)
>>>
>>> The implementation is probably closest to a Command pattern
>>> with a class per entry-point.  All the v1.1 entry points are
>>> implemented except a few to deposit & withdraw money from the
>>> exchange.  These are currently infrequent events for me and left for
>>> manual action.
>>>
>>> I'm optimistic that I'll add a few more exchanges so I created a
>>> github org to group them together.  Contributions welcome.
>>>
>>> Please see quick start instructions here...
>>> https://github.com/Traadh/bittrex
>>>
>>> Have fun and take care...
>>> https://imgs.xkcd.com/comics/engineer_syllogism.png
>>>
>>> cheers -ben
>>>
>>
>