Description
Tradehub Elixir is an API wrapper package written for the Elixir language. Its purpose is to provide an easy way to help Elixir developers can interact with all aspects of the Tradehub blockchain
Tradehub alternatives and similar packages
Based on the "Third Party APIs" category.
Alternatively, view tradehub-elixir alternatives based on common mentions on social networks and blogs.
-
ethereumex
Elixir JSON-RPC client for the Ethereum blockchain 0x063D3d782598744AF1252eBEaf3aA97D990Edf72 -
MongoosePush
MongoosePush is a simple Elixir RESTful service allowing to send push notification via FCM and/or APNS. -
cashier
Cashier is an Elixir library that aims to be an easy to use payment gateway, whilst offering the fault tolerance and scalability benefits of being built on top of Erlang/OTP
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of Tradehub or a related project?
README
Tradehub
Tradehub Elixir is an API wrapper package written for the Elixir language. Its purpose is to provide an easy way to help Elixir developers can interact with all aspects of the Tradehub blockchain
The code found in this repository is unaudited and incomplete. I do not responsible for any losses incurred when using this code.
General
Switcheo Tradehub is a blockchain protocol built on top of Tendermint which allows for fair, efficient, and transparent trading on platforms such as Demex. The protocol designed to allow anyone to create a market for any underlying. Head over to its landing page, and its official API documetation for more details.
Go to Tradehub Faucet get receive free Testnet tokens.
Installation
The package can be installed by adding tradehub
to your dependencies in mix.exs
.
def deps do
[
{:tradehub, "~> 0.1.16"}
]
end
Basic Usage
Configure Tradehub network in your config.exs
.
config :tradehub,
network: :testnet # :mainnet
wallet: '[YOUR_MNEMONIC]'
Make a simple REST call to get the block time of the chain.
iex(1)> Tradehub.Protocol.block_time
Get information of a wallet.
iex(1)> wallet = Tradehub.Wallet.from_mnemonic! Application.fetch_env!(:tradehub, :wallet)
iex(2)> wallet
...(2)> |> Map.get(:address)
...(2)> |> Tradehub.Account.account!
%{
height: "468693",
result: %{
type: "cosmos-sdk/Account",
value: %{
account_number: "24",
address: "tswth17y4r3p4dvzrvml3fqe5p05l7y077e4cy8s7ruj",
coins: [
%{amount: "100000000", denom: "btc"},
%{amount: "100000000000000000000", denom: "eth"},
%{amount: "1000000000000", denom: "iusd"},
%{amount: "99997200000000", denom: "swth"}
],
public_key: %{
type: "tendermint/PubKeySecp256k1",
value: "AnYEQWwhUipTNb6ivNbW1E7SVnmndkC4DHf9UzozeEPx"
},
sequence: "28"
}
}
}
Websocket
This example will do a subscription onto the channel market_stats
, and print out the received messages.
defmodule MarketStatsObserver do
use Tradehub.Stream,
topics: [
"market_stats" # Subscribe the topic `market_stats`
]
# Handle recent messages from the topic
def handle_info(message, state) do
IO.puts("#{message}")
{:noreply, state}
end
end
iex(1)> MarketStatsObserver.start_link
Full documentation can be found at https://hexdocs.pm/tradehub.
Features
- [ ] Implementation of all general information endpoints
- [x] Public endpoints
- [x] Websocket
- [x] Handling of authentication
- [x] Private endpoints
- [ ] Cover code coverage <- doing
- [ ] Documentationn
*Note that all licence references and agreements mentioned in the Tradehub README section above
are relevant to that project's source code only.