Conversation
| // SEP-48 Contract Bindings | ||
| // Auto-generated from Soroban contract specification |
| } `json:"params"` | ||
| } | ||
|
|
||
| type GetLedgerEntriesResponse struct { |
There was a problem hiding this comment.
Shouldn't you use stellar-rpc/protocol and stellar-rpc/client?
There was a problem hiding this comment.
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]