RFC Reference: rfc16-geolocation-verification.md (as updated by PR #2950)
Parent Issue: #2943
Depends on: #2952 (Geolocation Program — GeoProbe half)
Split from: #2953
Goal: Create the GeoProbe portion of the Go SDK for the Geolocation program — types, deserialization, PDA derivation, instruction builders, and client methods.
Scope
- New Go package
smartcontract/sdk/go/geolocation/
- Go structs matching Rust serialization layout:
GeolocationProgramConfig
GeoProbe
- PDA derivation functions:
DeriveProgramConfigPDA()
DeriveGeoProbePDA() using seeds ["doublezero", "probe", code]
- Instruction builder functions for GeoProbe instructions:
InitProgramConfig
UpdateProgramConfig
CreateGeoProbe
UpdateGeoProbe
DeleteGeoProbe
AddParentDevice
RemoveParentDevice
- Client methods:
GetProgramConfig(), GetGeoProbes(), GetGeoProbeByCode()
- Transaction builders for all GeoProbe instructions
- Deserialization for
GeolocationProgramConfig and GeoProbe account types
- Unit tests for PDA derivation (must match Rust), serialization round-trip
Key files to create
smartcontract/sdk/go/geolocation/client.go
smartcontract/sdk/go/geolocation/constants.go
smartcontract/sdk/go/geolocation/state.go (ProgramConfig + GeoProbe structs)
smartcontract/sdk/go/geolocation/pda.go
smartcontract/sdk/go/geolocation/deserialize.go
smartcontract/sdk/go/geolocation/executor.go
smartcontract/sdk/go/geolocation/rpc.go
- GeoProbe instruction builder files
smartcontract/sdk/go/geolocation/*_test.go
RFC Reference: rfc16-geolocation-verification.md (as updated by PR #2950)
Parent Issue: #2943
Depends on: #2952 (Geolocation Program — GeoProbe half)
Split from: #2953
Goal: Create the GeoProbe portion of the Go SDK for the Geolocation program — types, deserialization, PDA derivation, instruction builders, and client methods.
Scope
smartcontract/sdk/go/geolocation/GeolocationProgramConfigGeoProbeDeriveProgramConfigPDA()DeriveGeoProbePDA()using seeds["doublezero", "probe", code]InitProgramConfigUpdateProgramConfigCreateGeoProbeUpdateGeoProbeDeleteGeoProbeAddParentDeviceRemoveParentDeviceGetProgramConfig(),GetGeoProbes(),GetGeoProbeByCode()GeolocationProgramConfigandGeoProbeaccount typesKey files to create
smartcontract/sdk/go/geolocation/client.gosmartcontract/sdk/go/geolocation/constants.gosmartcontract/sdk/go/geolocation/state.go(ProgramConfig + GeoProbe structs)smartcontract/sdk/go/geolocation/pda.gosmartcontract/sdk/go/geolocation/deserialize.gosmartcontract/sdk/go/geolocation/executor.gosmartcontract/sdk/go/geolocation/rpc.gosmartcontract/sdk/go/geolocation/*_test.go