<commit_before>[![GitHub issues](https://img.shields.io/github/issues/kristjank/ark-net.svg)](https://github.com/kristjank/ark-go/issues)&nbsp;[![GitHub forks](https://img.shields.io/github/forks/kristjank/ark-net.svg)](https://github.com/kristjank/ark-go/network)&nbsp;[![GitHub stars](https://img.shields.io/github/stars/kristjank/ark-net.svg)](https://github.com/kristjank/ark-go/stargazers)&nbsp;[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/kristjank/ark-go/master/LICENSE)

## Why Ark-GO
GoLang is an open source programming language developed by Google and designed for building fast, simple and reliable software. It is not about theoretical concepts such as monads and virtual inheritance, but more about **hands-on experience**.

Ark-GO is the ARK Ecosystem library client implemented in GOLANG programming language. It implements all most relevant ARK functionalities to help you  **develop efficient, fast and scalable GOLANG applications built upon ARK platform**. It provides also low level access to ARK so you can easily build your application on top of it. 

## A library demo app: ARKGO-GUI
A demo client app was developed to test the goark library package dependencies. More about the demo cui client: https://github.com/kristjank/ark-go/tree/master/main. It targets delegate and basic account functionalites, plus silent mode - to be able to run automated reward payments.

See the demo console app shell recording here:
https://asciinema.org/a/5yndxl794ncfpmjoqftuaiodm?t=8.

## How to install?
```
$> go get github.com/kristjank/ark-go
```
## How to get started? 
All ark-node services have available reponses have their struct representations. It's best to let the code do the speaking. Every class implementation has it's own test class. **So it's best to start learning by looking at actual test code**.

## Ark-GO Client Usage
**First call should be network selection, so all settings can initialize from the peers before going into action.**  By default MAINNET is active.

### Init
[GoDoc documentation available on this link](https://godoc.org/github.com/kristjank/ark-go/core)
```go
import "ark-go/core"
var arkclient = core.NewArkClient(nil)
```

### Communication
Queries to the blockchain are done with the Query struct parameters:

```go
params := TransactionQueryParams{Limit: 10, SenderID: senderID}
```
... and the results -  reponse is also parametrized.
```go
transResponse, _, err := arkapi.ListTransaction(params)
if transResponse.Success {
		log.Println(t.Name(), "Success, returned", transResponse.Count, "transactions")
	} else {
		t.Error(err.Error())
	}
```

### Other call samples
```go
//usage samples
deleResp, _, _ := arkclient.GetDelegate(params)

//switch networks
arkclient = arkclient.SetActiveConfiguration(core.DEVNET) //or core.MAINNET
//create and send tx
arkapi := NewArkClient(nil)
recepient := "address"
passphrase := "<PASSWORD>"

tx := CreateTransaction(recepient,1,"ARK-GOLang is saying whoop whooop",passphrase, "")
payload.Transactions = append(payload.Transactions, tx)
res, httpresponse, err := arkapi.PostTransaction(payload)
```
## More information about ARK Ecosystem and etc
* [ARK Ecosystem Wiki](https://github.com/ArkEcosystem/wiki)

Please, use github issues for questions or feedback. For confidential requests or specific demands, contact us on our public channels.

## Authors
Chris (<EMAIL>), with a lot of help from FX Thoorens <EMAIL> and ARK Community

## Support this project
![alt text](https://github.com/Moustikitos/arky/raw/master/ark-logo.png)
Ark address:``AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk``


# License
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Copyright (c) 2017 ARK
<commit_msg>Add how to get dependencies.<commit_after>[![GitHub issues](https://img.shields.io/github/issues/kristjank/ark-net.svg)](https://github.com/kristjank/ark-go/issues)&nbsp;[![GitHub forks](https://img.shields.io/github/forks/kristjank/ark-net.svg)](https://github.com/kristjank/ark-go/network)&nbsp;[![GitHub stars](https://img.shields.io/github/stars/kristjank/ark-net.svg)](https://github.com/kristjank/ark-go/stargazers)&nbsp;[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/kristjank/ark-go/master/LICENSE)

## Why Ark-GO
GoLang is an open source programming language developed by Google and designed for building fast, simple and reliable software. It is not about theoretical concepts such as monads and virtual inheritance, but more about **hands-on experience**.

Ark-GO is the ARK Ecosystem library client implemented in GOLANG programming language. It implements all most relevant ARK functionalities to help you  **develop efficient, fast and scalable GOLANG applications built upon ARK platform**. It provides also low level access to ARK so you can easily build your application on top of it.

## A library demo app: ARKGO-GUI
A demo client app was developed to test the goark library package dependencies. More about the demo cui client: https://github.com/kristjank/ark-go/tree/master/main. It targets delegate and basic account functionalites, plus silent mode - to be able to run automated reward payments.

See the demo console app shell recording here:
https://asciinema.org/a/5yndxl794ncfpmjoqftuaiodm?t=8.

## How to install?
```
$> go get github.com/kristjank/ark-go
```

## How to get dependencies?
```
$> go get ./...
```

## How to get started?
All ark-node services have available reponses have their struct representations. It's best to let the code do the speaking. Every class implementation has it's own test class. **So it's best to start learning by looking at actual test code**.

## Ark-GO Client Usage
**First call should be network selection, so all settings can initialize from the peers before going into action.**  By default MAINNET is active.

### Init
[GoDoc documentation available on this link](https://godoc.org/github.com/kristjank/ark-go/core)
```go
import "ark-go/core"
var arkclient = core.NewArkClient(nil)
```

### Communication
Queries to the blockchain are done with the Query struct parameters:

```go
params := TransactionQueryParams{Limit: 10, SenderID: senderID}
```
... and the results -  reponse is also parametrized.
```go
transResponse, _, err := arkapi.ListTransaction(params)
if transResponse.Success {
		log.Println(t.Name(), "Success, returned", transResponse.Count, "transactions")
	} else {
		t.Error(err.Error())
	}
```

### Other call samples
```go
//usage samples
deleResp, _, _ := arkclient.GetDelegate(params)

//switch networks
arkclient = arkclient.SetActiveConfiguration(core.DEVNET) //or core.MAINNET
//create and send tx
arkapi := NewArkClient(nil)
recepient := "address"
passphrase := "<PASSWORD>"

tx := CreateTransaction(recepient,1,"ARK-GOLang is saying whoop whooop",passphrase, "")
payload.Transactions = append(payload.Transactions, tx)
res, httpresponse, err := arkapi.PostTransaction(payload)
```
## More information about ARK Ecosystem and etc
* [ARK Ecosystem Wiki](https://github.com/ArkEcosystem/wiki)

Please, use github issues for questions or feedback. For confidential requests or specific demands, contact us on our public channels.

## Authors
Chris (<EMAIL>), with a lot of help from FX Thoorens <EMAIL> and ARK Community

## Support this project
![alt text](https://github.com/Moustikitos/arky/raw/master/ark-logo.png)
Ark address:``AUgTuukcKeE4XFdzaK6rEHMD5FLmVBSmHk``


# License
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Copyright (c) 2017 ARK

{'fraction_non_alphanumeric': 0.12041748206131768, 'fraction_numerical': 0.003913894324853229, 'mean_word_length': 5.074484944532488, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 12, 'https://': 30, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1477062', 'n_tokens_mistral': 2417, 'n_tokens_neox': 2293, 'n_words': 748}