2023-01-24 13:03:18 -08:00
|
|
|
package wormconn
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
wasmdtypes "github.com/CosmWasm/wasmd/x/wasm/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
// SubmitQuery submits a query to a smart contract and returns the result.
|
2023-01-25 11:02:12 -08:00
|
|
|
func (c *ClientConn) SubmitQuery(ctx context.Context, contractAddress string, query []byte) ([]byte, error) {
|
2023-01-24 13:03:18 -08:00
|
|
|
req := wasmdtypes.QuerySmartContractStateRequest{Address: contractAddress, QueryData: query}
|
|
|
|
qc := wasmdtypes.NewQueryClient(c.c)
|
|
|
|
if qc == nil {
|
2023-01-25 11:02:12 -08:00
|
|
|
return []byte{}, fmt.Errorf("failed to create query client")
|
2023-01-24 13:03:18 -08:00
|
|
|
}
|
|
|
|
|
2023-01-25 11:02:12 -08:00
|
|
|
resp, err := qc.SmartContractState(ctx, &req)
|
|
|
|
if err != nil {
|
|
|
|
return []byte{}, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return resp.Data, nil
|
2023-01-24 13:03:18 -08:00
|
|
|
}
|