All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- #23 fixed, now returns an error from
ModularArithmetic#Sqrt
.
- New function to select the best node from a array of node URIs.
client, err := neo.NewClientUsingMultipleNodes(
[]string{
"http://seed1.neo.org:10332",
"http://seed2.neo.org:10332",
"http://seed3.neo.org:10332",
},
)
err = client.SelectBestNode()
- New function to validate a public NEO address.
isValid, err := client.ValidateAddress("ARnLq3m1jsrZU7SS7jLHAvNm37GmaZbsPy")
- New function to fetch a storage value of a given smart contract.
storage, err := client.GetStorage(
"0xecc6b20d3ccac1ee9ef109af5a7cdb85706b1df9", // RPX smart contract
"totalSupply",
)
- Updated client unit tests to adhere to the new JSON RPC hash representations.
- Performed some general cleanup and organization in existing client unit tests.
- Ability to derive signature from private key.
- CLI outputs signature from WIF using new function.
privateKey, err := neo.NewPrivateKeyFromWIF("L1QqQJnpBwbsPGAuutuzPTac8piqvbR1HRjrY5qHup48TBCBFe4g")
if err != nil {
log.Fatal(err)
}
signatureBytes, err := privateKey.Signature()
if err != nil {
log.Fatal(err)
}
signature := hex.EncodeToString(signatureBytes)
log.Println(signature)
- Ability to derive public key value from private key.
- CLI outputs public key from WIF using new function.
privateKey, err := neo.NewPrivateKeyFromWIF("L1QqQJnpBwbsPGAuutuzPTac8piqvbR1HRjrY5qHup48TBCBFe4g")
if err != nil {
log.Fatal(err)
}
publicKeyBytes, err := privateKey.PublicKey()
if err != nil {
log.Fatal(err)
}
publicKey := hex.EncodeToString(publicKeyBytes)
log.Println(publicKey)
- GIF to README to help with documenting the new CLI.
- Add
dist/
to .gitignore.
- Documentation and configuration for the CLI.
- CLI for debugging a NEO public and private key pair (see releases):
./neo-go-sdk --wif KxQREAjBL6Ga8dw9rPN45pwoZ5dxhAQacEajQke6qmpB7DW6nAWE
- Elliptic curve implementation in utility package.
- Base58 encoding support.
- Migrated
neo.WIF
struct intoneo.PrivateKey
struct. - Derive a public NEO address from a private key (WIF):
privateKey, err := neo.NewPrivateKeyFromWIF("L1QqQJnpBwbsPGAuutuzPTac8piqvbR1HRjrY5qHup48TBCBFe4g")
if err != nil {
log.Fatal(err)
}
publicAddress, err := privateKey.PublicAddress()
if err != nil {
log.Fatal(err)
}
log.Println(publicAddress)
- TCP connections made by
client.Ping()
are now closed to stop memory leaks from happening.
- @eramus fixed:
- closing response body in wrong place.
- made Base58 decode much more efficient and clean.
- Slack URI in README was updated.
- New
neo.WIF
struct. - New
neo.PrivateKey
struct. - Ability to convert a WIF into a PrivateKey, see example below.
wif := neo.NewWIF("L1QqQJnpBwbsPGAuutuzPTac8piqvbR1HRjrY5qHup48TBCBFe4g")
privateKey, err := wif.ToPrivateKey()
if err != nil {
log.Fatal(err)
}
log.Println(privateKey.Value)
- Link to GoDoc documentation.
- Logo in README to new CoZ logo.
- Added badges to README.
- Existing code from original repo.
- Full CI job.
- Setup repo.