API Documentation
crypto.configuration
SetNetwork()
1func SetNetwork(network *Network)
Set what network you want to use in the crypto library
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *Network | network | Yes | Testnet, Devnet, Mainnet |
GetNetwork()
1func GetNetwork() *Network
Get settings for a selected network, default network is devnet
Return Value
*Network
GetFee()
1func GetFee(transactionType byte) FlexToshi
Get a fee for a given transaction type
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| byte | transactionType | Yes | Transaction type for which we wish to get a fee |
Return Value
FlexToshi
SetFee()
1func SetFee(transactionType byte, value FlexToshi)
Set a fee
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| byte | transactionType | Yes | Transaction_type for which we wish to set a fee |
| FlexToshi | value | Yes | Fee for a given transaction type |
crypto.address
AddressFromPassphrase()
1func AddressFromPassphrase(passphrase string) (string, error)
Derive the address from the given passphrase.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | passphrase | Yes | Passphrase |
Return Value
(string, error)
AddressToBytes()
1func AddressToBytes(address string) ([]byte, error)
Derive the given address to its bytes representation.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | address | Yes | address |
Return Value
([]byte, error)
validate()
1func ValidateAddress(address string) (bool, error)
Validate the given address.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | address | Yes | Address |
Return Value
(bool, error)
crypto.private_key
PrivateKeyFromPassphrase()
1func PrivateKeyFromPassphrase(passphrase string) (*PrivateKey, error)
Derive the private key for the given passphrase.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | passphrase | Yes | Passphrase |
Return Value
*PrivateKey, error
PrivateKeyFromHex()
1func PrivateKeyFromHex(privateKeyHex string) (*PrivateKey, error)
Create a private key instance from a hex string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | privateKeyHex | Yes | Private key |
Return Value
*PrivateKey, error
PrivateKeyFromBytes()
1func PrivateKeyFromBytes(bytes []byte) *PrivateKey
Create a private key instance from a bytes string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| []byte | bytes | Yes | Bytes string |
Return Value
*PrivateKey
ToHex()
1func (privateKey *PrivateKey) ToHex() string
Convert a private key instance to a hex string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *PrivateKey | bytes | Yes | Private key |
Return Value
string
ToAddress()
1func (privateKey *PrivateKey) ToAddress() string
Create a private key instance to a address.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *PrivateKey | bytes | Yes | Private key |
Return Value
string
ToWif()
1func (privateKey *PrivateKey) ToWif() string
Create a private key instance to a WIF string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *PrivateKey | bytes | Yes | Private key |
Return Value
string
Sign()
1func (privateKey *PrivateKey) Sign(hash []byte) ([]byte, error)
Sign the private key.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| []byte | hash | Yes | Private key |
Return Value
[]byte, error
Verify()
1func (publicKey *PublicKey) Verify(signature []byte, data []byte) (bool, error)
Verify the private key.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| []byte | signature | Yes | Signature |
| []byte | data | Yes | Private key |
Return Value
bool, error
crypto.public_key
PublicKeyFromPassphrase()
1func PublicKeyFromPassphrase(passphrase string) (*PublicKey, error)
Derive the public from the given passphrase.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | passphrase | Yes | Passphrase |
Return Value
*PublicKey, error
PublicKeyFromHex()
1func PublicKeyFromHex(publicKeyHex string) (*PublicKey, error)
Create a public key instance from a hex string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | publicKeyHex | Yes | Hex string |
Return Value
*PublicKey, error
PublicKeyFromBytes()
1func PublicKeyFromBytes(bytes []byte) (*PublicKey, error)
Create a public key instance from a bytes string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| []byte | bytes | Yes | Bytes string |
Return Value
*PublicKey, error
ToHex()
1func (publicKey *PublicKey) ToHex() string
Convert a public key instance to a hex string.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *PublicKey | publicKey | Yes | Public key |
Return Value
string
ToAddress()
1func (publicKey *PublicKey) ToAddress() string
Convert a public key instance to a valid address.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *PublicKey | publicKey | Yes | Public key |
Return Value
string
crypto.builder
buildSignedTransaction()
1func buildSignedTransaction(transaction *Transaction, passphrase string, secondPassphrase string) *Transaction
Builds a transaction for a signed transaction.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *Transaction | transaction | Yes | Transaction |
| string | passphrase | Yes | Passphrase |
| string | secondPassphrase | Yes | Second passphrase |
Return Value
*Transaction
BuildTransfer()
1func BuildTransfer(recipient string, amount FlexToshi, vendorField string, passphrase string, secondPassphrase string) *Transaction
Builds a transaction for a transfer.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | recipient | Yes | Recipient identifier |
| FlexToshi | amount | Yes | Transaction amount |
| string | vendorField | Yes | Transaction vendorfield |
| string | passphrase | Yes | Passphrase |
| string | secondPassphrase | Yes | Second passphrase |
Return Value
*Transaction
BuildSecondSignatureRegistration()
1func BuildSecondSignatureRegistration(passphrase string, secondPassphrase string) *Transaction
Builds a transaction for a second signature registration.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | passphrase | Yes | Passphrase |
| string | secondPassphrase | Yes | Second passphrase |
Return Value
*Transaction
BuildDelegateRegistration()
1func BuildDelegateRegistration(username string, passphrase string, secondPassphrase string) *Transaction
Builds a transaction for a delegate registration.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | username | Yes | Delegate username |
| string | passphrase | Yes | Passphrase |
| string | secondPassphrase | Yes | Second passphrase |
Return Value
*Transaction
BuildVote()
1func BuildVote(vote, passphrase string, secondPassphrase string) *Transaction
Builds a transaction for a vote registration.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| ? | vote | Yes | Vote |
| string | passphrase | Yes | Passphrase |
| string | secondPassphrase | Yes | Second passphrase |
Return Value
*Transaction
BuildMultiSignatureRegistration()
1func BuildMultiSignatureRegistration(min byte, lifetime byte, keysgroup []string, passphrase string, secondPassphrase string) *Transaction
Builds a transaction for a multi signature registration.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| byte | min | Yes | Transaction minimum required signatures |
| byte | lifetime | Yes | Transaction lifetime |
| []string | keysgroup | Yes | Transaction keysgroup |
| string | passphrase | Yes | Passphrase |
| string | secondPassphrase | Yes | Second passphrase |
Return Value
*Transaction
crypto.serializer
SerializeTransaction()
1func SerializeTransaction(transaction *Transaction) []byte
Handle the serialization of “transaction” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *Transaction | transaction | Yes | Transaction |
Return Value
[]byte
serializeHeader()
1func serializeHeader(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “headers” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeVendorField()
1func serializeVendorField(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of the vendorfield.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeTypeSpecific()
1func serializeTypeSpecific(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the deserialization of “type” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeSignatures()
1func serializeSignatures(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the deserialization of “signature” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
crypto.deserializer
DeserializeTransaction()
1func DeserializeTransaction(serialized string) *Transaction
Handle the deserialization of “transaction” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | serialized | Yes | Serialized |
Return Value
*Transaction
deserializeHeader()
1func deserializeHeader(bytes []byte, transaction *Transaction) (int, *Transaction)
Handle the deserialization of “headers” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeTypeSpecific()
1func deserializeTypeSpecific(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization for a given type of transaction.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeVersionOne()
1func deserializeVersionOne(bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization for a version one transaction.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeTransfer()
1func deserializeTransfer(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “transfer” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeSecondSignatureRegistration()
1func deserializeSecondSignatureRegistration(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “second signature registration” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeDelegateRegistration()
1func deserializeDelegateRegistration(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “delegate registration” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeVote()
1func deserializeVote(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “vote” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeMultiSignatureRegistration()
1func deserializeMultiSignatureRegistration(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “multi signature registration” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeIpfs()
1func deserializeIpfs(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “ipfs” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeTimelockTransfer()
1func deserializeTimelockTransfer(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “timelock transfer” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeMultiPayment()
1func deserializeMultiPayment(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “multi payments” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
deserializeDelegateResignation()
1func deserializeDelegateResignation(assetOffset int, bytes []byte, transaction *Transaction) *Transaction
Handle the deserialization of “delegate resignation” data
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | assetOffset | Yes | Offset |
| []byte | bytes | Yes | … |
| *Transaction | transaction | Yes | Transaction |
Return Value
*Transaction
serializeTransfer()
1func serializeTransfer(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “transfer” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeSecondSignatureRegistration()
1func serializeSecondSignatureRegistration(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “second signature registration” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeDelegateRegistration()
1func serializeDelegateRegistration(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “delegate registration” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeVote()
1func serializeVote(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “vote” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeMultiSignatureRegistration()
1func serializeMultiSignatureRegistration(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “multi signature registration” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeIpfs()
1func serializeIpfs(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “ipfs” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeTimelockTransfer()
1func serializeTimelockTransfer(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “timelock transfer” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeMultiPayment()
1func serializeMultiPayment(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “multi payment” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
serializeDelegateResignation()
1func serializeDelegateResignation(buffer *bytes.Buffer, transaction *Transaction) *bytes.Buffer
Handle the serialization of “delegate resignation” data.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *bytes.Buffer | buffer | Yes | Buffer |
| *Transaction | transaction | Yes | Transaction |
Return Value
*bytes.Buffer
crypto.transaction
GetId()
1func (transaction *Transaction) GetId() string
Convert the byte representation to a unique identifier.
Return Value
string
Sign()
1func (transaction *Transaction) Sign(passphrase string)
Sign the transaction using the given passphrase.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | passphrase | Yes | Passphrase |
SecondSign()
1func (transaction *Transaction) SecondSign(passphrase string)
Sign the transaction using the given second passphrase.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | passphrase | Yes | Second passphrase |
Verify()
1func (transaction *Transaction) Verify() (bool, error)
Verify the transaction.
Return Value
bool, error
SecondVerify()
1func (transaction *Transaction) SecondVerify(secondPublicKey *PublicKey) (bool, error)
Verify the transaction with a second public key.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *PublicKey | secondPublicKey | Yes | Second public key |
Return Value
(bool, error)
ParseSignatures()
1func (transaction *Transaction) ParseSignatures(startOffset int) *Transaction
Parse the signature, second signature and multi signatures.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| int | startOffset | Yes | Offset |
Return Value
*Transaction
ToMap()
1func (transaction *Transaction) ToMap() map[string]interface{}
Convert the transaction to its map representation.
Return Value
map[string]interface{}
ToJson()
1func (transaction *Transaction) ToJson() (string, error)
Convert the transaction to its JSON representation.
Return Value
string, error
ToBytes()
1func (transaction *Transaction) ToBytes(skipSignature, skipSecondSignature bool) []byte
Convert the transaction to its byte representation.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| bool | skipSignature | No | Skip first signature |
| bool | skipSecondSignature | No | Skip second signature |
Return Value
[]byte
Serialize()
1func (transaction *Transaction) Serialize() []byte
Perform AIP11 compliant serialization
Return Value
[]byte
crypto.message
SignMessage()
1func SignMessage(message string, passphrase string) (*Message, error)
Sign a message using the given passphrase.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| string | message | Yes | Message |
| string | passphrase | Yes | Passphrase |
Return Value
*Message, error
Verify()
1func (message *Message) Verify() (bool, error)
Verify the message content.
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *Message | message | Yes | Message |
Return Value
bool, error
ToMap()
1func (message *Message) ToMap() map[string]interface{}
Convert the message to its map representation
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *Message | message | Yes | Message |
Return Value
map[string]interface{}
ToJson()
1func (message *Message) ToJson() (string, error)
Convert the message to its JSON representation
Parameters
| Type | Name | Required | Description |
|---|---|---|---|
| *Message | message | Yes | Message |
Return Value
string
crypto.slot
GetTime()
1func GetTime() int32
Get the time diff between now and network start.
Return Value
int32
GetEpoch()
1func GetEpoch() uint32
Get the network start epoch.
Return Value
uint32