4.0.0 (2023-10-27)
Breaking Changes
BREAKING CHANGE: Node and UI server APIs have changed.
1. Node
* Modified:
- UTXO and Output data structures "has_income" field have been renamed to "is_yielding"
- Block data structure fields have been reordered:
- Block data structure was:
{
"timestamp": int64
"previous_hash": [32]byte
"transactions": []Transaction
"added_registered_addresses": []string
"removed_registered_addresses": []string
}
- Block data structure is now:
{
"previous_hash": [32]byte
"added_registered_addresses": []string
"removed_registered_addresses": []string
"timestamp": int64
"transactions": []Transaction
}
2. Node and UI server
* Modified:
- Output data structure "has_income" field has been renamed to "is_yielding"
- node: redefine endpoint routes and improve decoupling (#238) (283f8fb)
BREAKING CHANGE: Node and UI server APIs have changed.
1. Node
* Added:
- "Get first block timestamp" endpoint for route: /first-block-timestamp
* Removed:
- "Get block" endpoint
* Modified:
- All request and response data structures have changed, see node/README.md
- "Get blocks" endpoint route is now: /blocks
- "Share targets" endpoint route is now: /targets
- "Add transaction" endpoint route is now: /transaction
- "Get transactions" endpoint route is now: /transactions
- "Get UTXOs" endpoint route is now: /utxos
2. UI server
* Modified:
- All request and response data structures have changed, see ui/README.md
BREAKING CHANGE: Get blocks endpoint has changed and Get last blocks has been removed.
- Get blocks:
request value was "GET BLOCKS"
request value is now:
BlocksRequest {
StartingBlockHeight uint64
}
- Get last blocks has been removed
BREAKING CHANGE: The income calculation has changed.
BREAKING CHANGE: Node and UI APIs have changed.
1. Both Node and UI
* Added:
- The data structure for input:
Input {
OutputIndex uint16
TransactionId string
PublicKey string
Signature string
}
- The data structure for output:
Output {
Address string
HasReward bool
HasIncome bool
Value uint64
}
* Modified:
- The transaction data structure for response was:
TransactionResponse {
RecipientAddress string
SenderAddress string
SenderPublicKey string
Signature string
Timestamp int64
Value uint64
Fee uint64
}
- The transaction data structure for response is:
TransactionResponse {
Id string
Inputs []*InputResponse
Outputs []*OutputResponse
Timestamp int64
}
2. Node
* Added:
- Endpoint: Get block
- Endpoint: Get UTXOs
* Removed:
- Endpoint: Get amount
* Modified:
- The data structure for target request was:
TargetRequest {
Ip string
Port uint16
}
- The data structure for target request is:
TargetRequest {
Ip string
}
- The data structure for transaction request was:
TransactionRequest {
Fee uint64
RecipientAddress string
SenderAddress string
SenderPublicKey string
Signature string
Timestamp int64
TransactionBroadcasterTarget string
Value uint64
}
- The data structure for transaction request is:
TransactionRequest {
Inputs []InputRequest
Outputs []OutputRequest
Timestamp int64
TransactionBroadcasterTarget string
}
3. UI
* Added:
- Endpoint: GET transaction/info
* Modified:
- The data structure for transaction request was:
TransactionRequest {
Fee uint64
RecipientAddress string
SenderAddress string
SenderPublicKey string
Signature string
Timestamp int64
Value uint64
}
- The data structure for transaction request is:
TransactionRequest {
Inputs []InputRequest
Outputs []OutputRequest
Timestamp int64
}
Feature
Bug Fixes
- node: input public key is not verified against output address (#245) (5537c18)
- node: blocks requests are not parallelized (#234) (c2b42a8)
Chores
- dependencies: bump github.com/ethereum/go-ethereum from 1.10.23 to 1.12.1 (#232) (fb89d91)
doc