-
Notifications
You must be signed in to change notification settings - Fork 0
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
xdrill transaction helper functions #1
Conversation
Similar problems from stellar#5568 exist in this PR as well
|
…550/xdrill-transactions
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.
Same comment here as the Ledgers PR. Is it worthwhile to be consistent in the use of GetThing()
vs MustThing()
? Whatever decision is made with ledgers should be applied here as well
So it turns out that the Get/Must and what whether they return bool, error, or panic is already inconsistent within the existing xdr lol. Same comment as stellar#5568 (comment) for how we want to return bool, error, and panic in theory. In practice, for now I decided to propagate through the existing xdr return statuses. I could force and ignore errors in favor of ok bool in this PR but I think I prefer propagating existing xdr return statuses and then holistically updating return statuses and behavior later |
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.
I think inclusion fee (base fee) needs a second look. Otherwise should be good
ingest/ledger_transaction.go
Outdated
return uint32(sorobanData.Resources.WriteBytes), true | ||
} | ||
|
||
func (t *LedgerTransaction) InclusionFeeBid() (int64, bool) { |
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.
is it worthwhile to name this function SorobanInclusionFeeBid()
so that users don't conflate classic <> soroban?
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.
updated in 24fcd92
ingest/ledger_transaction.go
Outdated
// Inclusion fee for classic is just the base 100 stroops + surge pricing if surging | ||
inclusionFee, ok = t.FeeCharged() |
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.
I think calculating the inclusion fee is a little more nuanced than this:
Fee Charged = inclusion fee * (operation count + if(fee_account is not null, 1, 0)
we want to know what that base fee was for the given txn since we can get the Fee charged from FeeCharged()
function
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.
updated in 24fcd92
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.
looks good!
closing in favor of the stellar/go PR stellar#5579 |
PR Checklist
PR Structure
otherwise).
services/friendbot
, orall
ordoc
if the changes are broad or impact manypackages.
Thoroughness
.md
files, etc... affected by this change). Take a look in the
docs
folder for a given service,like this one.
Release planning
CHANGELOG.md
within the component folder structure. For example, if I changed horizon, then I updated (services/horizon/CHANGELOG.md. I add a new line item describing the change and reference to this PR. If I don't update a CHANGELOG, I acknowledge this PR's change may not be mentioned in future release notes.semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.
What
github issue
xdrill functions for Transactions
Why
Helper functions for Transactions for processors/transforms from stellar-etl for
history_transactions
found hereKnown limitations