-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Finish APIs for Transaction
, Query
, and a lot of internal classes
#503
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Rob Walworth <[email protected]>
rwalworth
added
Feature Enhancement
Enhancing an existing feature driven by business requirements. Typically backwards compatible.
New Feature
A new feature, service, or documentation. Major changes that are not backwards compatible.
labels
Sep 14, 2023
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
Signed-off-by: Rob Walworth <[email protected]>
deyanzz
approved these changes
Sep 19, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apart this PR introduces huge amount of changes, I reviewed most of them and they are looking good to me.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Feature Enhancement
Enhancing an existing feature driven by business requirements. Typically backwards compatible.
New Feature
A new feature, service, or documentation. Major changes that are not backwards compatible.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
This PR finishes up and completes all API implementations for
Transaction
,Query
, and a lot of the internal utility classes used by the SDK (such asBaseNetwork
and derived classes,BaseNode
and derived classes, etc.). There were quite a few changes and reworks of processing and I will try to highlight all of them here.This PR, which originally started as a PR to implement the
ConsensusPubSubChunkedExample
, turned into a wholeExecutable
processing overhaul which now matches more closely with how other Hedera SDKs operate.Major changes:
ConsensusPubSubChunkedExample
, which shows users how to send and subscribe to large topic messages.Transaction
s now properly pre-generateTransaction
protobuf objects for a random 1/3 of the selectedClient
network’s nodes.Transaction
APIs are now implemented.Query
cost is queried from the network and properly added to theQuery
as it is sent as aTransferTransaction
to its header.Query
APIs are now implemented.ChunkedTransaction
s add their data correctly to each chunk as it is sent, as opposed to copying a whole newChunkedTransaction
and sending only a portion of the data.ChunkedTransaction
APIs are now implemented.Network
,MirrorNetwork
,Node
,MirrorNode
, etc. was consolidated into base classes (i.e.BaseNode
,BaseNetwork
,BaseNodeAddress
). These APIs were fully implemented as well.NodeAddress
andNodeAddressBook
.Other changes:
sign
andgetNodesWithAccountIds
APIs removed fromClient
. NowgetNetwork()
can be called to get theNetwork
object and getNode
s that way (which lines up with how other SDKs do it). This is done inExecutable
via thegetNodesFromNodeAccountIds()
andgetNodeIndexForExecute()
private functions.toSignaturePairProtobuf()
added forPublicKey
classes.makeRequest()
andsubmitRequest()
function signatures changed forExecutable
derived classes that better streamline creating and sending protobufs to the network.isKnownNetwork()
added toLedgerId
which allows a user to determine if the ledger represented by thatLedgerId
is known (i.e. Mainnet, Testnet, or Previewnet).fromBytes()
added toPublicKey
, which allows aPublicKey
to be created from raw bytes.operator!=
andless<Hedera::TransactionId>
added toTransactionId
.MaxQueryPaymentExceededException
added.Transaction
unit tests setter/getter tests to properly be allowed to freeze (set node account ID and transaction ID).Transaction::fromBytes()
that deserializesTransactionList
protobuf objects.Related issue(s):
Fixes #496
Checklist