Skip to Content

Go SDK

go get github.com/ReactorNetwork/reactor-sdk-go

First message

import ( "context" "math/big" "os" reactor "github.com/ReactorNetwork/reactor-sdk-go" "github.com/ReactorNetwork/reactor-sdk-go/evm" ) client, err := reactor.NewClient(reactor.ClientOptions{APIKey: os.Getenv("REACTOR_API_KEY")}) if err != nil { return err } payload, err := evm.EncodeGenerateRandomNumbersRequest(evm.GenerateRandomNumbersRequest{ Count: big.NewInt(3), }) if err != nil { return err } result, err := client.Send(context.Background(), reactor.SendMessageRequest{ DestinationName: "base", DestinationAddress: "0x1111111111111111111111111111111111111111", Action: "generate_random_numbers", Payload: payload, }) if err != nil { return err }

The client defaults to https://api.reactor.network; its default reusable http.Client has a 30-second timeout. Send accepts a context, generates a secure request ID unless RequestID is set, and calculates the payload hash from decoded bytes.

EVM package

chainPayload, err := evm.EncodeChainMessage(evm.ChainMessageRequest{ Payload: "0x010203", Parameters: []evm.Parameter{{Name: "destination", Value: "base"}}, }) chainRequest, err := evm.DecodeChainMessage(chainPayload)
webPayload, err := evm.EncodeWebMessageRequest(evm.WebMessageRequest{ Method: "POST", URL: "https://example.com/v1", Body: `{"ping":"pong"}`, Headers: []evm.Parameter{{Name: "accept", Value: "application/json"}}, }) webRequest, err := evm.DecodeWebMessageRequest(webPayload) webResponse, err := evm.DecodeWebMessageResponse(responsePayload)
randomRequest, err := evm.DecodeGenerateRandomNumbersRequest(payload) numbers, err := evm.DecodeGenerateRandomNumbersResponse(responsePayload) // []*big.Int

The helper package preserves full uint256 range with *big.Int and returns 0x ABI bytes ready for Client.Send.

API failures can be matched with errors.As to *reactor.APIError, which includes StatusCode, Code, Detail, and RetryAfter. Supply a custom reusable HTTPClient through ClientOptions when needed.

See the HTTP API for wire behavior and statuses.

Last updated on