-
Notifications
You must be signed in to change notification settings - Fork 543
Karthik/sep 48 event parsing #5806
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
base: main
Are you sure you want to change the base?
Conversation
| // SEP-48 Contract Bindings | ||
| // Auto-generated from Soroban contract specification |
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.
😯
| } `json:"params"` | ||
| } | ||
|
|
||
| type GetLedgerEntriesResponse struct { |
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.
Shouldn't you use stellar-rpc/protocol and stellar-rpc/client?
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 will give you the reason why i did that, and i dont want you to laugh at me.
I did not want to create my own repo and then include go monorepo and stellar-rpc as dependencies.
I wanted to do this PoC in the go mono repo itself. If I included stellar-rpc, that wud have been a circular dep.
So...
I fed exaclty 2 files to claude.
https://github.com/stellar/stellar-rpc/blob/main/client/main.go
and
https://github.com/stellar/stellar-rpc/blob/main/protocol/get_ledger_entries.go
and told it to come up with minimal code to create my own rpc client in go monorepo just to get ledgerEntries functionality.
And it worked 🤷
which is also why this doesnt do any kind of error checking if there is an error returned by the RPC instance
contractResponse, err := client.getLedgerEntries([]string{contractLedgerKey})
if err != nil {
return nil, fmt.Errorf("failed to fetch contract instance: %w", err)
}
// I dont even check for Error from rpc here
if len(contractResponse.Result.Entries) == 0 {
return nil, fmt.Errorf("contract instance not found for ID: %s", contractId)
}
PR Checklist
PR Structure
otherwise).
services/friendbot, orallordocif the changes are broad or impact manypackages.
Thoroughness
.mdfiles, etc... affected by this change). Take a look in the
docsfolder for a given service,like this one.
Release planning
CHANGELOG.mdwithin 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
[TODO: Short statement about what is changing.]
Why
[TODO: Why this change is being made. Include any context required to understand the why.]
Known limitations
[TODO or N/A]