github.com/kaleido-io/firefly@v0.0.0-20210622132723-8b4b6aacb971/internal/blockchain/ethereum/config.go (about)

     1  // Copyright © 2021 Kaleido, Inc.
     2  //
     3  // SPDX-License-Identifier: Apache-2.0
     4  //
     5  // Licensed under the Apache License, Version 2.0 (the "License");
     6  // you may not use this file except in compliance with the License.
     7  // You may obtain a copy of the License at
     8  //
     9  //     http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  
    17  package ethereum
    18  
    19  import (
    20  	"github.com/kaleido-io/firefly/internal/config"
    21  	"github.com/kaleido-io/firefly/internal/wsclient"
    22  )
    23  
    24  const (
    25  	defaultBatchSize    = 50
    26  	defaultBatchTimeout = 500
    27  )
    28  
    29  const (
    30  	// EthconnectConfigKey is a sub-key in the config to contain all the ethconnect specific config,
    31  	EthconnectConfigKey = "ethconnect"
    32  
    33  	// EthconnectConfigInstancePath is the /contracts/0x12345 or /instances/0x12345 path of the REST API exposed by ethconnect for the contract
    34  	EthconnectConfigInstancePath = "instance"
    35  	// EthconnectConfigTopic is the websocket listen topic that the node should register on, which is important if there are multiple
    36  	// nodes using a single ethconnect
    37  	EthconnectConfigTopic = "topic"
    38  	// EthconnectConfigBatchSize is the batch size to configure on event streams, when auto-defining them
    39  	EthconnectConfigBatchSize = "batchSize"
    40  	// EthconnectConfigBatchTimeout is the batch timeout to configure on event streams, when auto-defining them
    41  	EthconnectConfigBatchTimeout = "batchTimeout"
    42  	// EthconnectConfigSkipEventstreamInit disables auto-configuration of event streams
    43  	EthconnectConfigSkipEventstreamInit = "skipEventstreamInit"
    44  )
    45  
    46  func (e *Ethereum) InitPrefix(prefix config.Prefix) {
    47  	ethconnectConf := prefix.SubPrefix(EthconnectConfigKey)
    48  	wsclient.InitPrefix(ethconnectConf)
    49  	ethconnectConf.AddKnownKey(EthconnectConfigInstancePath)
    50  	ethconnectConf.AddKnownKey(EthconnectConfigTopic)
    51  	ethconnectConf.AddKnownKey(EthconnectConfigSkipEventstreamInit)
    52  	ethconnectConf.AddKnownKey(EthconnectConfigBatchSize, defaultBatchSize)
    53  	ethconnectConf.AddKnownKey(EthconnectConfigBatchTimeout, defaultBatchTimeout)
    54  }