flow_access_api 0.1.7

The Rust implementation of the Flow Access API through gRPC client.
Documentation
syntax = "proto3";

package execution;

option go_package = "github.com/onflow/flow/protobuf/go/flow/legacy/execution";
option java_package = "org.onflow.protobuf.legacy.execution";

import "flow/legacy/entities/account.proto";
import "flow/legacy/entities/event.proto";

// ExecutionAPI is the API provided by the execution nodes.
service ExecutionAPI {
  // Ping is used to check if the access node is alive and healthy.
  rpc Ping(PingRequest) returns (PingResponse);

  // Accounts

  // GetAccountAtBlockID gets an account by address at the given block ID
  rpc GetAccountAtBlockID(GetAccountAtBlockIDRequest)
      returns (GetAccountAtBlockIDResponse);

  // Scripts

  // ExecuteScriptAtBlockID executes a ready-only Cadence script against the
  // execution state at the block with the given ID.
  rpc ExecuteScriptAtBlockID(ExecuteScriptAtBlockIDRequest)
      returns (ExecuteScriptAtBlockIDResponse);

  // Events

  // GetEventsForBlockIDs retrieves events for all the specified block IDs that
  // have the given type
  rpc GetEventsForBlockIDs(GetEventsForBlockIDsRequest)
      returns (GetEventsForBlockIDsResponse);

  // Transaction

  // GetTransactionResult gets the result of a transaction.
  rpc GetTransactionResult(GetTransactionResultRequest)
      returns (GetTransactionResultResponse);
}

// Ping

message PingRequest {}

message PingResponse {}

// Accounts

message GetAccountAtBlockIDRequest {
  bytes block_id = 1;
  bytes address = 2;
}

message GetAccountAtBlockIDResponse {
  entities.Account account = 1;
}

// Scripts

message ExecuteScriptAtBlockIDRequest {
  bytes block_id = 1;
  bytes script = 2;
  repeated bytes arguments = 3;
}

message ExecuteScriptAtBlockIDResponse {
  bytes value = 1;
}

// Events

message GetEventsForBlockIDsResponse {
  message Result {
    bytes block_id = 1;
    uint64 block_height = 2;
    repeated entities.Event events = 3;
  }
  repeated Result results = 1;
}

message GetEventsForBlockIDsRequest {
  string type = 1;
  repeated bytes block_ids = 2;
}

// Transactions

message GetTransactionResultRequest {
  bytes block_id = 1;
  bytes transaction_id = 2;
}

message GetTransactionResultResponse {
  uint32 status_code = 1;
  string error_message = 2;
  repeated entities.Event events = 3;
}